有1 2 3 4 5 6,
如何把这6个数随机
分配成3份?
把这几个数放在集合里,随机取一个,集合就删去一个,取得是索引,删的是集合的长度,这样可以吧
1 2 3 4 5 6 一共六个数字,如果分成三份,也就是有五个空,1与2之间的,2与3之间,......一共五个空,只要随机找到两个空就把它们分成了三份,例如:1 | 2 3 4 | 5,其中 | 表示 选中的空。
但是呢,这中方法不管怎么分,1与6是不可能在一个组中的,1与5也不可能,所以这不是一个很好的办法,我们可以这个办法的基础上做一个升级:
具体做法:1、先不重复的生成两个1—5之间的随机数,包括1和5(因为有五个空嘛),这两个随机数作为用来分割的空,例如:生成了2和3 ,也就是选中了第2个空和第3个空作为分隔,也就是说把六个数分成了2:1:3 三份。
2、再不重复的生成六个1—6之间的随机数,也就是随机的遍历了一遍1-6六个数字,按照上一步中分隔,分别对应份数即可。例如:如果第一步生成的是2和3,也就是2:1:3三份,那就把第二步产生的前两个随机数作为第一份,第三个作为第二份,后面三个作为第三份