不同列表随机

Different lists Random

首先,我生成随机数(假设有 1000 个元素),如何知道总和小于或大于 500 的第一个元素有多少?

其次,我将生成 4 个随机数列表。分布在每个列表中的每个数字都没有重复,如果所有列表的和都出现固定值,则停止随机生成。 示例:1-4 个列表; (1,2,3,4,5), (6,7,8,9,10), (11,12,13,14,15), (16,17,18,19,20); 4 个列表的总和是 210.

我如何 运行 像 "Give me 4 lists random numbers, no repetiton, if the sum = 210 stop random." 这样的命令?

谢谢您的回答

这报告 rand 的第一个元素的数量超过 500。

rand = RandomInteger[10, 1000];

Catch[total = 0;
 Map[If[(total += First[#]) > 500, Throw[#[[2, 1]]]] &, 
  MapIndexed[List, rand]]]

103

第二个问题

"Every number distributed in each lists has no repetition."

RandomSample 对此很有用。添加计数器n,可省略

n = 0;

While[True,
 n++;
 total = Total@Flatten[lists = Table[RandomSample[Range[50], 5], 4]];
 If[total < 500, Break[]]]
lists
Row[{n, " loops"}]

{{36, 30, 25, 9, 10}, {36, 22, 44, 13, 2}, {9, 24, 34, 7, 47}, {5, 28, 15, 36, 22}}

4 loops

36 出现在 2 个列表中,但每个列表本身都没有重复。