您好,欢迎来到模板无忧!
登录
注册
闁衡偓閹増顥�
闁瑰吋绮庨崒锟�
闁革附婢樺ù锟�
閻㈩垼鍠栨慨锟�
模板无忧
网页特效
每日更新
|
TOP排行榜
|
Tag标签
|
充值
无忧首页
网页模板
程序模板
建站教程
视频教程
网页特效
图标素材
字体下载
站长工具
站长问答
关闭顶部
展开顶部
网页特效
菜单导航
图片特效
文本链接
层和布局
页面背景
表单按钮
日期时间
计算转换
键盘鼠标
浏览器
游戏娱乐
综合其它
常用代码
jQuery特效
Prototype
Ajax/JavaScript
ExtJS
CSS特效
在线编辑器
Mootools
HTML
JS广告代码合集
站长工具
站长常用软件
网站综合查询
Alexa排名查询
Google PR查询
域名Whois查询
网站收录查询
友情链接查询
CSS2中文手册
CSS精简优化工具
AI閻忓繐绻楁禒锟� 闁煎疇妫勯崯鎾村濮樿鲸鏆�
闁糕晝鍠庨幃锟�
闁规亽鍔忓畷锟�
展开边栏
关闭边栏
网页特效代码
模板无忧
>
网页特效
>
日期时间特效代码
>
收藏
分享
查看评论
日期时间
演示
计算圆周率_日期时间特效
查看演示效果
特效Tag:
圆周率
添加
缂備礁娲﹂埅绀慹deCMS閻熸瑥妫濋。鍫曞极濞嗘垟鏌�
濞戞梹澹嗛埞鏍⒒閿燂拷 缂佸鍠愬﹢鍥礉閳ヨ櫕鐝� 闂侇偄顦辩紞澶屾兜閺囨氨闉嶉柤杈ㄦ缁憋拷
闁哄啰濮撮崪鏍博濞嗘挻姣愮€规悶鍎遍崣锟�,闁谎勫劤鐎规娊寮堕崘顔兼濞戞挴鍋撻梺娆惧枛閸欏繘寮婚敓锟�!
计算圆周率,您可以先修改部分代码再运行.
<HTML> <HEAD> <META NAME="keywords" CONTENT="Pi, machin, javascipt, numerical methods, multiple precision, series"> <TITLE>PI in JavaScript-模板无忧www.mb5u.com</TITLE> <SCRIPT LANGUAGE="JavaScript"> <!-- // // arctangent series for Pi a la mode by Bohr // var vectorsize = 53; // number of elements in each of four arrays var nCells = 52; // number of array elements displayed // constant var BASE = 10000.0; // The number base var TENTHOUSANDTH = 0.0001; // avoids floating point division var SQ_239E4 = 571210000.0; // = BASE x 239 squared var SQ_5E4 = 250000.0; // = BASE x 5 squared var REPAIR = 0.000005; // roundoff correction var RECIPR_25 = 0.04; // the reciprocal of 25 is 0.04 var RECIPR_239= 1.0 / 57121; // reciprocal of 239 squared // arrays var term5 = null; // = (1/5)^(2n+1), integer array var term239 = null; // = (1/239)^(2n+1), integer array var sum = null; // = 16term5-4term239, integer array var series = null; // = PI // floating or integer var TwoNplus1 = 1.0; // 2n+1 = 1,3,5,7,... var Basex2n_1 = BASE; // = 10000*(2n+1) var Currdigit = 1; // index of the series[] element being printed var sgn = 1; // = (-1)^n; takes the values -1 and 1 // strings var IntroString = " Pi = 3."; function MakeArray(n) { this.length = n; for (var i = 1; i <= n; i++) { this[i] = 0; } return this; } function PiSetup() { term5 = new MakeArray(vectorsize); term239 = new MakeArray(vectorsize); sum = new MakeArray(vectorsize); series = new MakeArray(vectorsize); term5[1] = 5; term239[1] = 239; } function DivideTerms() { var total5 = term5[1]; var total239 = term239[1]; // Divide the terms by 25 or 57121 for (var i = Currdigit; i <= nCells + 2; i++) { term5[i] = Math.floor( RECIPR_25 * total5 + REPAIR ); total5 = BASE * total5 - SQ_5E4 * term5[i] + term5[i+1]; term239[i] = Math.floor( total239 * RECIPR_239 + REPAIR ); total239 = BASE * total239 - SQ_239E4 * term239[i] + term239[i+1]; } } function SubtractTerms() { var carry = 0; var total = 0; for (var i = nCells + 1; i > Currdigit; i--) { total = 16.0 * term5[i] - 4.0 * term239[i] + carry + 60000.0; carry = Math.floor( total * TENTHOUSANDTH + REPAIR ) - 6.0; sum[i] = Math.floor( total - BASE * carry - 60000.0 ); } } function DivideSum() { var total = sum[1]; var reciprocal = 1.0 / TwoNplus1; for( var i = Currdigit; i <= nCells + 2; i++) { sum[i] = Math.floor( total * reciprocal + REPAIR ); total = BASE * total - Basex2n_1 * sum[i] + sum[i+1]; } } function AddShowDigits(nchars,lwidth) { var i = 0; var total = 0; var carry = 0; var ccount = nchars / 4; var strg = "x"; var old1 = series[Currdigit+1]; var old2 = series[Currdigit+2]; // Add the sum to the series for (i = nCells + 1; i >= Currdigit; i--) { total = series[i] + sgn * sum[i] + carry + 30000.0; carry = Math.floor( total * TENTHOUSANDTH + REPAIR ) - 3.0; series[i] = Math.floor( total - BASE * carry - 30000.0 ); } // if stable, display digits if((old1==series[Currdigit+1]) && (old2==series[Currdigit+2])) { Currdigit++; ccount++; if (ccount > lwidth / 4) { document.write("<BR>") ccount = 1; } strg = (BASE + series[Currdigit]) + " "; document.write(strg.substring(1,5)) } return (4 * ccount); } function Crunch(fontname,fontsize) { var linelength = IntroString.length; var time0 = new Date(); var linewidth = 4 * Math.floor(50.0 / fontsize) window.status = ".. calculating "+(4 * nCells)+" digits, please wait .." document.write('<UL><FONT SIZE=' + fontsize + ' FACE="' + fontname + '">') document.write(IntroString) while (Currdigit < nCells) { DivideTerms() SubtractTerms() DivideSum() linelength = AddShowDigits(linelength, linewidth) // Set up the next value of n TwoNplus1 += 2.0; Basex2n_1 = BASE * TwoNplus1; sgn = 0 - sgn; } var time1 = new Date(); var elapsed = time1.getTime() - time0.getTime(); document.write("</FONT>") document.write("<BR><BR><B>" + (4 * nCells) + " digits calculated in ") document.write((Math.floor(elapsed)/1000.0) + " seconds.</B>") document.write("</UL>") } PiSetup() // --> </SCRIPT> </HEAD> <BODY TEXT="#000000" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000" > <br> <CENTER> <B><FONT SIZE=+1>Machin's Arctangent Series for Pi in JavaScript</FONT></B> <A HREF="test/test.html"> <IMG SRC="http://p1.mb5u.com/texiao/17/20100523005042124.gif" BORDER="0" HSPACE=14 HEIGHT=40 WIDTH=110 ALIGN=ABSCENTER></A> </CENTER> <hr> <SCRIPT LANGUAGE="JavaScript"> <!-- Crunch("Courier New", 4) // --> </SCRIPT> <hr> <CENTER>Click "View: Page Source" to see the Javascript source code</CENTER> <P><B>In 1706 John Machin</B> discovered the trigonometric identity</P> <PRE> PI = 16 arctan(1/5) - 4 arctan(1/239)</PRE> and used it to calculate the first one hundred digits of Pi. He combined his formula with the Taylor series expansion for the inverse tangent of x. (Brook Taylor was Machin's contemporary in Cambridge.) The arctangent series is <PRE> 3 5 7 n 2n+1 arctan(x) = x - x /3 + x /5 - x /7 +...+ (-1) x /(2n+1) +..</PRE> Machin's formula remained the primary tool of Pi-hunters for centuries. As late as 1973, Guilloud and Bouyer used a variation of it to compute one million digits of Pi on a CDC 7600. <P>This program uses arrays of multiple precision digits for the two series terms, for their sum, and for the series. Each 'digit' is a modulo 10000 integer. The number base is 10,000. </P> <P>In the end, John Machin was never cured. </P> <HR SIZE=3 WIDTH="100%"> <B><FONT SIZE=-1>AUTHOR:</FONT></B> <TT> John Bohr </TT> <A HREF="mailto:jnbohr@netscape.net">email me</A> <BR><TT>Last updated: 1 October 1998</TT> <BR> </BODY> </HTML>
所属频道:
日期时间特效
/
更新时间:2012-05-08
[收藏]
[报错]
[返回列表]
评论加载中....
相关
日期时间特效
:
一款漂亮的日历脚本
柱状时钟
随机数据显示功能、选号器
层时钟
跟随时钟
在线日历
一个倒记时
显示登陆时间
知道两点的坐标计算机出他们之间的距离
跟随鼠标的时钟
日期时间信息 Script
世界人口计算器!有一定的科学性
日期时间特效Rss订阅
特效代码搜索
日期时间特效推荐
完整日期
网页浏览时间提示
在状态栏显示时间
JavaScript跳动的时间电子钟
跟随鼠标的日期表盘特效
日历
JavaScript限制用户浏览网页的时间
坐标图
WINDOWS式样的计算器
Js日期选择,可以重复使用
猜你也喜欢看这些
JavaScript随机抽奖程序
HTML转换为JS代码
JavaScript生成随机整数的代码
JS实现气泡从水中急速上升效果
数字翻译成英语JavaScript
用JavaScript计算二次函数的根值
网页计算器
Js过滤空格代码
计算文本框允许输入字符的百分比
JavaScript对象复制,小球满天飞
相关链接:
复制本页链接
|
搜索计算圆周率
特效说明:
日期时间模板
-
计算圆周率
。
闂佽 鍋撻柟顖滃椤ワ拷&闂佸憡甯掑Λ鏃堟閿燂拷
QQ缂備礁鏈钘壩涢敓锟�
闂佸搫鍊绘晶妤€顫濋纰卞殫妞ゆ梻鍘х憴锟�
闂佺厧鐏氬畷姗€顢欓崱妤婂殫妞ゆ梻鍘х憴锟�
婵炲瓨绮忓銊バф径宀€纾鹃柨鐕傛嫹
閻庢鍠掗崑鎾荤叓閸パ冩殶缂傚稄鎷�
闂佽皫鍕姢閻庤濞婇獮鏍р堪閸℃﹩妫�
婵犮垼娉涚粔鎾春濡ゅ啰纾鹃柟瀛樼箖缁诧拷
闂佸搫娲﹀ḿ娆撍囬敓锟�...