Учитывая массив банкнот со значениями = [1, 5, 10, 20, 50, 100], каков наилучший метод их случайного распределения, чтобы соответствовать общей сумме, например, 363? Я не хочу использовать модуль и добавить найти остаток, добавив сначала большие заметки. Я бы хотел, чтобы оно было более случайным, чтобы оно могло иметь более естественное распределение, в котором банкноты составляют сумму.
В настоящее время я делаю это:
int temp = totalAmount;
for (int i = 0; i < values.Length; i++)
{
amounts[i] = temp / values[i];
temp %= values[i];
}
Это будет дайте мне распределение нот 3x100, 1x50, 1x10, 3x1, но я бы предпочел, чтобы это было что-то вроде 1x100, 3x50, 2x20, 6x10, 13x13, хотя я не могу придумать хорошую стратегию.