永发信息网

求各种产生随机数的算法

答案:2  悬赏:20  手机版
解决时间 2021-04-05 05:18
求各种产生随机数的算法
最佳答案
C语言:用函数
int rand( void );
要文件包含
#include

example:

srand( time(NULL) );
for( i = 0; i < 10; i++ )
printf( "Random number #%d: %d\n", i, rand() );
JAVA:
new一个random,使用random对象的nextInt(),nextInt(int n)方法,说明:

int nextInt()
返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。
int nextInt(int n)
返回一个伪随机数,它是从此随机数生成器的序列中取出的、在 0(包括)和指定值(不包括)之间均匀分布的 int值。
全部回答
多的很呀!别撤消呀,千万!不过几乎都是伪随机数。随机序列的算法找到了两个算法, 第一个很简单, 但可惜不是随机的, 第二个是典型的伪随机数算法, 可惜要用到2的几百万次方这样巨大的整数, 真痛苦要是有UNIX上计算密码的源代码就好了第一种做法:f(k) = (k*F(N-1)) mod F(N)其中,k是一个序列号, 就是要取的那个数的顺序号F(N)是这样一个序列 F(0) = 0, F(1) = 1, F(N+2) = F(N+1)+F(N) (for N>=0)第二种做法V = ( ( V * 2 ) + B .xor. B ... )(Mod 2^n)N+1 N 0 2V是要取的随机数, B是个种子, n是随机数的最大个数原来这个问题, 很高难, 不少数学高手都为解决这个问题写了论文, 咳咳, 偶真是个白痴呵呵, 效果肯定是不错啦, 因为用不到很大的表.至于应用是这样的, 比如, 你要给每个用户在注册的时候一个ID但有不希望用户在看到自己的ID的时候能知道其他用户的ID, 如果用SEQUENCE来生成ID的话, 一个用户只要把自己的ID减1就能得到其它用户的ID了. 所以要用随机数来做ID, 这样用户很难猜到其他用户的ID了.当然主要的问题是, 随机数可能重复. 因此希望使用一个随机数做种子用它来确定一组"无规律"的自然数序列, 并且在这个序列中不会出现重复的自然数. 在这里使用的方法生成的序列并不是没有规律的, 只不过这个轨律很难被发现就是了.Xn+1 = (aXn + b) mod c (其中, abc通常是质数)是一种被广泛使用的最简单的随机数发生算法, 有研究表表明这个算法生成的随机数基本上符合统计规律, JAVA, BORLAND C等用的都是这个方法, 一般只要保证第一个种子是真正的随机数就行了,下面来说一下重复的问题,上述方法会有可能出现重复, 因为当(aXn + b)有可能是同样的数或者说余数相同的数, 因此要想不重复就得变形偶想到的方法是Xn=(a*n + b) mod c n是一个在1到c之间的整数, a*n + b就是一个线性公式了, 且若n不同则a*n + b也不同, 它们除上质数c得到的余数也肯定不同, 因为 若不考虑a和b而只有n的时候, 每次的结果都是n,而线性公式, 只不过移动了这条直线的位置和斜率而已, 每个结果仍然不会相同的,为了增加不可预计性, 偶又为上面那个公式设计了, 随机数种子, 于是就变成了这个样子F(N)=(随机数*(N+随机数))MOD 一个质数这样就能够产生 1到选定质数之间的一个"无规律"的自然数序列了, 只要改变随机数就能改变序列的次序在应用的时候, 要把随机数种子和最后用到的序列号保存到一个表里, 每此使用的时候取出来算好, 再把序列号更新一下就可以了具体地说, 就是可以建一个表来保存每个序列的随机数种子, 然后再为这个序列建一个SEQUENCE就行了然后就SELECt MOD(序列控制表.随机数*(SEQ.NEXTVAL+序列控制表.随机数)),序列控制表.质数)FROM 序列控制表WHERe 序列控制表.序列ID=XX就OK了注意 序列控制表.质数 决定了序列的范围
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
David Moore taught science at the City Sch
隆化哪招工人,工资三千元每月
“飞豹”战斗机与歼-8II战斗机有什么区别?
干煸四季豆为什么煸出来总是发软,一点也不干
problem什么意思中文翻译
电脑主机进水了怎么办,主机箱进水怎么办
作废的银行卡怎么还可以转进去钱
甲2010年4月1日向乙签发了一张见票后3个月付
积分 1/tanx+sinx)
甲方资料员的职责
sus316是什么材料
(2013·高考湖北卷)Don’t defend him any mo
福根进城尤勇和夏琪自我介绍是哪一集
静达没有做今日关注主持人了?_?
勇于尝试新事物的名言,关于对新事物的思考的
推荐资讯
单选题已知A和B是两个命题,如果A是B的充分但
smile怎么加ing?
一部福田车没有压缩怎么办,水温高引起的,麻
孢子油功效与作用
魔兽世界里面有没有看日落和日出的地方?什么
单选题世界各大洲中径流量最多的是A.亚洲B.非
毛皮动物繁殖中,什么时候收获动物毛皮是最佳
润华科技实业有限公司在什么地方啊,我要过去
最高人民法院规定
升华是什么,我要中的新江苏。作文,跪求,不
2010款天籁公爵狼牙放歌
吉娃娃狗狗,出去时还好好的,欢蹦乱跳的,出
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?