allennai 发表于 2015-3-31 15:08:38

怎么筛选数值?

比如我roll 1~100
其他玩家也roll 1~100
若其他玩家roll出来的数值有一样的重新roll,直至没有一样的。
最后再从中选出最大或最小的数值。

chyj4747 发表于 2015-3-31 22:26:39

弄一个整数数组,长度100,把1-100放进去
第一个玩家(这个是数组索引)随机,随机到数字后,把数组最后一个数字放到被随掉的数字位置上(即赋值)
第二个玩家随机,随到后同上
第三个玩家随机,同上
后续玩家同上

这样所有玩家都只需要随机一遍且不会重复

上面的看懂后,再在上面的步骤里加两个变量,即最大和最小
一开始这两个变量都设为不是1-100的任何值,代表这两个变量没有赋值
第一个玩家roll点后,因为没赋值,所以直接把roll到的点赋值给这两个变量
第二个玩家roll的点跟这两个变量比较,如果大于最大,那么赋值给最大,否则如果小于最小,那么赋值给最小
后续同理

所有玩家roll完结果也就出来了

allennai 发表于 2015-3-31 23:11:12

chyj4747 发表于 2015-3-31 22:26
弄一个整数数组,长度100,把1-100放进去
第一个玩家(这个是数组索引)随机,随机到数字后,把数组 ...

所谓的整数数组是指变量后面的“[]”数组么?

既执行1~100次动作,将整数变量赋予1~100数字?

chyj4747 发表于 2015-4-3 23:17:00

allennai 发表于 2015-3-31 23:11
所谓的整数数组是指变量后面的“[]”数组么?

既执行1~100次动作,将整数变量赋予1~100数字?
对,话说都3天过去了你应该已经弄出来了吧。。

allennai 发表于 2015-4-4 18:39:49

chyj4747 发表于 2015-4-3 23:17
对,话说都3天过去了你应该已经弄出来了吧。。

这是我按照你给我的思路弄的,有几段看不懂所以就按照自己的思路弄下去。弄出来的结果是好的。可是还是会遇到相同的数,而且会选择后者作为Roll最大的玩家。





chyj4747 发表于 2015-4-4 22:54:35

allennai 发表于 2015-4-4 18:39
这是我按照你给我的思路弄的,有几段看不懂所以就按照自己的思路弄下去。弄出来的结果是好的。可是还是会 ...


allennai 发表于 2015-4-5 03:12:03

chyj4747 发表于 2015-4-4 22:54


研究了一会终于搞懂了。好聪明的思维。其实掷出来的数值都是障眼法,如果有玩家掷出来一样的会用最后数组的数字代替。实际上就等同两者Roll数一样的话选择前者?只不过将后者的数值变成了比前者小的数?

allennai 发表于 2015-4-5 03:57:02

chyj4747 发表于 2015-4-4 22:54


这是我最后弄的结果。如果出现了相同的roll数则会重新roll,最多有100次机会,这个不好掌握。因此还是会有几率出现相同。

感觉你的那种可以用来随机英雄,我这种是为了roll装备,所有人的几率都是平等的。


chyj4747 发表于 2015-4-6 00:04:24

allennai 发表于 2015-4-5 03:57
这是我最后弄的结果。如果出现了相同的roll数则会重新roll,最多有100次机会,这个不好掌握。因此还是会 ...

我那种几率是一样的啊,第二个玩家roll的时候是第一个玩家已经roll掉某个数字的前提下再roll下一个数字
也就是(99/100) * (1/99) = 1/100

allennai 发表于 2015-4-6 00:40:43

chyj4747 发表于 2015-4-6 00:04
我那种几率是一样的啊,第二个玩家roll的时候是第一个玩家已经roll掉某个数字的前提下再roll下一个数字
...

还是不大看得懂你那种……
页: [1]
查看完整版本: 怎么筛选数值?