123456789101112131415161718192021222324252627282930313233343536373839404142 |
- //对随机数相关算法的时间分布性进行验证
- #include<iostream>
- //线性同余哈希函数的散布
- void line_hash(double n)
- {
- double result[10]={0};
- for(int i=0;i<n;i++)
- {
- result[((i*52223)+94399)%10]++;
- }
- double count=0;
- for(int i=0;i<10;i++)
- {
- count+=result[i];
- std::cout<<result[i]<<std::endl;
- }
- for(int i=0;i<10;i++)
- {
- std::cout<<double(result[i]/count)<<std::endl;
- }
- }
- auto line_hash_text=[]->void{
- while(1)
- {
- std::cout<<"please input n:"<<std::endl;
- int n=0;
- if(n==-1)
- {
- break;
- }
- std::cin>>n;
- line_hash(n);
- }
- };
- //测试结果证明线性混合同余有很好的随机性
- int main()
- {
- line_hash_text();
- }
|