利用ASP(Vbscript)实现角谷猜想的迭代算法
发布时间:2010年6月3日 文章分类:服务器技术 文章作者:Hitomi 浏览次数:次
日本数学家谷角静夫在研究自然数时发现了一个奇怪现象:对于任意一个自然数n,若n为偶数,则将其除以2;若n为奇数,则将其乘以3,然后再加1。如此经过有限次运算后,总可以得到自然数1。人们把谷角静夫的这一发现叫做“谷角猜想”。
简单来说就是:一个自然数,按“逢双除以2,逢单则乘以3加上1”的规则重复进行计算,最终结果必定是1。
这个猜想是谁提出的我不知道,只是书上说,又称为叙拉谷猜想或科拉兹猜想。
从他的论述和举例来看貌似是正确的:
例如,最初是7
- → 7×3+1=22 偶
- → 22÷2 =11
- → 11×3+1=34 偶
- → 34÷2 =17
- → 17×3+1=52 偶
- → 52÷2 =26 偶
- → 26÷2 =13
- → 13×3+1=40 偶
- → 40÷2 =20 偶
- → 20÷2 =10 偶
- → 10÷2 =5
- → 5×3+1=16 偶
- → 16÷2 =8 偶
- → 8÷2 =4 偶
- → 4÷2 =2 偶
- → 2÷2 =1
本题目要实现的就是输入任意自然数提交后利用ASP(vbscript)计算后,输出全部运算过程,类似例子中的7的全部运算。
下面是我用ASP实现的效果演示
http://www.sseoo.com/mygame/kakutani/?n=7
有兴趣的朋友可以在后边加上不同的参数
比如:http://www.sseoo.com/mygame/kakutani/?n=476
源代码下载:http://www.sseoo.com/mygame/kakutani/kakutani.rar
ASP源代码:
XML/HTML代码
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
- <title>利用ASP(Vbscript)实现角谷猜想的迭代算法</title>
- <style type="text/css">
- #wrap{width:760px;margin:20px auto;}
- #wrap form{padding:10px;}
- #wrap p{margin:0;padding:0;color:#666;line-height:20px;font-family:Geneva, Arial, Helvetica, sans-serif;font-size:12px;border-bottom:1px dashed #EEE;padding:0 10px;}
- #wrap p em{color:#F00;font-style:normal;font-weight:bold;}
- </style>
- </head>
- <body>
- <div id="wrap">
- <form method="get" name="kakutani" action="">
- 请输入一个自然数:<input type="text" name="n" size="8" /> <input type="submit" value="提交" />
- </form>
- <%
- n = request.querystring("n")
- if isnumeric(n) then
- if n <= 1 then
- response.write "<p><em>请输入大于1的数字好吗?</em></p>"
- else
- response.write "<p><em>当n="&n&"时</em></p>"
- response.flush()
- do while not n = 1
- if n mod 2 = 0 then
- response.write "<p>"&n&" ÷ 2 = "&n/2&"</p>"
- response.flush()
- nn = n / 2
- else
- response.write "<p>"&n&" × 3 + 1 = "&n*3+1&"</p>"
- response.flush()
- nn = n * 3 + 1
- end if
- loop
- end if
- else
- response.write "<p><em>请输入个数字可以吗?</em></p>"
- end if
- %>
- </div>
- </body>
- </html>