***Testing Normality of Pi, Console Example *** This page is under development. Comments are welcome, but please load any comments in the comments section at the middle of the page. Thanks,[gold] ---- [gold] Here is an eTCL script on testing the normality of [pi] for the etcl console. It has not been mathematically proven that [pi] is a normal number, but numerical analysis with tcl can check for some aspects of normality in pi. The normality of a number means that the ten numbers (0,1,2..9) in the mantissa are equally common at infinity. Relative frequency is count of individual numbers (eg. digit 7) over the set of digits (10 in base ten) at collection size N. If pi is normal in base 10, the relative frequencies of each digit in the manitssa approach 1/10 as N approaches infinity. For example, Kanada used a set of 6.4E9 decimal digits from [pi] and found the relative frequency of digit 7 as 600009044/6442450000 or 0.0931336749218077. One can paste statements into the etcl console. ====== % puts [ expr {1.*600009044/6442450000 }] 0.0931336749218077 ====== ---- In planning any software, there is a need to develop testcases. Testcase 1. frequency of "7" for collection of N digits of pi %|quantity|frequency|N |digits|% &|7|0.05 |20| digits |& &|7| 0.08510 | 50 |digits|& &|7| 0.08510 | 50 |digits|& &|7| 0.0989 | 100k |digits|& ---- ***Screenshots Section*** frequency of "7" in pi mantissa approaches limit of 0.1 as N>>1 frequency versus set of numbers of total N. [http://img546.imageshack.us/img546/9785/aaarx.jpg] ---- '''Comments Section''' Please place any comments here, Thanks. ---- ***References:*** * http://pi314.at/math/normal.html * http://mathworld.wolfram.com/NormalNumber.html * http://www.lbl.gov/Science-Articles/Archive/pi-random.html * http://www.geom.uiuc.edu/~huberty/math5337/groupe/digits.html * http://www.eveandersson.com/pi/digits/ * http://www.geom.uiuc.edu/~huberty/math5337/groupe/digits.html * http://www.super-computing.org/ * http://www.piworld.de/pi-statistics/ * citeseerx.ist.psu.edu/ viewdoc/ download?doi=10.1.1.133.7330 &rep=rep1 &type=pdf ---- ****Appendix TCL programs and scripts **** **** Pretty Print Version*** ====== # Pretty print version from autoindent # and ased editor # written on Windowws XP on eTCL # working under TCL version 8.5.6 and eTCL 1.0.1 # gold on TCL WIKI , 25may2011 #rank of indiv. "throws" over all "throws". #pi mantissa used here package require Tk console show proc calculation { facen } { # prob. subroutines for mimic sequence of bronze # prob. is throw combos of eg. "7" over all possible throws set lister [split {14159265358979323846} ""] set ee [llength $lister ] set kk [ llength [ lsearch -all $lister $facen ] ] set prob [ expr { ($kk*1.) / $ee } ] return $prob } set limit 12 for { set i 0 } { $i <= $limit } { incr i } { lappend listxxx $i lappend listxxx [ calculation $i ] puts " $i [ calculation $i ] " } #end results for first 20 numbers of pi mantissa 0 0.0 1 0.1 2 0.1 3 0.15 4 0.1 5 0.15 6 0.1 7 0.05 8 0.1 9 0.15 10 0.0 11 0.0 12 0.0 {14159265358979323846264338327950288419716939937} 1 0.0851063829787234 2 0.10638297872340426 3 0.1702127659574468 4 0.0851063829787234 5 0.0851063829787234 6 0.0851063829787234 7 0.0851063829787234 8 0.10638297872340426 9 0.1702127659574468 10 0.0 11 0.0 12 0.0 results for small numbers of pi mantissa 1 0.0851063829787234 2 0.10638297872340426 3 0.1702127659574468 4 0.0851063829787234 5 0.0851063829787234 6 0.0851063829787234 7 0.0851063829787234 8 0.10638297872340426 9 0.1702127659574468 results for 100k numbers of pi mantissa 1 0.1000947923455181 2 0.09782372573414697 3 0.0989790074451488 4 0.09843592629895136 5 0.09899875585046508 6 0.09899875585046508 7 0.09898888164780693 8 0.09852479412287458 9 0.09777435472085629 ====== *** Code scraps, timing statements*** ====== puts " loading [time {pixane load $p -file $fin} ]" puts "Scaling ($sourcewidth x $sourceheight) => ($virtualwidth x $virtualheight)" puts " resizex [time {pixane resize $targetpix $virtualwidth $virtualheight } ]" puts " blanking [time {pixane blank $targetpix } ]" puts " rescale [time {pixane scale $targetpix $p } ]" puts " saving [time {pixane save $targetpix -file $fout -format jpg } ]" puts " proc time [time { jackpix } ]" ====== <> Testing | Toys | Performance | Image Processing |Graphics| Example | Mathematics