找回密码
 欢迎注册
楼主: fungarwai

[转载] 不同余数的个数

[复制链接]
发表于 2014-9-9 13:14:27 | 显示全部楼层
\[{x^m}(\bmod {p^k}),\frac{{\varphi ({p^k})}}{{\gcd (\varphi ({p^k}),m)}} + \frac{{\varphi ({p^{k - m}})}}{{\gcd (\varphi ({p^{k - m}}),m)}} + \frac{{\varphi ({p^{k - 2m}})}}{{\gcd (\varphi ({p^{k - 2m}}),m)}} + \frac{{\varphi ({p^{k - 3m}})}}{{\gcd (\varphi ({p^{k - 3m}}),m)}} + ... + 1\]

还是猜测,不知道答案如何

点评

当`p^k`是`2^k`的时候,不存在原根,所以上面式子只能在`p` 是奇素数时成立。  发表于 2014-9-11 21:55

评分

参与人数 1威望 +2 金币 +2 贡献 +2 鲜花 +2 收起 理由
fungarwai + 2 + 2 + 2 + 2

查看全部评分

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2014-9-9 15:34:17 | 显示全部楼层
m的值要先化简,使得小于等于p^k
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2014-9-11 11:51:43 | 显示全部楼层
fungarwai 发表于 2014-9-9 10:52
除了这样做以外还有什么方法可以让matlab算对吗?

下面我写了一个matlab函数powmod,用于计算幂模运算,算法效率比较高
  1. function x=powermod(n,p,m)
  2. % Montgomery快速幂模算法 x = n^p (mod m)
  3. r = mod(n,m);  
  4. tmp = 1;  
  5. while p>1
  6.     if rem(p,2)==1,tmp = mod(tmp*r,m); end
  7.     r = mod(r*r,m);
  8.     p =bitshift(p,-1);
  9. end
  10. x=mod(r*tmp,m);
复制代码

然后输入
r=zeros(2013,1);
for k=1:2013, r(k)=powermod(k,2013,2013); end
length(unique(r))
结果返回 693

评分

参与人数 1威望 +2 金币 +2 贡献 +2 鲜花 +2 收起 理由
fungarwai + 2 + 2 + 2 + 2

查看全部评分

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2014-9-11 13:48:24 | 显示全部楼层
东论那边有回复,先转回来
http://bbs.cnool.net/cthread-105405736.html

点评

看来我的感觉还挺准确的, 不过是凑答案  发表于 2014-9-11 14:29
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-11-24 07:48 , Processed in 0.022844 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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