下面这个故事刚开始绕住了数学家编辑哦!两个造假币的不小心造出了 33 元的钞票却又不想浪费,他们决定拿到偏远山区花掉。当他们用 33 元的假币买了一串 1 元的糖葫芦后,他们哭了:农民伯伯找给他们两张 16 元!

当然,这只是一个段子。加拿大滑铁卢大学计算机系研究员 Jeffrey Shallit 也很喜欢这个段子,并且他认为,从理论上讲钞票就应该有 16 元和 33 元的。

16元的纸币最方便

以人民币为例,纸币面值在 100 元以下的一共有 1 元、5 元、 10 元、 20 元、 50 元五种。 Jeffrey 认为这 5 种纸币面额数值的组合并不是最科学的,而应该是 1 元、 5 元、 16 元、 23 元、 33 元这五种。

平时我们去超市买东西,每次使用 100 元以下数额的钱( 1 元到 99 元),需要用 1 元、 5 元、 10 元、 20 元、 50 元五种面额的钱币组合而成,有的时候需要一张,有的时候需要两张或者更多。比如你需要 31 元的零钱,可以用三张 10 元的和一张 1 元,也可以用一张 10 元、一张 20 元和一张 1 元,前一种需要四张纸币,后一种需要三张。在组成 31 元的所有可能方案中, 10+20+1 是最佳的,它最节省钞票张数,也就是说,凑成 31 元最少也需要三张纸币。

我们可以对从 1 到 99 之间的每个数额分别算出来它最少需要的纸币张数,这不难通过编程实现。这样一来就能知道使用这五种面额的人民币组成 99 个数额,在最“环保”的组合方式下,平均需要多少张钞票。

下一页
阅读全文