Apache/2.4.7 (Ubuntu) Linux sman1baleendah 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64 uid=33(www-data) gid=33(www-data) groups=33(www-data) safemode : OFF MySQL: ON | Perl: ON | cURL: OFF | WGet: ON > / usr / share / doc / bc / examples / | server ip : 172.67.156.115 your ip : 108.162.216.220 H O M E |
Filename | /usr/share/doc/bc/examples/pi.b |
Size | 1.16 kb |
Permission | rw-r--r-- |
Owner | root : root |
Create time | 27-Apr-2025 09:55 |
Last modified | 05-Oct-2009 07:00 |
Last accessed | 07-Jul-2025 02:59 |
Actions | edit | rename | delete | download (gzip) |
View | text | code | image |
/*
This is a program to determine the distribution of digits in the
fraction part of PI. It will look at the first scale digits.
The results are left in the global variable digits.
digits[0] is the number of 0's in PI.
This program requires the math library.
*/
define pi () {
auto ix, pi, save_scale, work;
save_scale = scale;
scale += 5;
print "\n\nCalculating PI to ",scale," digits. Please wait . . .";
pi = 4*a(1);
scale -= 5;
work = pi;
print "\nCounting digits. . .";
for (ix = 0; ix < 10; ix++) digits[ix] = 0;
/* Extract the One's digit from pi. */
scale = 0;
one_digit = work / 1;
for (ix = save_scale; ix > 0; ix--) {
/* Remove the One's digit and multiply by 10. */
scale = ix;
work = (work - one_digit) / 1 * 10;
/* Extract the One's digit. */
scale = 0;
one_digit = work / 1;
digits[one_digit] += 1;
}
/* Restore the scale. */
scale = save_scale;
/* Report. */
print "\n\n"
print "PI to ", scale, " digits is:\n", pi/1, "\n\n"
print "The frequency of the digits are:\n"
for (ix = 0; ix < 10; ix++) {
print " ", ix, " - ", digits[ix], " times\n"
}
print "\n\n"
}
This is a program to determine the distribution of digits in the
fraction part of PI. It will look at the first scale digits.
The results are left in the global variable digits.
digits[0] is the number of 0's in PI.
This program requires the math library.
*/
define pi () {
auto ix, pi, save_scale, work;
save_scale = scale;
scale += 5;
print "\n\nCalculating PI to ",scale," digits. Please wait . . .";
pi = 4*a(1);
scale -= 5;
work = pi;
print "\nCounting digits. . .";
for (ix = 0; ix < 10; ix++) digits[ix] = 0;
/* Extract the One's digit from pi. */
scale = 0;
one_digit = work / 1;
for (ix = save_scale; ix > 0; ix--) {
/* Remove the One's digit and multiply by 10. */
scale = ix;
work = (work - one_digit) / 1 * 10;
/* Extract the One's digit. */
scale = 0;
one_digit = work / 1;
digits[one_digit] += 1;
}
/* Restore the scale. */
scale = save_scale;
/* Report. */
print "\n\n"
print "PI to ", scale, " digits is:\n", pi/1, "\n\n"
print "The frequency of the digits are:\n"
for (ix = 0; ix < 10; ix++) {
print " ", ix, " - ", digits[ix], " times\n"
}
print "\n\n"
}