Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Общие вопросы по .NET и C# > Генерация случайных чисел с заданной суммой |
Автор: Winterlord 18.12.2011, 12:14 | ||
Добрый день, уважаемые Знатоки! Возник следующий вопрос: Имеется какое-то число b типа double. Нужно случайно сгенерировать 3 числа так, чтобы их сумма была равна или, в самом крайнем случае, почти равна (различалась не более, чем на 1) числу b. Вот что я написал:
Это работает слишком долго и не рационально. Подскажите пожалуйста, возможно это написать более просто? Может быть не стоит генерировать случайные числа, а нужно как-то разделить число b на 3 части? Заранее благодарен за ответы ! ![]() |
Автор: Экскалупатор 18.12.2011, 23:36 |
опиши для чего это нужно. если просто что бы получить три числа, то можно просто сгенерировать первое число(любое) один раз, ну можно взять из диапазона от 0 до b, т.е. это одно действие, потом можно взять второе число из диапазона от 0 до b-первое число, потом их сложить и вычесть из b, получив третье число. возможно придется немного пошаманить с интервалами что бы не попадать в ситуации когда выпадает 0 или b(к примеру можно взять 0+n и b-n). но это уже детали. если же задача в чем то другом, то скажи в чем, возможно тогда и другое решение понадобится(а может и нет) |
Автор: Winterlord 21.12.2011, 01:09 |
Экскалупатор, Большое спасибо! Примерно так и сделал![]() |