Различные списки Случайные - PullRequest
0 голосов
/ 04 ноября 2018

Во-первых, я генерирую случайные числа (скажем, 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.

Как я запускаю команду типа «Дайте мне 4 списка случайных чисел, без повторов, если сумма = 210 остановленных случайных чисел.»?

спасибо за ответ

1 Ответ

0 голосов
/ 05 ноября 2018

Сообщает, что число первых элементов rand превышает 500.

rand = RandomInteger[10, 1000];

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

103

Второй вопрос

"Каждое число, распределенное в каждом списках, не имеет повторений."

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 петли

36 появляется в 2 списках, но в каждом списке нет повторений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...