24 / 22 / 3
Регистрация: 25.12.2011
Сообщений: 65
|
|
1 | |
Сгенерировать 5 случайных чисел так, чтобы их сумма была равна заданному числу06.04.2012, 02:48. Показов 16797. Ответов 6
Метки нет (Все метки)
Всем привет. Необходимо сгенерировать и сохранить в массив 5 случайных чисел, но так, чтобы их сумма была равна заданному числу, например 100. Мой вариант решения получился слишком громоздким, хотелось бы увидеть другие.
0
|
06.04.2012, 02:48 | |
Ответы с готовыми решениями:
6
Сгенерировать массив из 0, 1, 2 так, что бы сумма чисел была равна 12 Сгенерировать набор случайных чисел, чтобы их сумма была равна заданному числу n Замените звездочки цифрами так, чтобы сумма любых трёх соседних цифр была равна заданному числу В дереве найти такой пусть, чтобы сумма узлов была равна заданному числу |
20 / 19 / 0
Регистрация: 04.04.2012
Сообщений: 31
|
|
06.04.2012, 03:06 | 2 |
Ну, самый негромоздкий из возможных вариантов - в цикле генерировать пять чисел и проверять, равна ли их сумма заданному числу. Если равна, выходить из цикла. Но количество итераций при таком подходе будет стремиться к бесконечности.
Числа должны быть случайными в каком диапазоне?
0
|
17685 / 12871 / 3365
Регистрация: 17.09.2011
Сообщений: 21,136
|
||||||
06.04.2012, 04:51 | 3 | |||||
Я бы как-то так сделал:
Метод, конечно, далеко не идеален (особенно будет заметно на больших массивах), но копать надо в этом направлении, как мне кажется.
2
|
24 / 22 / 3
Регистрация: 25.12.2011
Сообщений: 65
|
|
06.04.2012, 12:51 [ТС] | 4 |
Ну теоретически, такая генерация может длиться целый день, поэтому я сразу отказался от этого метода. Диапазон не важен, но числа не должны быть равны 0 (извиняюсь, забыл об этом написать в условии)
kolorotur, хороший вариант, попробую. п.с. Если будут еще варианты или идеи, пишите.
0
|
06.04.2012, 13:14 | 5 | |||||
линк на stackoverflow
Код
Код можно укоротить за счет LINQ. PS. Есть шанс, что код не заработает. Один раз на 0x7fffffff5 запусков.
1
|
12 / 12 / 2
Регистрация: 28.03.2012
Сообщений: 49
|
||||||
06.04.2012, 13:31 | 6 | |||||
не знаю насколько правильно но из десяти запусков 10 в точку
1
|
06.04.2012, 14:01 | 7 | |||||
У вас не равномерное распределение получается. Последнее число всегда будет больше остальных.
Добавлено через 22 минуты Не могу придумать как последний цикл правильно упростить:
1
|
06.04.2012, 14:01 | |
06.04.2012, 14:01 | |
Помогаю со студенческими работами здесь
7
Можно ли в данном массиве выбрать какие-либо элементы, чтобы их сумма была равна заданному числу? Можно ли создать n заданных рандомных чисел, чтобы из сумма была равна какому либо определённому числу Можно ли перед каждым из чисел от 1 до N расставить знаки «+» или «–» так, чтобы сумма получившихся чисел была равна 0? Можно ли перед каждым из чисел от 1 до N расставить знаки «+» или «–» так, чтобы сумма получившихся чисел была равна 0? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |