Перейти к содержанию

GenerateCombinationWithRepetition

GenerateCombinationWithRepetition01

GenerateCombinationWithRepetition (Генератор комбинаций с повторением) - Создает массив случайных целых чисел, сумма всех элементов которого равна заданному значению.

Свойства

Входной аргумент Тип аргумента Тип переменной Описание
n Variable Int32 Количество элементов в итоговом массиве
k Variable Int32 Сумма всех элементов массива
Выходной аргумент Тип аргумента Тип переменной Описание
GenerateCombinationWithRepetition Variable Int32 [] Полученный массив

Пример

Рассмотрим работу блока на следующей программе.

GenerateCombinationWithRepetition02

Создадим следующие переменные, типа Int32: CombinationInt32, summ, i, temp. Для переменной CombinationInt32 установим свойство "Массив". Начально значение для i = 0.

GenerateCombinationWithRepetition03

Настроим блок GenerateCombinationWithRepetition. Сгенерируем массив из 10 элементов так, чтобы общая сумма его элементов была 256.

GenerateCombinationWithRepetition04

Проверим выполнение этого условия. Для этого переберём весь получившийся массив и получим сумму всех его элементов.

Начнём с блока Foreach.

GenerateCombinationWithRepetition05

Далее, настроим блок SetVariable.

Добавим переменные i и summ. Значение для них зададим через Expression.

i = i+1

summ = summ+summ

GenerateCombinationWithRepetition07

Зациклим выполнение с помощью блока Nop.

Из выхода End блока Foreach протянем связь до блока Message и выведем в нём итоговое число.

GenerateCombinationWithRepetition08

Запустим проект.

GenerateCombinationWithRepetition09

На окне сообщения отобразится число "256", как и было задано в блок GenerateCombinationWithRepetition. На панели Контекст можно также заметить, что i = 10. Это говорит о том, что цикл прошёл все 10 итераций и перебрал все элементы созданного массива.

Также из панели Контекст можно посмотреть созданный массив CombinationInt32

GenerateCombinationWithRepetition10