1 / 6
文档名称:

人民币找零.docx

格式:docx   大小:160KB   页数:6页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

人民币找零.docx

上传人:快乐66 2022/5/27 文件大小:160 KB

下载得到文件列表

人民币找零.docx

文档介绍

文档介绍:1
人民币找零
常说的找零即:用比该币币值小的币种来等额替换。
人民币找零:即用比该币币值小的币种来等额替换有多少种替换方法。
人民币的币种构成:100元、50元、20元、10元、5元、2元、1元、5角、2角、1角、5 分、2分1
人民币找零
常说的找零即:用比该币币值小的币种来等额替换。
人民币找零:即用比该币币值小的币种来等额替换有多少种替换方法。
人民币的币种构成:100元、50元、20元、10元、5元、2元、1元、5角、2角、1角、5 分、2分、1分共13种面额货币。
数学模型:层层递推穷举法;以上一层穷举递推为条件设置下一层的递推条件,以控制删除无效的递推穷举。
计算工具:
联想台式机Lenovo 510。处理器Intel(R) Core(TM) i5-9400F CPU @ ;
内存:8G(机带),
Windos 10 专业版,64 位操作系统, 基于 x64 的处理器
编程软件:Microsoft Visual FoxPro 。
3
编程思路:
方法1:
对直接采用循环嵌套命令,对循环条件上限给以有效约束,删除无效循环,逐一列举累计。因差额部份由壹分来补,壹分一级的循环取消。
这种方法简单、简练、直观,币值较小时很适用。因简单,巡环嵌套层级没有问题(用FOR-ENDF巡环命令,其嵌套层级可达13层)。但对币值较大时耗时很长。
只使用了一个汇总数据库。
方法2:
1、采用分级计算;对2角以上的各种类型分别穷举,差额部份由2角及分来凑。因其差额部分分别为:0、1×50分、2×50分、……2000×50分,因此要计算出用2角及分来找零以上币值的方法数。
3
2、对2角以上的采用穷举,并将每一种情况及差额逐一装入数据库。再对应将差额部份用2角及分找零的方法数对应调入到方法数列中。再对该数据库中的方法数一列数字统计汇总就是该币值对应的找零方法总数。
3、因巡环上限是采用逐级迭代控制,算到最后两分这一级时就不需再巡环了,可用一个数学计算式准确计算。使巡环少嵌套一层
4、计算出来的数据再逐一回代计算出总数。
5、使用了一个汇总数据库,分解到2角这一级时包含余额的数据库,用2角表现余额种类的数据库。
6、为什么分级分到2角这一级。这是因为13种币值中有12种要参与递推穷举中,而巡环量大的是下面,上面的巡环量反而小。按一般最优考虑选到5角、2角、1角这三级。选到5角,后面的计算量仍然很大,时间很长。选到1角这一级,当计算100元找零时,第一级计算时要装入数据库中的记录远超数据库的上限1700~1800万条。
方法3:
1、对第二种方法再行优化。第二种方法在计算第二级时仍用时较多,因此考虑为采用三级分解计算:第一级、分解到一元一级,元以后的余额由角、分来穷举。分解到元一级时直接调用后面的数据,进行计算汇总到汇总数据库。
2、分解到一元一级后,余额的表现形式最多有(10000/100+1)种(0是一种特殊情况),第二级再将元以后的余额数分解到一角一级,一角以后的余额由分来穷举。
4
3、分解到一角一级后,余额的表现形式最多有(10000/10+1)种(0是一种特殊情况),即分解到一角这一