免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12345下一页
最近访问板块 发新帖
查看: 21063 | 回复: 48

[算法] 设计一个完美的随机数 [复制链接]

论坛徽章:
0
发表于 2008-02-19 10:31 |显示全部楼层
假如我想写一个在线博彩系统,如何写一个完美的随机数?



网站博彩系统,大部分应该采用

DateTime.Now.Ticks  做为随机种子:

(此属性的值表示自 0001 年 1 月 1 日午夜 12:00:00 以来已经过的时间的以 100 毫微秒为间隔的间隔数。


所以产生数字一样的条件是:
1,运行在电脑启动的同一毫微秒数.或最大种子的基数倍(相同的种子)
2,使用相同的随机数算法,最好是同版本的编译器编译出来的程序(相同的算法)


-------------------

所以,在了解 在线博彩算法的前提下, 将 某个时刻的 毫微秒间隔数做种子,就可以推算出系统开出的号码.


2008.02.21 00:00:00 的毫微秒间隔数为:

633391488000000000

[ 本帖最后由 qingfengjianke 于 2008-2-21 09:44 编辑 ]

论坛徽章:
0
发表于 2008-02-19 10:35 |显示全部楼层
不用写了,Linux里面系统有/dev/random,/dev/urandom向用户提供随机数

论坛徽章:
0
发表于 2008-02-19 10:39 |显示全部楼层
那现在已经存在的在线博彩系统大多数是采用哪种方式?
选取伪随机数的种子?

论坛徽章:
0
发表于 2008-02-19 10:44 |显示全部楼层
完美的随机数掌握在上帝手里

论坛徽章:
0
发表于 2008-02-19 10:45 |显示全部楼层
那就不知道了,不了解博彩系统。
像C语言里面用的是伪随机数,Linux内核提供了理论上的真随机数,详见:Linux内核设计与实现的附录。

论坛徽章:
0
发表于 2008-02-19 10:47 |显示全部楼层
   谁了解现在已有的在线博彩系统,采用哪种方式啊?
这种::
srand(time(0));
rand();   ????







转:::::
在windows平台下,可以考虑将如下参数作为影响种子的因素。



1.GetTickCount()
系统启动以来的嘀嗒时间
说明:该时间与系统运行时长相关,
2.GetCurrentProcessId()
当前进程Id号
说明:该Id与系统启动进程数量及次序有关,一般波动范围较小。
3.GetCurrentProcess()
当前进程句柄
说明:该句柄实质就是内存地址,但每次进程启动时地址值是不确定的。


4.GetProcessTimes()   
进程时间参数
说明:-


5.GetCurrentThreadId()
当前线程Id号


6.GetCurrentThread()
当前线程句柄


7.GetThreadTimes()
线程时间参数


8.GetCurrentHwProfile()
Profile配置文件


9.GetSysColor()
系统Color


10.GetSystemInfo()
系统信息


11.GetSystemPowerStatus()
电源状态


12.GetKeyboardState()
键盘状态


13.GlobalMemoryStatus()
内存状态


14.time()
当前时间 秒


15.GUID
各硬件设备GUID


16.MAC
网卡mac


17.CPUID
CPU Id号


18.声卡录音噪音
该参量与环境相关


19.用户键盘间隔时间
该参量与用户习惯相关

论坛徽章:
0
发表于 2008-02-19 12:32 |显示全部楼层
完美是找不到的,不过从你的需求来看随便找个 HMAC 作为 PRF 应该就行了

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
发表于 2008-02-19 12:47 |显示全部楼层
嘛是“完美的随机数”?

论坛徽章:
0
发表于 2008-02-19 13:35 |显示全部楼层

回复 #8 MMMIX 的帖子

就是那种非不完美的随机数

论坛徽章:
0
发表于 2008-02-19 15:01 |显示全部楼层
有穷状态机还没有算法可以生成高质量的随机数.

推荐个网站给你: http://random.irb.hr/

免费随机数. 需要注册, 回答一道简单的数学题就ok了.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP