GenerateCombinationWithRepetition
GenerateCombinationWithRepetition (Генератор комбинаций с повторением) - Создает массив случайных целых чисел, сумма всех элементов которого равна заданному значению.
Свойства
Входной аргумент | Тип аргумента | Тип переменной | Описание |
---|---|---|---|
n | Variable | Int32 | Количество элементов в итоговом массиве |
k | Variable | Int32 | Сумма всех элементов массива |
Выходной аргумент | Тип аргумента | Тип переменной | Описание |
---|---|---|---|
GenerateCombinationWithRepetition | Variable | Int32 [] | Полученный массив |
Пример
Рассмотрим работу блока на следующей программе.
Создадим следующие переменные, типа Int32: CombinationInt32, summ, i, temp. Для переменной CombinationInt32 установим свойство "Массив". Начально значение для i = 0.
Настроим блок GenerateCombinationWithRepetition. Сгенерируем массив из 10 элементов так, чтобы общая сумма его элементов была 256.
Проверим выполнение этого условия. Для этого переберём весь получившийся массив и получим сумму всех его элементов.
Начнём с блока Foreach.
Далее, настроим блок SetVariable.
Добавим переменные i и summ. Значение для них зададим через Expression.
i = i+1
summ = summ+summ
Зациклим выполнение с помощью блока Nop.
Из выхода End блока Foreach протянем связь до блока Message и выведем в нём итоговое число.
Запустим проект.
На окне сообщения отобразится число "256", как и было задано в блок GenerateCombinationWithRepetition. На панели Контекст можно также заметить, что i = 10. Это говорит о том, что цикл прошёл все 10 итераций и перебрал все элементы созданного массива.
Также из панели Контекст можно посмотреть созданный массив CombinationInt32