Minecraft(我的世界)中文论坛

 找回密码
 注册(register)
查看: 5500|回复: 26

[资源] [function]random(min,max)随机模块

[复制链接]
发表于 2017-7-13 23:52:28 | 显示全部楼层 |阅读模式

您尚未登录,立即登录享受更好的浏览体验!

您需要 登录 才可以下载或查看,没有帐号?注册(register)

x
本帖最后由 贰逼 于 2017-7-13 23:54 编辑

文件:
random.rar (573 Bytes, 下载次数: 31)

评分

参与人数 10人气 +16 金粒 +51 收起 理由
13995698619 + 1 MCBBS有你更精彩~
mcsam123 + 1 神乎其技,不服不行!
niunai6666 + 1 神乎其技,不服不行!
WDLJT + 5 MCBBS有你更精彩~
pineapple_ + 2 MCBBS有你更精彩~
Zevn + 1 MCBBS有你更精彩~
玄素 + 2 MCBBS有你更精彩~
乙烯_中国 + 4 + 44 MCBBS有你更精彩~
hurui + 2 + 1 你的名字和头像真配:)
chyx + 3 很棒的作品!

查看全部评分

回复

使用道具 举报

发表于 2017-7-13 23:57:14 | 显示全部楼层
表示没看懂,随机数在MC有什么用,这个插件是针对什么的?。不管怎么说抢个沙发

点评

可以制作原版的命令版幸运方块。  详情 回复 发表于 2017-8-24 17:07
.mcfunction是原版的函数文件  详情 回复 发表于 2017-7-13 23:54
回复

使用道具 举报

 楼主| 发表于 2017-7-13 23:54:40 | 显示全部楼层
1392684709 发表于 2017-7-13 23:57
表示没看懂,随机数在MC有什么用,这个插件是针对什么的?。不管怎么说抢个沙发 ...

.mcfunction是原版的函数文件

点评

哦,是因为1.12版本中新增了functions对吧。  详情 回复 发表于 2017-7-14 00:01
回复

使用道具 举报

发表于 2017-7-14 00:01:56 | 显示全部楼层
贰逼 发表于 2017-7-13 23:54
.mcfunction是原版的函数文件

哦,是因为1.12版本中新增了functions对吧。
回复

使用道具 举报

发表于 2017-7-14 03:21:03 | 显示全部楼层
OAO哇,恐怖如斯,看不懂

点评

看不懂更要学……这种看不懂就丢一句话就走的观念正是CBer一代不如一代的原因  详情 回复 发表于 2017-11-18 12:19
回复

使用道具 举报

发表于 2017-7-14 04:47:33 | 显示全部楼层
本帖最后由 chyx 于 2017-7-14 04:52 编辑

表示看懂了

就是二进制的每一位数随机是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的随机数这个问题就会变得很明显

点评

那么,就C++而言,是否可以通过 (double) rand() / RAND_MAX * 100 来均匀取值? 在MC中是否也可通过类似的方式使随机概率更平均呢?  详情 回复 发表于 2017-7-21 00:37

评分

参与人数 1人气 +2 收起 理由
乙烯_中国 + 2 MCBBS有你更精彩~

查看全部评分

回复

使用道具 举报

发表于 2017-7-21 00:37:34 | 显示全部楼层
chyx 发表于 2017-7-14 04:47
表示看懂了

就是二进制的每一位数随机是1或者0 得到一个0~2147483647的随机数

那么,就C++而言,是否可以通过
(double) rand() / RAND_MAX * 100
来均匀取值?
在MC中是否也可通过类似的方式使随机概率更平均呢?

点评

你是这个意思么?  详情 回复 发表于 2017-9-4 16:56
回复

使用道具 举报

发表于 2017-8-18 00:46:06 | 显示全部楼层
支持支持
回复

使用道具 举报

发表于 2017-8-18 08:28:44 | 显示全部楼层
好厉害,顶一下
回复

使用道具 举报

发表于 2017-8-24 17:07:54 | 显示全部楼层
1392684709 发表于 2017-7-13 23:57
表示没看懂,随机数在MC有什么用,这个插件是针对什么的?。不管怎么说抢个沙发 ...

可以制作原版的命令版幸运方块。
回复

使用道具 举报

发表于 2017-8-31 11:56:10 | 显示全部楼层
好好好好好好好好

评分

参与人数 1人气 -1 金粒 -10 收起 理由
贰逼 -1 -10 无意义

查看全部评分

回复

使用道具 举报

发表于 2017-8-31 13:41:32 | 显示全部楼层
感觉销毁随机列没啥必要啊,反正两列互为反码。。。
(用按位或会不会快一点)
回复

使用道具 举报

发表于 2017-9-3 22:05:20 | 显示全部楼层
这个干嘛用的啊?
回复

使用道具 举报

发表于 2017-9-4 16:56:40 | 显示全部楼层
本帖最后由 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,然后取整?


如果你是这个意思的话 那你这样做是不行的

这样得到每个数的概率不一样
每个数的概率的比例:

点评

我觉得理论上是可以均分的,因为其实是把0~RAND_MAX当成一把比例尺进行均分再放大的,不知能否说下实验过程,或者能否解释一下为何不能做到均分,感谢。  详情 回复 发表于 2017-9-5 21:24
回复

使用道具 举报

发表于 2017-9-5 21:24:19 | 显示全部楼层
chyx 发表于 2017-9-4 16:56
你是这个意思么?

我觉得理论上是可以均分的,因为其实是把0~RAND_MAX当成一把比例尺进行均分再放大的,不知能否说下实验过程,或者能否解释一下为何不能做到均分,感谢。

评分

参与人数 1人气 +1 收起 理由
chyx + 1 结果都贴出来了还是不信吗

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册(register)

本版积分规则

Archiver|小黑屋|Mcbbs.net ( 京ICP备15023768号-1 ) | 手机版本

GMT+8, 2017-12-18 16:48 , Processed in 0.067965 second(s), 10 queries , Memcache On.

"Minecraft"以及"我的世界"为Mojang Synergies AB的商标。本站与Mojang以及微软公司没有从属关系。

© 2010-2017 我的世界中文论坛 版权所有。本站原创图文内容版权属于原创作者,未经许可不得转载。

快速回复 返回顶部 返回列表