免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12345下一页
最近访问板块 发新帖
查看: 19360 | 回复: 40
打印 上一主题 下一主题

python随机数生成不够随机, [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-07-19 15:59 |只看该作者 |倒序浏览
random.randint(0,MAXRANGE)
取到的数字落点有很大一部分在 MAXRANGE/2附近,取数频率,一秒钟10个。连续1小时。

论坛徽章:
0
2 [报告]
发表于 2011-07-19 16:59 |只看该作者
回复 1# 李营长


    http://code.google.com/p/truerandom/

PS, 我不觉得你说的问题存在哈,至少没有这么明显

论坛徽章:
0
3 [报告]
发表于 2011-07-19 17:04 |只看该作者
回复 1# 李营长
本来就是伪随机数,跟c的rand函数一样。

论坛徽章:
0
4 [报告]
发表于 2011-07-19 18:00 |只看该作者
我用这个随机数来将一个大图片随机位置切成固定大小的小图片,但发现出来的图片里有不少是中央区域的图片。在一大片图里能够一眼看出来。有哪些是类似的。虽然不影响最终结果。有空了我可以搞一个BMP,随机生成数在BMP上打点,打完点以后,看点的密集度就能够知道它随机得靠不靠得住了。

论坛徽章:
0
5 [报告]
发表于 2011-07-19 19:19 |只看该作者
本帖最后由 106033177 于 2011-07-19 19:21 编辑

回复 4# 李营长
已经有比较了 http://www.boallen.com/random-numbers.html。要想获得真随机数可以用random.SystemRandom虽然不是所有平台都可用但UNIX-like和win下都是可用的。

论坛徽章:
0
6 [报告]
发表于 2011-07-20 16:33 |只看该作者


图已经作出来了,1200*800的大小,随机数生成了1000*1000次,从图片点分布来看还算是比较均匀的。

论坛徽章:
2
2015年迎新春徽章
日期:2015-03-04 09:55:28IT运维版块每日发帖之星
日期:2016-07-29 06:20:00
7 [报告]
发表于 2011-07-20 16:37 |只看该作者
这个方法,主要用在什么地方?

论坛徽章:
0
8 [报告]
发表于 2011-07-21 11:06 |只看该作者
回复 6# 李营长


    貌似看过文,py25开始random算法改进过
  把测试代码贴上来吧,抽空测试一下

论坛徽章:
0
9 [报告]
发表于 2011-07-21 13:28 |只看该作者
回复 6# 李营长
有点疑惑,1000*1000个点覆盖在1200*800的大小上,如果是完全随机的话不应该是纯黑的吗?

论坛徽章:
0
10 [报告]
发表于 2011-07-21 15:28 |只看该作者
已经说了不是完全随机的,如果随机数范围小,确实是可以全黑的。你可以试一下10000次randint(0,99),肯定能够命中0-99间所有的数,只是命中频率不一样罢了。另外贴上我打点的代码吧

from PIL import Image
import random

if __name__ == "__main__":
        im = Image.new("RGB", (1200,800), (0,0,0))
        for i in xrange(0, 1280*800):
                x = random.randint(0, 1200-1)
                y = random.randint(0, 800-1)
                im.putpixel((x,y),(255,255,255))
                print i, x, y

        im.save("d:\\xx.bmp");
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP