数学中国

 找回密码
 注册
搜索
热搜: 活动 交友 discuz
查看: 3755|回复: 9

原根问题

[复制链接]
发表于 2009-8-27 09:36 | 显示全部楼层 |阅读模式
最近翻书,有个疑问:以2为原根的素数是否无穷多呢?如果是,占总素数的多少?
发表于 2009-8-28 08:04 | 显示全部楼层

原根问题

难得遇到一个学数论的
发表于 2009-8-28 08:31 | 显示全部楼层

原根问题

一个整数有原根, 那么它的一个既约剩余系对于模乘法成循环群, 原根就是生成元。
看看狐狸从代数的角度有没有办法解决这个问题。
对于质数p, { 1,2,....p-1 }对于模乘法成循环群, 那么2是生成元的充要条件或者充分条件是什么?
发表于 2009-8-29 19:26 | 显示全部楼层

原根问题

我只统计一下原根所占比例,至于存在不存在极限,以及如何使用一个概率模型来说明这个我不知道:
以下是统计结果:
以内的所有情况   原根比例
100000          0.375626
200000          0.372943
300000          0.373158
400000          0.373361
500000          0.373826
600000          0.373885
700000          0.374317
800000          0.374115
900000          0.373671
1000000         0.373780
1100000         0.373638
1200000         0.374120
1300000         0.374731
1400000         0.374848
1500000         0.374622
1600000         0.375003
1700000         0.374603
1800000         0.374482
1900000         0.374318
2000000         0.374289
2100000         0.374102
2200000         0.374162
2300000         0.374235
2400000         0.374397
2500000         0.374476
2600000         0.374294
2700000         0.374141
2800000         0.374136
2900000         0.374044
3000000         0.374068
3100000         0.374183
3200000         0.374221
3300000         0.374204
3400000         0.374318
3500000         0.374247
3600000         0.374259
3700000         0.374108
3800000         0.374129
3900000         0.374215
4000000         0.374312
4100000         0.374378
4200000         0.374272
4300000         0.374333
4400000         0.374248
4500000         0.374305
4600000         0.374434
4700000         0.374467
4800000         0.374450
4900000         0.374684
5000000         0.374600
发表于 2009-8-29 20:05 | 显示全部楼层

原根问题

从数据看存在极限,我没理解原根,希望有人用《概率素数论》计算出来
 楼主| 发表于 2009-8-30 21:29 | 显示全部楼层

原根问题

原根是指:当满足a^δ≡1(mod m)最小的δ为φ(m)时,a叫m的原根。
若a是m的原根,则a、a^2、……a^φ(m)是m的即约剩余系。
[br][br]-=-=-=-=- 以下内容由 常量 时添加 -=-=-=-=-
[br][br]-=-=-=-=- 以下内容由 常量 时添加 -=-=-=-=-
原根是指:当满足a^δ≡1(mod m)最小的δ为φ(m)时,a叫m的原根。
若a是m的原根,则1、a、a^2、……a^φ(m)是m的即约剩余系[br][br]-=-=-=-=- 以下内容由 常量 时添加 -=-=-=-=-
原根是指:当满足a^δ≡1(mod m)最小的δ为φ(m)时,a叫m的原根。
若a是m的原根,则1、a、a^2、……a^[φ(m)-1]是m的即约剩余系
发表于 2009-8-30 21:38 | 显示全部楼层

原根问题


   啊!
      原来与P进制单位P^n有关?
     P^n: 1,P,P^2,,,
 楼主| 发表于 2009-8-30 21:42 | 显示全部楼层

原根问题

主题中将2改为3或其他素数都可成为类似的问题。
wanwna 统计出来的0.3746是以2为原根的素数占素数的比例,但这需要证明。
接着,试问以哪个自然数为原根的素数占素数的比例为最大呢?
 楼主| 发表于 2009-9-3 10:51 | 显示全部楼层

原根问题

下面引用由wanwna2009/08/29 07:26pm 发表的内容:
我只统计一下原根所占比例,至于存在不存在极限,以及如何使用一个概率模型来说明这个我不知道:
以下是统计结果:
以内的所有情况   原根比例
100000          0.375626
...
这是wanwna算的,欣赏一下。
发表于 2009-9-3 21:02 | 显示全部楼层

原根问题

[这个贴子最后由wanwna在 2009/09/03 09:10pm 第 2 次编辑] 代码如下(用C语言编写) 运行操作系统:SUSE Linux Enterprise Server 10 利用筛法筛出范围内所有质数 1~p-1在模乘下合成一Abel群,p-1是群的阶,则所有元的周期都是p-1的约数。 2的周期为p-1,称2为原根。 如果2的周期不是p-1,计为o(2) 则一定存在一个质数p2 使得p2|p-1且o(2)|(p-1)/p2 固只要把p-1因式分解,以每个不同的质数因子相除即可检验。 另外,对于2^((p-1)/p2)%p我以前介绍过幂模算法,这里求余数就是用的这种算法 代码写的很混乱,取名随意,并且没有注释,影响阅读请见谅
  1. &#35;include <stdio.h>
  2. &#35;include <stdlib.h>
  3. &#35;include <string.h>
  4. &#35;include <math.h>
  5. &#35;ifndef WHICH_NUMBER
  6. &#35;define WHICH_NUMBER 2
  7. &#35;endif
  8. int a[2000000]={2};
  9. int b[14];
  10. int bit_mod[32]={WHICH_NUMBER};
  11. int main(int argc,char**argv)
  12. {
  13. char*s;
  14. int c,i,j,k,m,n,x,y,p,q;
  15. int c_a=0;
  16. sscanf(argv[1],"%d",&c);
  17. s=malloc(c);
  18. for(i=3;i<=c;i++)
  19. s[i]=1;
  20. k=(int)(sqrt((double)c));
  21. for(j=3;j<=k;j+=2) {
  22. for(i=j*3;i<=c;i+=j*2)
  23. s[i]=0;
  24. }
  25. /******All prime numbers less than c****/
  26. j=1;
  27. for(i=3;i<=c;i+=2)
  28. if(s[i]==1) {
  29. a[j++]=i;
  30. }
  31. free(s);
  32. c=j;
  33. /*printf("j=%d\n",j);
  34. while(1) {
  35. scanf("%d",&i);
  36. printf("%d\n",a[i]);
  37. }*/
  38. for(i=8;i<c;i++) {
  39. m=a[i];
  40. x=n=m-1;
  41. for(j=1;j<=31;j++)
  42. bit_mod[j]=((long long)bit_mod[j-1])*((long long)bit_mod[j-1])%m;
  43. for(j=0;j<7;j++)b[j]=0;
  44. k=0;
  45. for(j=0;;j++) {
  46. if(x==1)
  47. break;
  48. while(1) {
  49. if(x%a[j]==0) {
  50. b[k]=a[j];
  51. x/=a[j];
  52. } else {
  53. if(b[k])
  54. k++;
  55. break;
  56. }
  57. }
  58. }//for(j=0;;j++)
  59. for(j=0;j<k;j++) {
  60. x=n/b[j];
  61. //printf("x:%d\n",x);
  62. y=1;
  63. for(p=0;p<31;p++){
  64. if((1<<p)&x)
  65. y=(long long)y*(long long)(bit_mod[p])%m;
  66. }
  67. if(y==1) {
  68. //printf("%s:%d\n",__FILE__,__LINE__);
  69. break;
  70. }
  71. } //for(j=0;j<k;j++)
  72. if(j<k) {
  73. } else {
  74. c_a++;
  75. }
  76. }//for(i=1;i<c;i++)
  77. printf("%d\t%d\t%lf\n",c_a,c-1,(double)c_a/(double)(c-1));
  78. return 0;
  79. }
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|数学中国 ( 京ICP备05040119号 )

GMT+8, 2025-6-18 05:20 , Processed in 0.133778 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表