【发布时间】:2020-04-16 17:21:31
【问题描述】:
给定一个值=[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 之类的东西,虽然我想不出一个好的策略。
【问题讨论】: