本帖最后由 贰逼 于 2017-7-13 23:54 编辑
文件:
random.rar
(573 Bytes, 下载次数: 191)
功能即获取[min,max]中的随机数
想法来自1.12 Custom-Range Random Number Function
演示:
原理:
全部代码:
文件:
功能即获取[min,max]中的随机数
想法来自1.12 Custom-Range Random Number Function
演示:
原理:
全部代码:
来自群组: Command Block Logic
表示没看懂,随机数在MC有什么用,这个插件是针对什么的?。不管怎么说抢个沙发
1392684709 发表于 2017-7-13 23:57
表示没看懂,随机数在MC有什么用,这个插件是针对什么的?。不管怎么说抢个沙发 ...
.mcfunction是原版的函数文件
贰逼 发表于 2017-7-13 23:54
.mcfunction是原版的函数文件
哦,是因为1.12版本中新增了functions对吧。
OAO哇,恐怖如斯,看不懂
本帖最后由 chyx 于 2017-7-14 04:52 编辑
表示看懂了
就是二进制的每一位数随机是1或者0 得到一个0~2147483647的随机数
然后用这个数除以区间长度再加上区间左端点转成所需区间里的。。。
有一个小瑕疵 就是因为2147483647不一定是区间长度的整数倍
造成在取余数的时候得到的各个余数概率不等
------------------------------------------------
举个例子:https://www.zhihu.com/question/62091492
楼主和这个题主犯了一样的错误。
------------------------------------------------
当然 楼主的2147483647相比于使用的区间应该是足够大的(对于通常的使用)
不过如果有人使用0~1000000000的随机数这个问题就会变得很明显
表示看懂了
就是二进制的每一位数随机是1或者0 得到一个0~2147483647的随机数
然后用这个数除以区间长度再加上区间左端点转成所需区间里的。。。
有一个小瑕疵 就是因为2147483647不一定是区间长度的整数倍
造成在取余数的时候得到的各个余数概率不等
------------------------------------------------
举个例子:https://www.zhihu.com/question/62091492
C++的RAND函数生成的值为什么存在严重的不随机性?
用到0~10000的随机,在C++中使用了rand()%10000,结果测试了100亿次数据后,发现在2767值处出现断层,前面0~2767都是122万次左右,后面的都只有91.5万次左右。。。这个是怎么回事,求助~~
楼主和这个题主犯了一样的错误。
------------------------------------------------
当然 楼主的2147483647相比于使用的区间应该是足够大的(对于通常的使用)
不过如果有人使用0~1000000000的随机数这个问题就会变得很明显
chyx 发表于 2017-7-14 04:47
表示看懂了
就是二进制的每一位数随机是1或者0 得到一个0~2147483647的随机数
那么,就C++而言,是否可以通过
(double) rand() / RAND_MAX * 100
来均匀取值?
在MC中是否也可通过类似的方式使随机概率更平均呢?
支持支持
好厉害,顶一下
1392684709 发表于 2017-7-13 23:57
表示没看懂,随机数在MC有什么用,这个插件是针对什么的?。不管怎么说抢个沙发 ...
可以制作原版的命令版幸运方块。
好好好好好好好好
感觉销毁随机列没啥必要啊,反正两列互为反码。。。
(用按位或会不会快一点)
(用按位或会不会快一点)
这个干嘛用的啊?
本帖最后由 chyx 于 2017-9-4 17:07 编辑
你是这个意思么?
如果你是这个意思的话 那你这样做是不行的
这样得到每个数的概率不一样
每个数的概率的比例:
乾.坤 发表于 2017-7-21 00:37
那么,就C++而言,是否可以通过
(double) rand() / RAND_MAX * 100
来均匀取值?
你是这个意思么?
比如我想要获取0到99的一个随机的整数
我能够获得0~65535的一个随机整数
于是我获得0~65535的一个随机整数,把他乘以100/65536,然后取整?
如果你是这个意思的话 那你这样做是不行的
这样得到每个数的概率不一样
每个数的概率的比例: