从找零到人民币面额设计

JAVASCRIPT基础(打印杨辉三角,金钱找零系统) 实现简单的JAVASCRIPT交互式网页设计 使用JAVASCRIPT打印出杨辉三角 根据第一章所讲,创建一个HTML文件 代码如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>杨辉三角</title> <script type="tex... 阅读详情
引子
晚上坐飞机从北京回成都,在机场候机花了23元买了一袋麻辣牛肉干。身上没零钱,就拿了一张100给售货员找零77。突然觉得这件事情太好玩儿了。中国发行的货币有100、50、20、10、5、1这几种面额的纸币。为什么我们的面额要这样设计呢?不这样设计会怎样?假设这几种面额的设计是合理的,那么这些纸币要按照什么样的比例进行发行才能保证我们生活中给100找73的这个看似很简单的事情能够正常进行呢?地球太神奇了。


面额为什么这样设计?
面额的设计会影响我们什么?面额设计的目的目标又是什么?如果我任意设计面额1,4,5,8,9这样。看似不合理,但是它会有什么不好的地方吗?我们不想清楚这个问题,我们就不知道怎么样的面额设计才是合理的,更不知道设计面额的时候需要考虑的是什么。


如果我们只发行100元的纸币。这意味着货币面额的本身就不能支持价值100元一下的商品的交易,这说明面额设计需要考虑【可用性】。


如果仅仅考虑可用性,我们可以只发行1元的纸币。理论上,我们可以用N个1元购买任意金额的商品。但是,如果想要买99元的东西,就开始悲剧了。这说明面额设计需要考虑【便捷性】。


如果我们认为便捷性唯一的考量因素是我们支付时需要支付的纸币的张数。那么,为什么我们不每个面额的纸币都发行一张呢?比如,我们有1、2、3、4、5、6、7、8、9、10、11、12、13、14...97、98、99元,这样任意100以内的金额,我们只需要一张纸币就足够了。我在机场只需要给售货员一张23的纸币就ok了。


问题在于,我怎么知道我到了机场我就想买那袋23元的麻辣牛肉干。而不是旁边的30的五香牛肉干?如果我提前不知道,或者很难预测,那我为了达到只需要支付一张纸币的”便捷性“,我就要准备1~99面额的纸币各一张,就身上随时要携带4950元,一共99张纸币,我们还能说这是便捷的吗?


所以,我们在设计纸币面额的时候不仅仅需要考虑到可用性和最直观的便捷性这些发生在交易一瞬间的特性,也要考虑到”现金交易的时间、金额的【不确定性】。正是因为这个不确定性,又会反过来影响我们的【便捷性】,所以,我们设计编辑的面额,不仅仅是支付一个特定金额的便捷,而是支付任意金额的便捷。


再想,如果用1,4,5,8,9这样的方式进行设计,会有什么问题吗?假设我们1~9出现的概率相同,那么可以得到这样一个最“便捷”的表
1: 1张1元
2: 2张1元
3: 3张1元
4: 1张4元
5: 1张5元
6: 1张5元 + 1张1元
7: 1张5元 + 2张1元
8: 1张8元
9: 1张9元
统计:1元纸币出现的概率为:5/9,5元纸币出现的概率为:3/9,4\8\9出现的概率都是:1/9,这说明,我们这样的设计本身就不是对称的。4\8\9这样的面额设计出来被人使用的概率就很小,我们就不要提供这样的面额。【使用率】。
如果按照1,2,5这样的方式进行设计:
1: 1张1元
2: 1张2元
3: 1张1元 + 1张2元
4: 2张2元
5: 1张5元
6: 1张5元 + 1张1元
7: 1张5元 + 2张1元
8: 1张5元 + 1张2元 + 1张1元
9: 1张5元 + 2张2元
统计:1张纸币出现的概率为:5/9,2元纸币出现的概率为:6/9,5元纸币出现的概率为:5/9。几乎一摸一样。


我们在上面的讨论中没有涉及到找零。原因很简单,比如,我买了23元的牛肉干,我给的是100。其实问题就变成了售货员如何给我77。所以问题是不变的,都是如何用最少的纸币构造出特定的金额,问题的核心并不是由谁来构造,如果我刚好身上有一堆零钱,就该我掰手指点钱了。于是,我们设计的重点就可以简化成,如何【便捷】的构造金额。


上面的例子纯属虚构,我们人民币并没有2元的面额。那问题就来了,我们的人民币的面额设计为什么这么没有对称的美感呢?为什么我们有20元的面额,却没有2元的面额?是很随意的决定?【50、20、10】,【5,2,1】不更加有美感吗?如果我们没有2元的面额,这意味着什么?1元面额的增多?是不是因为我们有1元的硬币呢?那为什么又要有硬币呢?有了纸币,硬币存在的必要性又是什么?




按照什么比例发行纸币?
如果按照现在人民币的面额1,5,10,20,50来进行设计,我们需要各种纸币需要按照什么样的比例来发行呢?
在回答了面额要如何设计以后,这个问题现在变得容易了,我们假设1~99出现的概率一致。那我们只要把每个金额的最简方式列出来,再统计比例就行了。不想算了(算是计算的算)。
简易的找零系统 简单的找零系统,没有后台的数据库。可以实现5毛,1元硬币的显示。 立即下载

相关推荐

最少硬币找零算法

这是一个利用动态规划的最少硬币找零算法,时间效率符合要求

用jsp声明编写一个函数,实现纸币找零的功能

exchange.html: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <form action="exchange.jsp"&g...

Toxic_Boy的博客 7454

Python实现的一个找零钱的小程序代码分享

Python写的一个按面值找零钱的程序,按照我们正常的思维逻辑从大面值到小面值的找零方法,人民币面值有100元,50元,20元,10元,5元,1元,5角,1角,而程序也相应的设置了这些面值。只需要调用函数时传入您想要找零的金额,程序会自动算各个面值的钱应该找多少张。如传入50元,则系统自动算出找零50元一张面值,如果传入60块7毛,则程序自动算出该找零50元一张,10元一张,5角一张,1角两张。 # encoding=UTF-8   def zhaoqian(money):     loop=True     tmp=['总金额:'+str(money)+'元']           # 面

货币找零系统

例:编写一个金额找零系统,用输入框输入一个整数,表示找零的数量,数值在1~100之间,假如系统中有50,20,10,5,1这五种面额的纸币,显示每种纸币应该找的数量。 <html> <head> <title>Inser title here</title> </head> <script typ...

芒果summer小仙女 8841

银河麒麟V10 SP3系统下如何安全安装gcc-toolset-10(附yum仓库避坑指南)

本文详细介绍了在银河麒麟V10 SP3系统中安全部署gcc-toolset-10的完整方案。核心在于通过配置默认禁用的yum仓库(如EPKL仓库)并配合--enablerepo参数进行精准安装,有效规避依赖冲突风险,实现与系统默认GCC 7.3的稳定共存。文章还提供了多版本环境切换、系统维护及故障排查的实用指南,确保操作的可控与可逆。

h0i1j2k3l的博客 588

VisionPro 9.0 QuickBuild里用C#脚本调用Halcon 23.11模型,保姆级图文配置流程

本文详细介绍了如何在VisionPro 9.0 QuickBuild环境中使用C#脚本调用Halcon 23.11深度学习模型,提供从环境配置到模型集成的保姆级图文教程。重点解决图像格式转换、许可证配置等工业视觉检测中的常见问题,帮助开发者快速实现高效、稳定的视觉检测流水线部署。

weixin_27027459的博客 432

找零问题(Java版)

输入一个整数参数,以集合形式表示各种纸币找零的数量,输入1~100中的值,假如系统中有50、20、10、5、1这5种面额的纸币,显示每种纸币应该找的数量, 例如: 78元应该为50元1张、20元1张、5元1张、1元3张 。 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&g

挖洞的杰瑞的博客 2319

BIOS更新后PIN不可用怎么办?从原理到实操的完整修复指南

在计算机维护中,BIOS更新是常见的固件升级操作,但其引发的登录异常却常让用户措手不及。Windows Hello PIN并非传统密码,它通过TPM芯片与设备启动环境(PCR状态)强绑定,一旦主板固件或安全启动配置改变,TPM便会拒绝释放密钥,导致“由于此设备上的更改,你的PIN不再可用”。理解这一原理后,恢复路径清晰可控:优先尝试密码登录,或通过WinRE替换utilman.exe创建临时管理员,必要时还需处理BitLocker恢复密钥。本文面向系统维护与数据安全场景,系统梳理PIN失效的恢复流程与避坑方

weixin_31364787的博客 358

找零(用最少张数的人民币)

设人民币的面额有(以元为单位)1分、2分、5分、1角、2角、5角、1元、2元、5元、10元、20元、50元。编写函数void change(double m,double c);其中m为商品的价格,c为顾客付款,函数能输出应给顾客找零金额的面额的人民币张数,且张数之和为最小。要求在主函数中输入商品价格和顾客付款,调用函数得到结果。 #include <iostream> using n...

Aoke20020226的博客 2750

AutoCAD 2024 Mac版安装激活教程:从下载到破解一站式解决方案

本文提供AutoCAD 2024 Mac版的详细安装与优化指南,包括系统要求检查、下载安装流程、常见问题解决方案及性能优化设置。特别介绍了如何应用最新补丁和Update保持软件性能,帮助用户顺利完成从安装到破解的全过程。

weixin_29239661的博客 839

IsaacLab从入门到精通(二) 导入自定义机器人

IsaacLab系列第二讲,导入自定义的机器人及设置

DejaWu33的博客 8464

“人民币找零”问题的贪婪法解决算法

/**//*    标题:>应试编程实例-[递推算法程序设计]    作者:成晓旭    时间:2002年09月14日(18:20:00-20:18:00)          实现“装箱”问题的贪婪算法实现函数    时间:2002年09月14日(22:00:00-23:18:00)          实现“装箱”问题的贪婪算法实现函数    时间:2002年09月14日(18:20:38-22:

软件开发资料汇总 451

〔重庆理工大学〕计算机组成原理课设报告--16位单周期CPU设计

本课程设计的实验平台为Altera Quartus II 软件和Altera Cyclone V Starter 工具箱。(1)Cyclone V是Altera FPGAs家族的一类,它面向低功耗应用。Cyclone V GX 5CGXFC5C6F27C7N 芯片有不同的转换器,按钮,LED灯,七段显示器,HDMI接口,SD卡读卡器以及其他链接等。Cyclone V GX 5CGXFC5C6F27C7N是Starter工具箱的重要组件。(2)测试台包含在测设备(DUT)和用于仿真的模拟输入。

Pretty Boy Fox的博客 1066

c语言贪心算法找零钱,数据结构--贪心算法解决找零钱问题 这里用的是人民币()...

// 实验小结 吴新强于2013年3月20日0:19:08 桂电 2507实验室// 贪心算法解决找零钱问题 这里用的是人民币()using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.IO;namespace Greedy_Algorithm{class Pro...

weixin_36102776的博客 756

解锁RK3588多屏异显:MIPI+HDMI+EDP混合输出全攻略

本文详细介绍了RK3588处理器在MIPI+HDMI+EDP混合输出配置中的技术实现与应用。作为一款高性能处理器,RK3588凭借其强大的图形处理能力,支持多屏异显功能,可满足智能安防、工业控制等领域的多屏显示需求。文章从硬件连接、设备树配置、内核驱动设置到显示参数调整,系统阐述了配置流程,并针对信号不稳定、显示模式不匹配等常见问题提供了解决方案。通过智能安防监控案例,展示了该技术在提高监控效率方面的实际应用价值。随着技术进步,RK3588多屏异显技术将在更多领域发挥重要作用,为开发者提供灵活多样的显示方案

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 2431

《网络安全自学教程》- Windows安全机制:安全标识符,身份鉴别和访问控制

这篇文章详细介绍Windows和Linux如何标识用户,如何根据标识验证用户身份,如何根据用户身份做访问控制。

wangyuxiang946的博客 1万+
上一篇: 从ORM到尾差计算
下一篇: 脑法之一 --- DEBUG与搜索算法
kiwi小白
博客等级 码龄14年 153粉丝 154原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值