估计两个随机数互素的概率

来源:互联网 发布:俞莲舟 精华 知乎 编辑:程序博客网 时间:2024/06/07 15:52

  • 算法思想
定义两个变量,一个存放比较的数字的对数,一个存放其中互素的对数;通过两个循环遍历小于等于N的所有的互异正整数,调用最大公因数函数判断两个互异的数是否互素,如果两个互异的正整数最大共因数是1,表明这两个数互素。
  • 运行时间
O(N²logN)

  • 算法实现
unsigned int Gcd(unsigned int M, unsigned int N){unsigned int Rem = 0;while (N > 0){Rem = M%N;M = N;N = Rem;}return M;}double PerOfPrimePairs(int N){int Rel = 0, Tot = 0;int i, j;for (i = 1; i <= N; i++)for (j = i + 1; j <= N; j++){Tot++;if (Gcd(i, j) == 1)Rel++;}return (double)Rel / Tot;}


原创粉丝点击