名字又重复 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日

悬赏问题

  • ¥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驱动开发环境