中国思维的特点是:谁用的工具越朴素代表谁的水平越高。如果啥都不用,那就是最厉害。
武侠小说里,用树枝的就比用剑的水平高。什么都不用,只用内力的,那代表最厉害。
两弹一星的影视作品里,类似清北大学生打算盘,人工计算的情节必有。这代表厉害。
不用枪也不用炮,直接手撕鬼子,这代表厉害。
所以说,数学考试,怎么可以用计算器呢,学霸是连草纸都不用的。
思想严重落后于时代。
早就应该使用计算器。
因为计算器可能会在里面加入考试作弊信息,需要使用官方版的计算器。
只要考试前官方每个人发一个计算器,考完试再上交就可以了。
现在计算谁还用手工算,卖菜的大妈都是使用计算器,还带语音的。
普通人计算可以使用手机来计算很多二位数多位数乘法。
人和动物的区别就是会使用很多工具,可以借助工具来提高人的能力。
古代算盘有珠算,也有珠算训练。
不使用计算机器,原因是因为以前的老师都是用手算,结果为了圈下去,把小孩也教育成不使用计算器的人。
像中国高中很多人的数学水平高于美国欧洲,能获得各个数学奖,但进入了大学就不行了,你知道为什么吗?
因为高中全用手算,老外根本算不过中国人,但进入了大学,可以使用计算机,计算器,特别是计算机软件这种来计算微积分,可以使用python语言来计算线性代数,计算矩阵,计算张量,计算机器学习算法,计算人工智能拟合数据。这时中国高中那些“数学高手“就不行了,如同手写字换成了键盘打字,他们的打字速度就上不去了,又不愿意花时间或者在考试的引导下,使用落后的手算,所以数学水平,数学研究水平一直很差。
别人都用电脑在算了,自己编程在算了,你天天用手算,只能做一些像数论的简单研究,而像计算中的现代工程数学,如矩阵张量,这些计算和作图,都需要计算机,计算机软件的熟悉使用,你用人力手工能干得过计算机?
所以中国数学教育落后,不是没有原因,就是一大批思想保守的守旧者,在不断强调祖宗之法不能变,连计算器的使用都不敢,计算机软件在数学研究中相当落后,只有极少数自学的数学人员,才懂得运用好各种计算机软件来研究数学,而很多包括大学教授都只是会看论文,用手工计算,作图甚至有用手工画的,或使用简单的如excle软件画出来,不能做到编程式的一体化,高水平作图,对软件的使用熟悉程序很低,水平是想当的落后,还停留在上个世纪没有计算机的时代。
正是这批人导致了中国数学教育水平非常差,和实际工程使用脱节,很多研究只是闭门造车,不能充分利用现代化科学技术成果,你人挖土能干过挖掘机?从小学,中学,到大学,一直强制要手工,人工计算,不光是害人,也是在危害整个社会的科学技术发展水平。
早就应该全面开放计算器的使用,像考驾照在计算机上考试,不是挺好的,也没有看到有什么问题。
理论上早就应该全面普及计算机教育,至今计算机还不能进入主课也是奇了怪。社会上各个行业,各个单位,那个不使用计算机,打字打文件也是计算机。
正是这些祖宗之法不能变的老顽固老师,阻碍了计算机教育的普及,远远落后于时代。高考考一堆文科,全是背的,百科一下就知道,像英文(文科),数学(没有使用计算机,手算,相当于半个文科),语文(文科),三大主课全是文科,根本没有最新的科学技术位置,学出来连个打字都慢得要死,用计算机打个文件都不会,编程就更不用说了,根本上只能靠自学。
教育在计算机时代,早就已经落后了,现在还停留在孔子时代的文科时代,只是在有限元素中做排列组合,写八股文,不能向大自然要生产力。
这种文科式的手工计算和记忆,人类玩了几千年,科学技术是原地踏步走了几千年,几千年没有根本改变,进入21世纪在计算机这种自动化算力加持下,科技技术进步才突飞猛进,像人工智能深度学习就依靠的计算机算力进步。
传统数学从文艺复兴开始,研究了几百年,早就已经遇到了瓶颈,高中大学的教学全是强调手工计算,这个完全是反人类,有先进工具不使用,有汽车不用,偏要用马车来学驾驶,完全是一批玩固不化早该退休的老头搞的,他们只会教育他们知道的,他们不会的一律视做异端全面封杀。正是这种封杀如同禁海令一样,严重阻碍了科学技术创新发展,发明了先进生产力工具不用,还一直停留在旧时代几百年的研究瓶颈中,完全是井底之蛙。
早就应该普及计算器,计算机了,越早普及越好,人力始终是玩不过机器的,不要老想着人定胜天,要借力打力,要善于使用现代化工具来做教育,而不是停留在旧时代的囿井之中不见天地。
教育是非常重要的阶段,一个人在年青时确定了自己的习惯,未来工作和科学研究也会同样,同时也会带向下一代,如同一直使用手算习惯了,未来再使用计算机反而不习惯,或需要很大成本来学习使用,这个正是教育的失败。
早就应该全面开放,晚开放一天,科学技术发展就要慢一天。
因为用计算器会遗害终身。
在现实生活中,人们往往忽略数学敏感性对博弈的巨大作用。
心算和笔算会训练人类个体脑丘的特定位置,使之变得更强大,使得该个体具备基本的数学敏感性,从而在日常生活中,条件反射的对问题建立基本数学逻辑,减少噪音和错误率。
有个英国人拿自己女友测试的视频,问她,一个披萨,先切成两块均等的,再把其中一块切成5块,然后问,要这最开始的一块,还是后来的5块,女生一定要选择一块,因为5块她吃不了。
注意这是个成年人,必然接受了基础教育。
我们的教育要制造对社会生产合格的人,而不是智力障碍。
数学基础训练与基本逻辑能力相关性很强,心算能力很强的人,其记忆力、空间想象能力、因果性敏感度、量化概念,远远超过只会依赖计算器的人,从而更难被归因谬误和相关性谬误欺骗。
一个显而易见但无人当真的事实是,数学强大的人,一直在通过各种金融工具和概率工具剥削数学笨蛋们。
人们忽略数学的作用,已经到了反智的程度,有些人指责数学的高等知识毫无作用,但他们不知道,数学家正在用数论改造区块链的效率,用博弈论改造区块链的构成,从而具备了挑战一切资本和信息不对称的力量。
为什么懂王演讲只说小学词汇?跟美国人用计算器相关性很强,他们需要数学蠢货当票仓和打手。
我们不需要。
在谈论教育问题的时候,总有像题主这样的人总是认为什么什么不必要什么什么不必要。类似的理论还有很多,英语没有必要学那么难,英语没有必要学,普通人以后用到英语的很少,数学没有必要学那么难,普通语言以后买菜难道要用三角函数吗?
请大家记住一点,教育是你自己的选择。追求的永远不是必要。我们通过学习更多的东西来开拓自己的上限,而不是说先明确我们的底线在哪里,然后教育就是为了满足底线要求。
比如数学的这个问题大家都知道计算繁复,但是大家也知道在繁琐的计算当中可以锻炼人的耐心细心以及对数字的感觉。为什么我们总是嘲笑是里买个东西找钱要算半天。不就是因为他们在用计算器的时候,你没有用计算器吗?
事实不是先明确你是个普通人,什么什么东西你根本用不上,所以你只用学那么多,而是因为你选择学什么样的东西,你选择以什么样的态度和状态去学什么东西决定了你未来是不是普通人。
那你有什么权利在小学生刚开始学算术的时候就确定了谁必定是普通人?
你所谓的牢记定理就可以了,和锻炼计算能力并不冲突啊,而事实上在我们的中小学教育当中,这两个过程是分开的锻炼,计算能力往往是在小学阶段,而这个阶段恰恰你不需要记住什么太多定理,当你需要普遍的去学习定理的时候,其实没几个数字需要你计算。
先问是不是,再问为什么
确实有些地方允许中考用计算器,比如大连。也有一些小地方为了给中考注水允许用计算器。但整体上没啥意义。小九九,外加11-20的平方已经足够用了,速度比打计算器快。
高中数学“计算”的不多。而允许用米国那种可以解微积分计算器,起码全国卷会有很多拉分题型变成送分题。
上海允许用计算器,不过上海高考和其他地区高考完全不是一个画风。得承认北京教育部门确实不如上海高明:高考地狱省的做题家写上海卷,确实拿不了高分
国外大学也不让。
我们学校有几门数学课的考试全都不许用计算器。
代码编程题不让上机,直接用水笔在考卷上写代码。
手写机器码,汇编,Python,Java,C/C++,手算微积分,线代。神经网络和AI课程,还要手算一个小型的神经网络。
按照计科系的科技水平,如果你让带计算器,马上技术大佬就可以魔改计算器,让一个傻瓜通过函数调包的方式来做对80%以上的考试题目。
就拿我大四的一门水课Number Theroy 来说吧,我直接贴过来给你看看,科技流是怎么做数学考试题的。
代码
from sympy import * def solve(a,b): #b>a # solve x,y for ax+by = gcd(a,b): change = False if b< a: change = True a,b = b,a print (f'{a}x + {b}y = gcd({a},{b})') saves = [[b,a,b//a,b%a]] S_a = symbols('a') S_b = symbols('b') gcd = b%a print('
===计算gcd===') print(f'{saves[-1][0]} = {saves[-1][1]}x{saves[-1][2]} + {saves[-1][3]}') while True: #A = BxQ +R A = saves[-1][1] B = saves[-1][3] Q,R = divmod(A,B) print(f'{A} = {B}x{Q} + {R}') if R ==0: break else: sub = [A,B,Q,R] gcd = R saves.append(sub) print(saves) find = {} saves[0][0] = S_b saves[0][1] = S_a if len(saves) > 1: saves[1][0] = S_a for sub in saves: find[sub[-1]] = sub[:-1] #print(find) def exist(find,catch): #print(catch) res = False if isinstance(catch,list): for i,e in enumerate(catch): if not isinstance(e,list) and e in find and i < 2 : catch[i] = find[e] res = res or True else: res = res or exist(find,e) return res catch = find[gcd] def make_str(catch): if isinstance(catch,list): return f'({make_str(catch[0])}-{make_str(catch[1])}*{catch[2]})' else: return catch print('
===带入换算===') print(f'gcd(a,b) = {gcd}') print(f' {make_str(catch)}') while exist(find,catch): print(f' {make_str(catch)}') def make_res(catch): if isinstance(catch,list): return make_res(catch[0])-make_res(catch[1])*catch[2] else: return catch final = str(make_res(catch)) print(f' {final}') print(f'
===结果===') sx = final[:final.find('a')-1].replace(' ','') sy = final[final.find('a')+1:final.find('b')-1].replace(' ','') def toInt(s): if s == '' or s == '+': return 1 elif s == '-': return -1 else: return int(s) x = toInt(sx) y =toInt(sy) final = final.replace('a',str(a)) final = final.replace('b',str(b)) print(f'{final} = gcd({a},{b}) = {gcd}') if change: x,y = y,x return x,y #print(solve(12345,67890)) #print(solve(67890,12345)) print(solve(21,91)) 结果
21x + 91y = gcd(21,91) ===计算gcd=== 91 = 21x4 + 7 21 = 7x3 + 0 [[91, 21, 4, 7]] ===带入换算=== gcd(a,b) = 7 (b-a*4) -4*a + b ===结果=== -4*21 + 91 = gcd(21,91) = 7 (-4, 1)
代码
from sympy import * def gcd(a,b): [a,b] = [a,b] if a>b else [b,a] n,r = a,b #print() while r!=complex(0,0): last_r = r m,n = n,r q,r = divmod(m,n) print(f' {m} = {q} · {n} + {r} ') return last_r def solve(a,b): #b>a # solve x,y for ax+by = gcd(a,b): change = False if b< a: change = True a,b = b,a print (f'{a}x + {b}y = gcd({a},{b})') saves = [[b,a,b//a,b%a]] S_a = symbols('a') S_b = symbols('b') gcd = b%a print('
===计算gcd===') print(f'{saves[-1][0]} = {saves[-1][1]}x{saves[-1][2]} + {saves[-1][3]}') while True: #A = BxQ +R A = saves[-1][1] B = saves[-1][3] Q,R = divmod(A,B) print(f'{A} = {B}x{Q} + {R}') if R ==0: break else: sub = [A,B,Q,R] gcd = R saves.append(sub) print(saves) find = {} saves[0][0] = S_b saves[0][1] = S_a if len(saves) > 1: saves[1][0] = S_a for sub in saves: find[sub[-1]] = sub[:-1] #print(find) def exist(find,catch): #print(catch) res = False if isinstance(catch,list): for i,e in enumerate(catch): if not isinstance(e,list) and e in find and i < 2 : catch[i] = find[e] res = res or True else: res = res or exist(find,e) return res catch = find[gcd] def make_str(catch): if isinstance(catch,list): return f'({make_str(catch[0])}-{make_str(catch[1])}*{catch[2]})' else: return catch print('
===带入换算===') print(f'gcd(a,b) = {gcd}') print(f' {make_str(catch)}') while exist(find,catch): print(f' {make_str(catch)}') def make_res(catch): if isinstance(catch,list): return make_res(catch[0])-make_res(catch[1])*catch[2] else: return catch final = str(make_res(catch)) print(f' {final}') print(f'
===结果===') sx = final[:final.find('a')-1].replace(' ','') sy = final[final.find('a')+1:final.find('b')-1].replace(' ','') def toInt(s): if s == '' or s == '+': return 1 elif s == '-': return -1 else: return int(s) x = toInt(sx) y =toInt(sy) final = final.replace('a',str(a)) final = final.replace('b',str(b)) print(f'{final} = gcd({a},{b}) = {gcd}') if change: x,y = y,x return x,y def LineCong(a,c,m): ''' solve x for ax ≡ c ( mod m ) ''' print() print(f'Qestion: {a}x ≡ {c} ( mod {m} )') print(f'solve for g = gcd({a},{m})') g = gcd(a,m) print(f'g = gcd({a},{m}) = {g}') print() if c%g != 0: print('None solution since g ∤ c') return else: print(f'since {g} | {c}, so g | c') print(f'then equation has g={g} solns') print() print(f'solve {a}u+{m}v = {g}') u0,v0 = solve(a,m) print(f'u0,v0 = {u0},{v0}') print(f'
===计算最终结果===') x0 = round(c*u0/g) print(f'x0 = c · u0/g = {x0}') xs = [] for k in range(g): xk =x0+ round(k*m/g) xs.append(xk%m) xs.sort() print(f' x ≡ x0 + k·m / g (mod m) ') print(f' ≡ {x0} + k·{m} / {g} (mod {m}) ') print(f' ≡ {str(xs)[1:-1]} (mod {m})') return xs def QuadCong(c,m): ''' solve x for x^2 ≡ c ( mod m ) ''' res = [] print() print(f'x^2 ≡ {c} ( mod {m} )') for x in range(m): p = x**2 % m if p == c: print(f'{x}^2 = {x**2}≡ {p} ( mod {m} ) ○') res.append(x) else: print(f'{x}^2 = {x**2}≡ {p} ( mod {m} ) ×') if len(res) >0: print(f'x = {str(set(res))[1:-1]} (mod {m})') else: print('No solutions') return res #print(LineCong(8,6,14)) #print(LineCong(66,100,121)) #print(LineCong(21,14,91)) QuadCong(1,8) QuadCong(2,7) QuadCong(3,7)
结果
x^2 ≡ 1 ( mod 8 ) 0^2 = 0≡ 0 ( mod 8 ) × 1^2 = 1≡ 1 ( mod 8 ) ○ 2^2 = 4≡ 4 ( mod 8 ) × 3^2 = 9≡ 1 ( mod 8 ) ○ 4^2 = 16≡ 0 ( mod 8 ) × 5^2 = 25≡ 1 ( mod 8 ) ○ 6^2 = 36≡ 4 ( mod 8 ) × 7^2 = 49≡ 1 ( mod 8 ) ○ x = 1, 3, 5, 7 (mod 8) x^2 ≡ 2 ( mod 7 ) 0^2 = 0≡ 0 ( mod 7 ) × 1^2 = 1≡ 1 ( mod 7 ) × 2^2 = 4≡ 4 ( mod 7 ) × 3^2 = 9≡ 2 ( mod 7 ) ○ 4^2 = 16≡ 2 ( mod 7 ) ○ 5^2 = 25≡ 4 ( mod 7 ) × 6^2 = 36≡ 1 ( mod 7 ) × x = 3, 4 (mod 7) x^2 ≡ 3 ( mod 7 ) 0^2 = 0≡ 0 ( mod 7 ) × 1^2 = 1≡ 1 ( mod 7 ) × 2^2 = 4≡ 4 ( mod 7 ) × 3^2 = 9≡ 2 ( mod 7 ) × 4^2 = 16≡ 2 ( mod 7 ) × 5^2 = 25≡ 4 ( mod 7 ) × 6^2 = 36≡ 1 ( mod 7 ) × No solutions 代码
from sympy.ntheory import factorint from numpy import prod def phi(m): num_exp_s = factorint(m) print() s1 = [ f'{n}^{e}' for n,e in num_exp_s.items()] s1 = ' · '.join(s1) print(f'ϕ({m}) = ϕ({s1})') s2 = [ f'({n}^{e} - {n}^{e-1})' if e>1 else f'({n} - 1)' for n,e in num_exp_s.items()] s2 = ' · '.join(s2) print(f' = {s2}') s3 = [ f'({n**e} - {n**(e-1)})' if e>1 else f'({n} - 1)' for n,e in num_exp_s.items()] s3 = ' · '.join(s3) print(f' = {s3}') s4 = [ f'{n**e - n**(e-1)}' if e>1 else f'{n - 1}' for n,e in num_exp_s.items()] s4 = ' · '.join(s4) print(f' = {s4}') s4 = [ n**e - n**(e-1) if e>1 else n - 1 for n,e in num_exp_s.items()] s4 = prod(s4) print(f' = {s4}') return s4 def sigma(m): num_exp_s = factorint(m) print() s1 = [ f'{n}^{e}' for n,e in num_exp_s.items()] s1 = ' · '.join(s1) print(f'σ({m}) = σ({s1})') s2 = [ f'σ({n}^{e})' if e>1 else f'σ({n})' for n,e in num_exp_s.items()] s2 = ' · '.join(s2) print(f' = {s2}') s3 = [f'( ({p}^{k+1} -1)/({p}-1) )' for p,k in num_exp_s.items()] s3 = ' · '.join(s3) print(f' = {s3}') s3 = [f'{(p**(k+1) -1)//(p-1)}' for p,k in num_exp_s.items()] s3 = ' · '.join(s3) print(f' = {s3}') s4 = [ (p**(k+1) -1)//(p-1) for p,k in num_exp_s.items()] s4 = prod(s4) print(f' = {s4}') return s4 phi(1512) sigma(16072) sigma(800000) sigma(1728)
结果
ϕ(1512) = ϕ(2^3 · 3^3 · 7^1) = (2^3 - 2^2) · (3^3 - 3^2) · (7 - 1) = (8 - 4) · (27 - 9) · (7 - 1) = 4 · 18 · 6 = 432 σ(16072) = σ(2^3 · 7^2 · 41^1) = σ(2^3) · σ(7^2) · σ(41) = ( (2^4 -1)/(2-1) ) · ( (7^3 -1)/(7-1) ) · ( (41^2 -1)/(41-1) ) = 15 · 57 · 42 = 35910 σ(800000) = σ(2^8 · 5^5) = σ(2^8) · σ(5^5) = ( (2^9 -1)/(2-1) ) · ( (5^6 -1)/(5-1) ) = 511 · 3906 = 1995966 σ(1728) = σ(2^6 · 3^3) = σ(2^6) · σ(3^3) = ( (2^7 -1)/(2-1) ) · ( (3^4 -1)/(3-1) ) = 127 · 40 = 5080
代码
from sympy.ntheory import factorint from numpy import prod def SuccSqua(a,k,m): print() #break k b = [int(v) for v in list(str(bin(k))[2:])] b.reverse() bs = [] for i,v in enumerate(b): if v == 1: sub = 2**i bs.append(sub) #print(bs) s0 = '+'.join([str(v) for v in bs[::-1]]) print(f'{k} = {s0}') catch = {1:a%m} print(f' {a}^1 = {a} (mod {m})') for i in range(1,len(b)): t1 = catch[2**(i-1)] t2 = t1**2 % m e = 2**i catch[e] = t2 print(f' {a}^{e} ≡ {t1}^2 ≡ {t2} (mod {m})') bs.reverse() s1 = [f' {a}^{e} ' for e in bs] s1 = '·'.join(s1) print(f'{a}^{k} = {s1}') s1 = [f' {catch[e]} ' for e in bs] s1 = '·'.join(s1) print(f' ≡ {s1} (mod {m})') vs = [catch[e] for e in bs] cur = vs[0] if len(vs) >1: for v in vs[1:]: cur = cur *v % m print(f' ≡ {cur} (mod {m})') return cur SuccSqua(5,13,23) SuccSqua(28,749,1147)
结果
13 = 8+4+1 5^1 = 5 (mod 23) 5^2 ≡ 5^2 ≡ 2 (mod 23) 5^4 ≡ 2^2 ≡ 4 (mod 23) 5^8 ≡ 4^2 ≡ 16 (mod 23) 5^13 = 5^8 · 5^4 · 5^1 ≡ 16 · 4 · 5 (mod 23) ≡ 21 (mod 23) 749 = 512+128+64+32+8+4+1 28^1 = 28 (mod 1147) 28^2 ≡ 28^2 ≡ 784 (mod 1147) 28^4 ≡ 784^2 ≡ 1011 (mod 1147) 28^8 ≡ 1011^2 ≡ 144 (mod 1147) 28^16 ≡ 144^2 ≡ 90 (mod 1147) 28^32 ≡ 90^2 ≡ 71 (mod 1147) 28^64 ≡ 71^2 ≡ 453 (mod 1147) 28^128 ≡ 453^2 ≡ 1043 (mod 1147) 28^256 ≡ 1043^2 ≡ 493 (mod 1147) 28^512 ≡ 493^2 ≡ 1032 (mod 1147) 28^749 = 28^512 · 28^128 · 28^64 · 28^32 · 28^8 · 28^4 · 28^1 ≡ 1032 · 1043 · 453 · 71 · 144 · 1011 · 28 (mod 1147) ≡ 289 (mod 1147)
代码
from sympy.ntheory import factorint def charm(n): print() good = f'{n} is charm' bad = f'{n} is not charm' if n%2 == 0: print(bad,f' {n} is not odd') return False catch = factorint(n) s = [f' {v}^{e} ' for v,e in catch.items()] s = '·'.join(s) print(f'{n} = {s}') for v,e in catch.items(): if e >1: print(bad,f' condition 1: prime factor v: {v}^2 | {n}') return False for p,e in catch.items(): if not ((n-1) % (p-1) == 0): print(bad,f' condition 2: prime factor {p}: ({p}-1)∤({n}-1)') return False print(good) return True charm(1105) charm(6601) charm(8911) charm(105545) charm(126217) charm(188461)
结果
1105 = 5^1 · 13^1 · 17^1 1105 is charm 6601 = 7^1 · 23^1 · 41^1 6601 is charm 8911 = 7^1 · 19^1 · 67^1 8911 is charm 105545 = 5^1 · 11^1 · 19^1 · 101^1 105545 is not charm condition 2: prime factor 11: (11-1)∤(105545-1) 126217 = 7^1 · 13^1 · 19^1 · 73^1 126217 is charm 188461 = 7^1 · 13^1 · 19^1 · 109^1 188461 is charm
代码
from pprint import pprint as pt def gcd(a,b): [a,b] = [a,b] if a>b else [b,a] n,r = a,b #print() while r!=complex(0,0): last_r = r m,n = n,r q,r = divmod(m,n) #print(f'{m} = {q} · {n} + {r} ') return last_r def makelist(p): catch = [(2,1)] vs = [0,2] for i in range(2,p): prev,prei = catch[-1] v = 2*prev % p sub = (v,i) catch.append(sub) vs.append(v) #pt(catch) catch ={ k:v for k,v in catch} return catch,vs def solve(a,e,b,p): ''' default : a=1,e=1 solve a·x^e ≡b (mod p) ''' print() print() print(f'{a}·x^{e} ≡{b} (mod {p})') v2i,i2v = makelist(p) print(f'I({a})+{e} · I(x) ≡I({b}) (mod {p-1})') print(f'{v2i[a]}+{e} · I(x) ≡{v2i[b]} (mod {p-1})') print(f'{e} · I(x) ≡{v2i[b]}- {v2i[a]} (mod {p-1})') print(f'{e} · I(x) ≡{v2i[b] - v2i[a]} (mod {p-1})') v = (v2i[b] - v2i[a]) % (p-1) print(f'{e} · I(x) ≡{v} (mod {p-1})') g = gcd(e,p-1) num = 0 print(f'gcd({e},{p-1}) = {g} , v = {v}',end=' ') if v%g==0: num = v//g print(f'have {g} solns') else: print('no solns') return holds= [] for i in range(p): h = v+i*(p-1) if h%e == 0: k = h//e % (p-1) holds.append(k) holds = set(holds) s = ', '.join([str(v) for v in holds]) print(f'I(x) ≡{s} (mod {p-1})') s = ', '.join([f'2^{k}' for k in holds]) print(f' x ≡{s} (mod {p})') res = [i2v[k] for k in holds] s = ', '.join([str(k) for k in res]) print(f' x ≡{s} (mod {p})') return res solve(a=12,e=1,b=23,p = 37) solve(a=5,e=23,b=18,p = 37) solve(a=1,e=12,b=11,p = 37) solve(a=7,e=20,b=34,p = 37)
结果
12·x^1 ≡23 (mod 37) I(12)+1 · I(x) ≡I(23) (mod 36) 28+1 · I(x) ≡15 (mod 36) 1 · I(x) ≡15- 28 (mod 36) 1 · I(x) ≡-13 (mod 36) 1 · I(x) ≡23 (mod 36) gcd(1,36) = 1 , v = 23 have 1 solns I(x) ≡23 (mod 36) x ≡2^23 (mod 37) x ≡5 (mod 37) 5·x^23 ≡18 (mod 37) I(5)+23 · I(x) ≡I(18) (mod 36) 23+23 · I(x) ≡17 (mod 36) 23 · I(x) ≡17- 23 (mod 36) 23 · I(x) ≡-6 (mod 36) 23 · I(x) ≡30 (mod 36) gcd(23,36) = 1 , v = 30 have 1 solns I(x) ≡6 (mod 36) x ≡2^6 (mod 37) x ≡27 (mod 37) 1·x^12 ≡11 (mod 37) I(1)+12 · I(x) ≡I(11) (mod 36) 36+12 · I(x) ≡30 (mod 36) 12 · I(x) ≡30- 36 (mod 36) 12 · I(x) ≡-6 (mod 36) 12 · I(x) ≡30 (mod 36) gcd(12,36) = 12 , v = 30 no solns 7·x^20 ≡34 (mod 37) I(7)+20 · I(x) ≡I(34) (mod 36) 32+20 · I(x) ≡8 (mod 36) 20 · I(x) ≡8- 32 (mod 36) 20 · I(x) ≡-24 (mod 36) 20 · I(x) ≡12 (mod 36) gcd(20,36) = 4 , v = 12 have 4 solns I(x) ≡24, 33, 6, 15 (mod 36) x ≡2^24, 2^33, 2^6, 2^15 (mod 37) x ≡10, 14, 27, 23 (mod 37)
如果这个项目在github上开源一下,那么所有学科的所有考试,全都变成了无脑传参,抄答案。
只要魔改一下计算器,然后再把代码做成汇编放进去,不论你会不会这个算法,你都能答对数学题,而且格式工整,过程详细。
教授早就知道如果允许大家带计算器,那么计算器会被技术大佬给玩爆了。
还可以装网卡,用HTTP协议,接入数据库。
用搜索引擎算法,直接返回答案。
正是因为学校的高层知道,技术有多厉害,所以不敢让我们用。
不然学生一个个开了挂一样,一年选修12门课,2年读完大学,那学校还怎么收学费了?
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有