История изменений
Исправление MKuznetsov, (текущая версия) :
Есть число. Например. 10 миллиардов. 10.000.000.000. 10^10
Мне нужно, получить сто достаточно рандомных слагаемых из этих 10^10, которые бы в сумме дали эти самые 10 миллиардов. И еще, пожалуй, стоит поставить условия, чтобы слагаемые не повторялись.
переводя на нормальный язык - есть диапазон 1..N надо поделить на K отрезков, так чтобы длины отрезков были уникальны и независимы.
шаг 1: порождаем ряд 1..K+1 (последовательно возрастающие числа, количеством K). Сумма ряда=S.. TC может посчитать на досуге, это из 2-го класса.
шаг 2: набрасываем К случайных чисел в диапазоне от S до N (или от 0 до N-S); Уникальность не требуется. - это та сумма которую надо распеределить (добавить) по ряду из шаг1 чтобы сумма получилась N.
шаг 3: длины отрезков из шага 2 сортируем по возрастанию и попарно складываем с числами из шаг 1.
ВСЁ.
Исходная версия MKuznetsov, :
Есть число. Например. 10 миллиардов. 10.000.000.000. 10^10
Мне нужно, получить сто достаточно рандомных слагаемых из этих 10^10, которые бы в сумме дали эти самые 10 миллиардов. И еще, пожалуй, стоит поставить условия, чтобы слагаемые не повторялись.
переводя на нормальный язык - есть диапазон 1..N надо поделить на K отрезков, так чтобы длины отрезков были уникальны и независимы.
шаг 1: порождаем ряд 1..K+1 (последовательно возрастающие числа, количеством K). Сумма ряда=S.. TC может посчитать на досуге, это из 2-го класса.
шаг 2: набрасываем К случайных чисел в диапазоне от S до N (или от 0 до N-S); Уникальность не требуется. - это та сумма которую надо распеределить (добавить) по ряду из шаг1 чтобы сумма получилась N.
шаг 3: длины отрезков из шага 2 сортируем по возрастанию и попарно складываем с числами из шаг 1.
ВСЁ.