电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

POS机付款VIP免费

POS机付款_第1页
1/11
POS机付款_第2页
2/11
POS机付款_第3页
3/11
超市POS机付款问题一、问题描述超市付款问题超市的自动柜员机(POS机)要找给顾客数量最少的现金。请设计算法解决这种付款优化问题。(提示:试写出用动态规划、贪心法等算法策略来解决该问题,找出多个付款方案、并分析程序运行结果和给出算法的复杂性分析。)二、问题分析超市的自动柜员机(POS机)要找给顾客数量最少的现金。例如要找4元6角,如果POS机送出一大堆硬币,比如46个1角钱,就太麻烦了,而最好找2个2元、1个5角和1个1角的。动态规划:假定POS机中有n张面值为Pi(1≤i≤n)的货币,用集合P={p1,p2,...,pn}表示,如POS机需支付的现金为A,那么,它必须从P中选取一个最小子集S,使得pi∈s,∑i=1mpi=A(m=|S|)(1)如果用向量X=(x1,x2,...,xn)表示S中所选取的货币,则xi={01pi∉spi∈S(2)那么,POS机支付的现金必须满足∑i=1nxipi=A(3)并且d=min∑i=1nxi(4)在上述问题中集合P是该问题的输入,满足式(1)和解称为可行解,式(2)是解的表现形式,因为向量X中有n个元素,每个元素的取值为0或1,所以,可以有2n个不同的向量,所有这些向量的全体构成该问题的解空间,式(3)是该问题的约束条件,式(4)是该问题的目标函数,使式(4)取得极小值的解称为该问题的最优解。对POS机付款问题:(1)count[i]表示凑合数量为i所需最少的钱币数量,即最优值。(2)则count[i]=min{count[i-T[j]]+1}(原问题分段)。(3)其中0<=j<=N-1动态规划函数的递进式。(4)满足(T[j]<=i&&count[i-T[j]]+1=p[i],则选取第i张钱币,同时money=money-p[i].否则:不选取第i张钱币,同时i++,进行下一站钱币的判断。直到money!=0.三、算法思想动态规划算法:动态规划法利用问题的最优性原理,以自底向上的方式从子问题的最优解逐步构造出整个问题的最优解。应用动态规划法设计算法一般分为3个阶段:(1)分段:将原问题分解成为若干个相互重叠的子问题。(2)分析:分析问题是否满足最优性原理,找出动态规划函数的递进式。(3)求解:利用递进式自底向上计算,实现动态规划过程。贪心算法:顾名思义,贪心算法总是作出在当前看来最好的选择。也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择。当然,希望贪心算法得到的最终结果也是整体最优的。虽然贪心算法不能对所有问题都得到整体最优解,但对许多问题它能产生整体最优解。在一些情况下,即使贪心算法不能得到整体最优解,其最终结果却是最优解的很好近似。可以用贪心法求解的问题中一般具有两个重要的性质:最优子结构性质和贪心选性质。四、C++源代码动态规划算法:#includeconstintM=100;constintN=100;intT[100];//数组T[]表示存放n种货币递增的面值,money表示所要找的零钱intcount[M];//count[i]表示凑合数量为i所需最少的钱币数量,即最优值,则count[i]=min{count[i-T[j]]+1},其中0<=j<=N-1intselect[M];//每个表示count[i]在取最小值时的选择,即上式中的jvoidarray(intT[],intn){inti,j,temp;for(i=1;i<=n;i++)//冒泡排序{for(j=1;j<=n-i;j++){if(T[j]>T[j+1]){temp=T[j];T[j]=T[j+1];T[j+1]=temp;}}}}intmoney_change(intmoney){inti=0;intj=0;for(i=0;i<=M;i++)count[i]=0xffff;count[0]=0;for(i=0;i<=money;i++){for(j=0;j<=N;j++)if(T[j]<=i&&count[i-T[j]]+1>money;cout<<"请输入钱币的种类:"<>n;cout<<"请输入各种钱币面值:"<>T[i];cout<<"排序后各种钱币的面值:"<

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

确认删除?
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群