名字又重复 2022-05-01 16:06 采纳率: 100%
浏览 12
已结题

如何用JAVA或c对本福特定律进行数值验证

如何用JAVA或c对本福特定律进行数值验证?如果实在不好实现也可以推荐一些链接。

  • 写回答

1条回答 默认 最新

  • 吕布辕门 后端领域新星创作者 2022-05-01 16:25
    关注

    现在用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
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月10日
  • 已采纳回答 5月2日
  • 创建了问题 5月1日

悬赏问题

  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类