[从头学数学] 第205节 初等数论初步
来源:互联网 发布:kettle数据库增量同步 编辑:程序博客网 时间:2024/05/19 17:57
剧情提要:
[机器小伟]在[工程师阿伟]的陪同下进入了[九转金丹]之第七转的修炼。
这次要研究的是[初等数论初步]。
[机器小伟]在[工程师阿伟]的陪同下进入了[九转金丹]之第七转的修炼。
这次要研究的是[初等数论初步]。
正剧开始:
星历2016年05月08日 10:05:37, 银河系厄尔斯星球中华帝国江南行省。
[工程师阿伟]正在和[机器小伟]一起研究[初等数论初步]。
<span style="font-size:18px;">710316能被3整除710316能被9整除710316 不能 被11整除710316 不能 被7整除#根据规律判整除性#其实并不实用,只是说明一下规律def tmp(): number = 710316; array = numberArray(number); size = len(array); #被11整除 array_odd = array[0:size:2]; array_even = array[1:size:2]; #被7整除 array_last3 = number%1000; array_front = (number-array_last3)//1000; #判断被3整除 if sum(array)%3==0: print('{0}能被3整除'.format(number)); else: print('{0} 不能 被3整除'.format(number)); #判断被9整除 if sum(array)%9==0: print('{0}能被9整除'.format(number)); else: print('{0} 不能 被9整除'.format(number)); #判断被11整除 if (sum(array_odd)-sum(array_even))%11 == 0: print('{0}能被11整除'.format(number)); else: print('{0} 不能 被11整除'.format(number)); #判断被7整除 if (array_last3 - array_front)%7==0: print('{0}能被7整除'.format(number)); else: print('{0} 不能 被7整除'.format(number));#把一个整数的各位数字放入数组#由个位往高位排列def numberArray(number): array = []; bit = len(str(number)); for i in range(bit): array.append(number%10); number//=10; #array.reverse(); return array;</span>
<span style="font-size:18px;">#判断一个数是否质数 def prime(num): if (num < 2): return False; sqr = int(math.sqrt(num))+1; for i in range(2, sqr): if (num%i==0): return False; return True; </span>
<span style="font-size:18px;">#最大公约数def gcd(m, n): m, n = max(m, n), min(m, n); i = 1; while n: print('step', i, ': ', m, n); i += 1; m, n = n, m % n return m</span>
<span style="font-size:18px;">#最小公倍数def lcm(m, n): return m*n/gcd(m, n);</span>
<span style="font-size:18px;">>>> 2625.0print(lcm(375, 105));</span>
<span style="font-size:18px;">#分解质因数 def primeFactor(num, lists): if (num < 2): lists.append(num); return lists; elif (prime(num) == True): lists.append(num); return lists; else: sqr = int(math.sqrt(num))+1; i = 2; while i <= sqr: if (num % i == 0 and prime(i) == True): lists.append(i); num = num//i; break; i+=1; return primeFactor(num, lists); </span>
<span style="font-size:18px;">>>> 720 = 2 * 2 * 2 * 2 * 3 * 3 * 5152 = 2 * 2 * 2 * 19813680.0def tmp2(): number = [720, 152]; for j in range(len(number)): factors = primeFactor(number[j], []); count = len(factors); s = str(number[j])+' = '; for i in range(count): s += str(factors[i]); if (i < count-1): s += ' * '; print(s); print(gcd(720,152)); print(lcm(720, 152));</span>
<span style="font-size:18px;">>>> 21的欧拉函数值φ(21) = 12.0def tmp3(number): print('{0}的欧拉函数值φ({0}) = {1}'.format(number, round(eulerPhi(number),3)))#欧拉函数def eulerPhi(number): factors = set(primeFactor(number, [])); factors = sorted(factors); #print(factors); phi = number; for i in range(len(factors)): phi *= (1-1/factors[i]); return phi;</span>
<span style="font-size:18px;">>>> 25的欧拉函数值φ(25) = 20.0def tmp4(): for i in range(1, 21): if (18**i)%25==1: print(i); break;</span>
<span style="font-size:18px;">>>> [4.0, 9.0, 14.0]def tmp5(): result = []; mod = 15; remain = 6; quotient = 9; for i in range(1, 20): x = (mod*i + remain)/quotient; if abs((int(x))-x)< 1e-6: result.append(x); if x > mod: break; print(result);</span>
<span style="font-size:18px;">>>> [9.0]#例6def tmp5(): result = []; mod = 74; remain = 1; quotient = 33; for i in range(1, 20): x = (mod*i + remain)/quotient; if abs((int(x))-x)< 1e-6: result.append(x); if x > mod: break; print(result);</span>
<span style="font-size:18px;">var s = ['f(a)=e, f(b)=f, f(c)=g','a=-1, e=2;','b=0, f=3;','c=1, g=6;','f(x) = 2(x-0)(x-1)/(-1)/(-2)',' +3(x+1)(x-1)/(1)/(-1)',' +6(x+1)(x-0)/(2)/(1)',];</span>
<span style="font-size:18px;">[58, 238, 418, 598, 778, 958, 1138, 1318, 1498]#孙子定理的变通def tmp6(): remain = [2, 3, 4]; mod = [4, 5, 9]; count = len(mod); multi = 1; for i in range(count): multi *= mod[i]; #直接遍历这个范围 bound = sum(remain)*multi+1; result = []; for i in range(1, bound): for j in range(count): if i%mod[j]!=remain[j]: break; if j >= count-1: result.append(i); print(result);</span>
<span style="font-size:18px;">[282, 975, 1668, 2361, 3054, 3747, 4440, 5133, 5826, 6519, 7212, 7905]#孙子定理的变通def tmp6(): #模数 mod = [7, 9, 11]; #余数 remain = [2, 3, 7]; count = len(mod); multi = 1; for i in range(count): multi *= mod[i]; #直接遍历这个范围 bound = sum(remain)*multi+1; result = []; for i in range(1, bound): for j in range(count): if i%mod[j]!=remain[j]: break; if j >= count-1: result.append(i); print(result);</span>
<span style="font-size:18px;">[2111, 4421, 6731, 9041, 11351, 13661, 15971, 18281, 20591, 22901, 25211, 27521, 29831, 32141, 34451, 36761, 39071, 41381, 43691, 46001]#韩信点兵#孙子定理的变通def tmp6(): #模数 mod = [5, 6, 7, 11]; #余数 remain = [1, 5, 4, 10]; count = len(mod); multi = 1; for i in range(count): multi *= mod[i]; #直接遍历这个范围 bound = sum(remain)*multi+1; result = []; for i in range(1, bound): for j in range(count): if i%mod[j]!=remain[j]: break; if j >= count-1: result.append(i); print(result);</span>
<span style="font-size:18px;">2 30 685 25 708 20 7211 15 7414 10 7617 5 7820 0 80#百马百瓦def tmp8(): a = 33; b = 50; c = 200; result = []; for i in range(a+1): for j in range(b+1): for k in range(c+1): if (abs(((i*3 + j*2 + k*0.5) - 100)) < 1e-6) and i+j+k == 100: print(i, j, k);</span>
<span style="font-size:18px;">#不定方程def tmp7(): #ax + by = c #b为大于1的整数 a, b, c = 3, 2, 5; u, v, i, j = a, b, 0, 1; r = u%v; k = j; while r!=1: u, v = v, r; q = u//v; r = u%v; j = i-q*j; i = k; k = j; x = c*k; y = c*(1-a*k)/b; print(x, y);</span>
>>> -34 6.0#不定方程def tmp7(): #ax + by = c #b为大于1的整数 a, b, c = 13, 74, 2; u, v, i, j = a, b, 0, 1; r = u%v; k = j; while r!=1: u, v = v, r; q = u//v; r = u%v; j = i-q*j; i = k; k = j; x = c*k; y = c*(1-a*k)/b; print(x, y);
本节到此结束,欲知后事如何,请看下回分解。
0 0
- [从头学数学] 第205节 初等数论初步
- [从头学数学] 第168节 基本初等函数(1)
- [从头学数学] 第179节 三角初等变换
- [从头学数学] 第21节 角的初步认识
- [从头学数学] 第45节 分数的初步认识
- [从头学数学] 第54节 小数的初步认识
- [从头学数学] 第114节 几何图形初步
- [从头学数学] 第156节 概率初步
- [从头学数学] 第174节 算法初步
- [从头学数学] 第115节 几何图形初步 小结与复习题
- [从头学数学] 第157节 概率初步 小结与复习题
- [从头学数学] 第206节 优选法与试验设计初步
- [从头学数学] 第03节 位置
- [从头学数学] 第40节 测量
- [从头学数学] 第52节 面积
- [从头学数学] 第65节 四则运算
- [从头学数学] 第69节 三角形
- [从头学数学] 第75节 位置
- 移动网站开发中常用的10段JavaScript代码
- hiho第九十五周 数论四·扩展欧几里德
- css3动画-animation属性
- (2) NSOperation
- 每CPU变量
- [从头学数学] 第205节 初等数论初步
- python re.compile(?P<name>)
- 第一部分:crosstool-ng 制作交叉编译工具链 for s3c2440
- C语言函数fseek, fread, ftell的使用
- 算法1.1节22
- MyEclipse中maven项目pom文件报missing artifact错误
- C语言函数的参数及传递方式
- 一切成功源于积累——20160508 美国非农15分钟k线直至收盘 各货币对表现 大幅不及预期 解读分歧
- 玩转CSDN博客栏目