如何用JAVA或c对本福特定律进行数值验证?如果实在不好实现也可以推荐一些链接。
1条回答 默认 最新
关注 现在用java来编程:
在斐波那契数列中,验证本福特定律的正确性public class Test { public static void main(String[] args) { int n = 800;// 循环次数 int a[] = new int[1000]; int b[] = new int[1000]; int c[] = new int[10];// 计数器 int i, k; a[0] = 1;// a0表示代表a1...an有效,a0=3,a1,a2,a3 a[1] = 1;// a1代表第一位数字 b[0] = 1; b[1] = 1; c[1]++;// 头两位是1,1 c[1]++; k = 2; while (0 == 0) { a = add(a, b);// 相加 c[a[1]]++; // a1是返回数组的第一位数字 System.out.print(a[0] + "***"); for (i = 1; i <= a[0]; i++) System.out.print(a[i]); System.out.println(); k++; if (k == n) break; b = add(a, b); c[b[1]]++; System.out.print(a[0] + "***"); for (i = 1; i <= b[0]; i++) System.out.print(b[i]); System.out.println(); k++; if (k == n) break; }// System.out.println(); System.out.println(); for (i = 1; i <= 9; i++) System.out.println(i + "---" + c[i] / (n + 0.0) * 100); } // static int[] add(int[] a, int[] b) { // a0,a1,a2,a3,a4,a5 // b0 b1,b2,b3 int c[] = new int[1000]; int la = a[0], lb = b[0]; int i = 0, lc = 0; lc = (la > lb) ? la : lb;// lc最大 c[0] = lc; if (la > lb) { for (i = 1; i <= lc - lb; i++) c[i] = a[i];// 12345,45, 123要a的,后面45+45 for (i = lc - lb + 1; i <= lc; i++) c[i] = a[i] + b[i + lb - lc]; } if (la == lb) { for (i = 1; i <= lc; i++) c[i] = a[i] + b[i]; } if (la < lb) { for (i = 1; i <= lc - la; i++) c[i] = b[i];// ## for (i = lc - la + 1; i <= lc; i++) c[i] = a[i + la - lc] + b[i]; } for (i = lc; i >= 2; i--) { c[i - 1] = c[i - 1] + c[i] / 10; c[i] = c[i] % 10; }// for if (c[1] >= 10) {// 不要少写=!!! for (i = lc + 1; i >= 2; i--) c[i] = c[i - 1];// 1-->2,c1==c2 c[1] = c[1] / 10;// 只要前面 c[2] = c[2] % 10;// 只要末尾 c[0] = lc + 1; } return c; }// add }// class
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥30 STM32 INMP441无法读取数据
- ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
- ¥15 用visualstudio2022创建vue项目后无法启动
- ¥15 x趋于0时tanx-sinx极限可以拆开算吗
- ¥500 把面具戴到人脸上,请大家贡献智慧
- ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
- ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
- ¥30 c#打开word开启修订并实时显示批注
- ¥15 如何解决ldsc的这条报错/index error
- ¥15 VS2022+WDK驱动开发环境