狂信者
精华
|
战斗力 鹅
|
回帖 0
注册时间 2020-2-4
|
本帖最后由 绿野觅仙踪 于 2024-12-6 17:14 编辑
需要decimal.js库,附件pi500a.html 已直接集成在里面,解压出来直接打开,点开始,等待30秒左右完成计算。
红米K70(8gen2),EDGE浏览器
用时:28265 (大概28秒左右)
计算次数:830
十几年前的奔腾E6700,EDGE浏览器
用时:8641
计算次数:830
CHROME浏览器
用时:8655
计算次数:830
需要decimal.js库,附件pi500a.html 已直接集成在里面,解压出来直接打开,点开始,等待30秒左右完成计算。
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8">
- <title>PI</title>
- </head>
- <body>
- <script src='decimal.js'></script>
- <p id='id1' style = "word-wrap: break-word";><font size="30">计算圆周率</font></p>
- <button onclick="startpi()"><font size="30">开始</font></button>
- <script>
- function pi(){
- bit = 500;
- start = new Date().getTime();
- Decimal.precision = 1006
- polygon = 6
- r = 1
- M = r
- i= 0
- while (true){
- G = Decimal.sqrt( Decimal(Decimal.pow(r,2)).sub (Decimal.pow(( Decimal(M).div(2) ),2)))
- j = Decimal(r).sub(Decimal(G))
- m = Decimal.sqrt(Decimal(Decimal.pow((Decimal(M).div(2)),2)).add(Decimal.pow(j,2)))
- polygon = Decimal(2).mul(Decimal(polygon))
- perimeter = Decimal(m).mul(Decimal(polygon))
- pi = Decimal(perimeter).div((2*1))
- M = m
- i++
- if ((pi.toString()).slice(0,bit+2) =='3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989'.slice(0,bit+2)){break}
- }
- end = new Date().getTime();
- t= end - start;
- pi = pi.toString().slice(0,bit+2)
- document.getElementById("id1").innerHTML='<font size="30">用时:' + t + '</br>' + '计算次数:' + i + '</br>' + '结果:' + pi + '</font>';
- };
- function startpi(){
- document.getElementById("id1").innerHTML='<font size="30">正在计算……</font>';
- setTimeout("pi()",500);
- }
- </script>
-
- </body>
- </html>
复制代码
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|