IronPython random 生成随机数问题

我本微若凡尘 2017-11-14 01:17:08
我安装了IronPython2.7.7版本的,然后打开控制台生生成随机数,发现一个规律,
生成的随机数都不会超过设定值的一半。比如我在控制台写个方法
import random
random.randint(0,100)
然后生成的数据不会超过50,写循环试也是这样,有没有大佬知道这是怎么回事?
我用的是IronPython 不是python的控制台.......
...全文
346 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
正怒月神 2017-11-22
  • 打赏
  • 举报
回复
引用 13 楼 u010566610 的回复:
恩 我也去翻过官网,官网的api指向python的官网,还有一个网站是说IronPython的api介绍,但是看了看都是说区间是可用的
所有我就蒙蔽了,我就找个新机器,安装好,运行自带的控制台,一行引入random包,一行开始生成,然后 就是不对。跟官网
说明对不上去,百度,都是说的python的情况,但是使用IronPython写的python生成的random就是有问题,你可以下载个IronPython
试一试,软件也很小!

我好想没问题
我本微若凡尘 2017-11-22
  • 打赏
  • 举报
回复
引用 8 楼 hanjun0612 的回复:
奇怪了,我查看了官网API的random.randint,发觉描述也是正确的。 但是我这里没有测试过你说的现象
恩 我也去翻过官网,官网的api指向python的官网,还有一个网站是说IronPython的api介绍,但是看了看都是说区间是可用的 所有我就蒙蔽了,我就找个新机器,安装好,运行自带的控制台,一行引入random包,一行开始生成,然后 就是不对。跟官网 说明对不上去,百度,都是说的python的情况,但是使用IronPython写的python生成的random就是有问题,你可以下载个IronPython 试一试,软件也很小!
我本微若凡尘 2017-11-22
  • 打赏
  • 举报
回复
引用 7 楼 closurer 的回复:
[quote=引用 5 楼 closurer 的回复:] 我只是觉得你每次的调用都要设置区间很奇怪。 C# 也好,Java 也好,所有语言的类库都没有这样设计的。
……我搞错了,抱歉!的确每次都要指定区间。 [/quote] 可以指定区间,也可以不指定.
我本微若凡尘 2017-11-22
  • 打赏
  • 举报
回复
引用 6 楼 hanjun0612 的回复:
C# 表示并没有你说的问题
c#当然没有了,python安装的控制台也没有这个问题,就是安装的IronPython控制台会有这个问题,试了几台机器都有这个问题
正怒月神 2017-11-15
  • 打赏
  • 举报
回复
引用 9 楼 closurer 的回复:
[quote=引用 8 楼 hanjun0612 的回复:] 奇怪了,我查看了官网API的random.randint,发觉描述也是正确的。 但是我这里没有测试过你说的现象
你 C#、Java、Python 全覆盖啊…… [/quote] 没有,我只搞C#和JAVA,哈哈
闭包客 2017-11-14
  • 打赏
  • 举报
回复
引用 8 楼 hanjun0612 的回复:
奇怪了,我查看了官网API的random.randint,发觉描述也是正确的。 但是我这里没有测试过你说的现象
你 C#、Java、Python 全覆盖啊……
正怒月神 2017-11-14
  • 打赏
  • 举报
回复
奇怪了,我查看了官网API的random.randint,发觉描述也是正确的。 但是我这里没有测试过你说的现象
闭包客 2017-11-14
  • 打赏
  • 举报
回复
引用 5 楼 closurer 的回复:
我只是觉得你每次的调用都要设置区间很奇怪。 C# 也好,Java 也好,所有语言的类库都没有这样设计的。
……我搞错了,抱歉!的确每次都要指定区间。
正怒月神 2017-11-14
  • 打赏
  • 举报
回复
C# 表示并没有你说的问题
闭包客 2017-11-14
  • 打赏
  • 举报
回复
我只是觉得你每次的调用都要设置区间很奇怪。 C# 也好,Java 也好,所有语言的类库都没有这样设计的。
闭包客 2017-11-14
  • 打赏
  • 举报
回复
引用 3 楼 u010566610 的回复:
[quote=引用 2 楼 closurer 的回复:] 伪随机算法都需要种子,你要检查的你的种子是否每次都重新产生。 生成什么样的随机数,只是概率问题,不超过 50 不是也在 100 之内吗?
没有设置随机数种子,系统就会去默认系统时间,随机数种子,就是那个seed()方法,这个东西设置值随意的,如果两个随机数实例,设置相同的种子,那么相同次数的时候生成随机数也是相同的! 你的第二个回答,我循环100次 1000次 没有一次超过50 这个随机数的区间还能算是0-100?随机分布,虽然具有不确定性,但是我缩小区间范围,0-4出现数字0,1,2不会出现3,4 不是一次,是N次....我随意循环只会出现这样值 [/quote] 这样啊,那你只能看 IronPython 的源码了。
我本微若凡尘 2017-11-14
  • 打赏
  • 举报
回复
引用 2 楼 closurer 的回复:
伪随机算法都需要种子,你要检查的你的种子是否每次都重新产生。 生成什么样的随机数,只是概率问题,不超过 50 不是也在 100 之内吗?
没有设置随机数种子,系统就会去默认系统时间,随机数种子,就是那个seed()方法,这个东西设置值随意的,如果两个随机数实例,设置相同的种子,那么相同次数的时候生成随机数也是相同的! 你的第二个回答,我循环100次 1000次 没有一次超过50 这个随机数的区间还能算是0-100?随机分布,虽然具有不确定性,但是我缩小区间范围,0-4出现数字0,1,2不会出现3,4 不是一次,是N次....我随意循环只会出现这样值
闭包客 2017-11-14
  • 打赏
  • 举报
回复
伪随机算法都需要种子,你要检查的你的种子是否每次都重新产生。 生成什么样的随机数,只是概率问题,不超过 50 不是也在 100 之内吗?
我本微若凡尘 2017-11-14
  • 打赏
  • 举报
回复
我的第一种解决方案,既然是少一半,我就在后面参数*2 第二解决方案,既然用IronPython,那自然可以调用c#类库,那就使用c#来生成 import System from System import Random r=Random() r.Next(0,100) 就这样,不过c#这个实际情况是包含0,但是不包含100也就是最大到99

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧