📄 apsimon 的造币厂问题.htm
字号:
<p class=MsoPlainText><span lang=EN-US style='font-size:12.0pt;mso-bidi-font-size:10.0pt'><span style="mso-spacerun:yes"> </span>for j:=1 torj do<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-size:12.0pt;mso-bidi-font-size:10.0pt'><span style="mso-spacerun:yes"> </span>if e[j]=mn1 then<span style="mso-spacerun: yes"> </span>显示"没通过检验",结束;<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-size:12.0pt;mso-bidi-font-size:10.0pt'><span style="mso-spacerun:yes"> </span>inc(rj);e[rj]:=rs1;<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-size:12.0pt;mso-bidi-font-size:10.0pt'><span style="mso-spacerun: yes"> </span>】;<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-size:12.0pt;mso-bidi-font-size:10.0pt'><span style="mso-spacerun: yes"> </span>A-3 通过检验,打印结果.<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-size:12.0pt;mso-bidi-font-size:10.0pt'><span style="mso-spacerun: yes"> </span>算法 B.利用递归生成所有可能的(a[1],a[2],...,a[n]),(b[1],b[2],...,b[n]).<o:p></o:p></span></p><p class=MsoPlainText><span style='font-size:12.0pt;mso-bidi-font-size:10.0pt'>从中搜索满足条件的解<spanlang=EN-US>.记第i1次递归过程为next(i1).<o:p></o:p></span></span></p><p class=MsoPlainText><span lang=EN-US style='font-size:12.0pt;mso-bidi-font-size:10.0pt'><span style="mso-spacerun: yes"> </span>B-1 if i1=n then {递归结束控制}<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-size:12.0pt;mso-bidi-font-size:10.0pt'><span style="mso-spacerun: yes"> </span>【b[i1]:=samp-ss;<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-size:12.0pt;mso-bidi-font-size:10.0pt'><span style="mso-spacerun:yes"> </span>ifbb[i1]>0<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-size:12.0pt;mso-bidi-font-size:10.0pt'><span style="mso-spacerun:yes"> </span>then<span style="mso-spacerun: yes"> </span>for k:=0 to b[i1] do 【a[i1]:=k; 执行算法A】<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-size:12.0pt;mso-bidi-font-size:10.0pt'><span style="mso-spacerun:yes"> </span>else 返回上层过程<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-size:12.0pt;mso-bidi-font-size:10.0pt'><span style="mso-spacerun: yes"> </span>】<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-size:12.0pt;mso-bidi-font-size:10.0pt'><span style="mso-spacerun: yes"> </span>B-2 i2:=mint-i1+1;<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-size:12.0pt;mso-bidi-font-size:10.0pt'><span style="mso-spacerun: yes"> </span>c[i1]:=(samp-ss+i2-1) div i2;<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-size:12.0pt;mso-bidi-font-size:10.0pt'><span style="mso-spacerun: yes"> </span>maxt:=c[i1]*2; {c[i1],maxt为对a[i1]或b[i1]搜索的下界,上界}<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-size:12.0pt;mso-bidi-font-size:10.0pt'><span style="mso-spacerun: yes"> </span>if i1>1 then<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-size:12.0pt;mso-bidi-font-size:10.0pt'><span style="mso-spacerun:yes"> </span>【maxt:=a[i1-1];<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-size:12.0pt;mso-bidi-font-size:10.0pt'><span style="mso-spacerun:yes"> </span>ifb[i1-1]>a[i1-1] then maxt:=b[i1-1]】;<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-size:12.0pt;mso-bidi-font-size:10.0pt'><span style="mso-spacerun: yes"> </span>B-3 if i1<=(mintdiv 2) then<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-size:12.0pt;mso-bidi-font-size:10.0pt'><span style="mso-spacerun:yes"> </span>for a[i1]:=c[i1]to maxt do<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-size:12.0pt;mso-bidi-font-size:10.0pt'><span style="mso-spacerun:yes"> </span>【ss:=ss+a[i1];<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-size:12.0pt;mso-bidi-font-size:10.0pt'><span style="mso-spacerun:yes"> </span>if ss<samp then<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-size:12.0pt;mso-bidi-font-size:10.0pt'><span style="mso-spacerun:yes"> </span>for b[i1]:=0 to a[i1] do next(i1+1);<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-size:12.0pt;mso-bidi-font-size:10.0pt'><span style="mso-spacerun:yes"> </span>ss:=ss-aa[i1];<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-size:12.0pt;mso-bidi-font-size:10.0pt'><span style="mso-spacerun:yes"> </span>】<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-size:12.0pt;mso-bidi-font-size:10.0pt'><span style="mso-spacerun: yes"> </span>else<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-size:12.0pt;mso-bidi-font-size:10.0pt'><span style="mso-spacerun:yes"> </span>for b[i1]:=cc[i1]to maxt do<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-size:12.0pt;mso-bidi-font-size:10.0pt'><span style="mso-spacerun: yes"> </span><span style="mso-spacerun:yes"> </span>【ss:=ss+bb[i1];<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-size:12.0pt;mso-bidi-font-size:10.0pt'><span style="mso-spacerun:yes"> </span>if ss<samp then<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-size:12.0pt;mso-bidi-font-size:10.0pt'><span style="mso-spacerun:yes"> </span>for a[i1]:=0 to b[i1] do next(i1+1)<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-size:12.0pt;mso-bidi-font-size:10.0pt'><span style="mso-spacerun:yes"> </span>ss:=ss-bb[i1];<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-size:12.0pt;mso-bidi-font-size:10.0pt'><span style="mso-spacerun:yes"> </span>】<spanstyle="mso-spacerun: yes"> </span><o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-size:12.0pt;mso-bidi-font-size:10.0pt'><span style="mso-spacerun: yes"> </span>主算法:<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-size:12.0pt;mso-bidi-font-size:10.0pt'><span style="mso-spacerun: yes"> </span>(1) 输入 n,samp, 令 ss:=0.<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-size:12.0pt;mso-bidi-font-size:10.0pt'><span style="mso-spacerun: yes"> </span>(2) i1=1, 执行算法B.(next(i1))<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-size:12.0pt;mso-bidi-font-size:10.0pt'><span style="mso-spacerun: yes"> </span>第 1 段中的结果 L.1就是利用该算法得到的.计算机程序是用Turbo Pascal 7.0编写的.实际计算表明,当n=6,7时,对固定的样本数,若有解,则解不唯一.容易分析,该算法的时间复杂性是指数型的.为了找到更好的结果(满足min(p<sub>n</sub>)<2<sup>n-1</sup>),作者曾在一台奔腾200MHz的微机上运行数小时,鉴于时间太长,没有完成搜索.<o:p></o:p></span></p><p class=MsoPlainText><span lang=EN-US style='font-size:12.0pt;mso-bidi-font-size:10.0pt'><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></p><p class=MsoPlainText><b style='mso-bidi-font-weight:normal'><span lang=EN-USstyle='font-size:12.0pt;mso-bidi-font-size:10.0pt'>4 结束语<o:p></o:p></span></b></p><p class=MsoPlainText><b style='mso-bidi-font-weight:normal'><span lang=EN-USstyle='font-size:12.0pt;mso-bidi-font-size:10.0pt'><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></b></p><p class=MsoPlainText><span lang=EN-US style='font-size:12.0pt;mso-bidi-font-size:10.0pt'><span style="mso-spacerun: yes"> </span>关于艾波西蒙问题还有许多工作可做.今后力图找出某些内在的规律,进而简化算法,从而可对更大的n进行搜索或得到更小的p<sub>n</sub>.作者深刻体会到,一些难题在数学理论上的研究,一旦与计算机算法联系起来,与实际的上机计算联系起来,必将有所突破,有所进展.<o:p></o:p></span></p><p class=MsoPlainText style='line-height:12.0pt'><span lang=EN-USstyle='font-size:12.0pt;mso-bidi-font-size:10.0pt'><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></p></div></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -