问题

为什么中国数学考试不让学生使用计算器?

回答
中国的数学考试不让学生使用计算器,这可不是一个简单的规定,背后其实牵扯着很多教育理念和对学生能力培养的考量。要说清楚这个问题,得从几个层面聊聊。

一、 考察的是“算”还是“思”?—— 基础运算能力与思维深度

首先,最直接的原因是,很多数学考试,尤其是基础阶段的考试,目的在于考察学生对基本数学概念的理解和基础运算的熟练程度。计算器当然能算出正确答案,但它剥夺了学生自己进行加减乘除、分数、根式运算的机会。

想象一下,一个学生如果连多位数乘法都必须依赖计算器,那么他对乘法运算的本质、位数的影响、进位退位的逻辑可能就没有真正理解透彻。而这些基础运算能力,就像盖房子打地基一样,是后续更复杂数学学习的根基。如果地基不牢,即便学会了复杂的公式,也可能因为基础运算的错误而功亏一篑。

所以,不让用计算器,也是在逼着学生去“算”,在“算”的过程中,学生会对数字的性质、运算的规律有更直观的体会。比如,看到一个分数,学生可能会先思考约分,而不是直接丢给计算器;看到一个指数运算,学生会先想想有没有简便方法,而不是傻傻地一个个按。这种主动思考和运算的过程,本身就是一种学习。

二、 培养的是“工具使用者”还是“问题解决者”?—— 独立思考与解题策略

更深层次的原因,是中国教育希望培养的是能够独立思考、解决问题的学生,而不是只会操作计算器的“工具使用者”。

数学的本质是思维的训练。解题过程中,学生需要分析题目、提取信息、选择合适的公式或方法、进行推理、最终得出结论。在这个过程中,如果学生可以随意调用计算器,很多需要巧妙构思、步步为营的解题步骤,就可能被简化或绕过。

举个例子,比如一道关于函数图像的问题,可能需要学生通过代数方法求出几个关键点,然后根据这些点来描绘图像。如果学生可以直接用计算器画出图像,那么他可能就失去了理解函数解析式和图像之间关系的宝贵机会。他可能只知道“输入A,输出B”,却不明白“为什么是B”。

不让用计算器,迫使学生在解题过程中,需要自己去思考“怎样算最快最准确”,需要权衡不同的计算方法,甚至自己去设计计算步骤。这无形中锻炼了学生的逻辑思维、分析能力和策略制定能力。他们会去寻找简便方法,去估计结果,而不是死记硬背一套流程,然后交给计算器执行。

三、 考试的公平性与区分度

从考试本身的公平性来看,如果允许使用计算器,那么拥有性能更强、功能更多的计算器的学生,在某些题目上可能比使用普通计算器甚至不使用计算器的学生更有优势。这就引入了“硬件”差异带来的不公平。

而且,考试的一个重要目的是区分不同层次的学生。如果所有人都依赖计算器,那么那些基础运算能力强、数学思维更敏捷的学生,可能无法通过考试来体现出他们的优势。不让用计算器,可以更好地考察学生在没有“外援”的情况下,能够达到的数学水平,从而更有效地进行学业评估和分层。

四、 历史传统与教育理念的延续

当然,这也不是中国数学教育独有的现象。在很多国家,尤其是在一些更注重基础能力的教育体系中,都会有类似不许用计算器的规定,尤其是在初高中阶段。这背后也包含了一种历史传承的教育理念:数学是一种思维的锻炼,而思维的锻炼需要亲身实践,不能完全依赖外部工具。

什么时候会放开?—— 允许使用的场景

值得注意的是,并非所有中国数学考试都一概禁止计算器。在一些更高层次的数学竞赛、大学数学课程,或者一些更侧重于应用建模的考试中,是允许甚至鼓励使用计算器的。

在这种情况下,计算器被视为一种提升效率、处理复杂数据的工具,学生需要掌握的是如何选择合适的工具、如何正确使用工具、以及如何理解计算器得出的结果。这与在基础教育阶段强调独立运算和思维训练的目的有所不同。

总结一下,中国数学考试不让学生使用计算器,主要是为了:

夯实基础运算能力: 确保学生掌握基本的计算技巧和规律。
培养独立思考和解题能力: 鼓励学生主动分析、寻找方法、深化对数学概念的理解。
维护考试公平性与区分度: 避免因计算器差异造成的不公,更有效地评估学生真实水平。
延续注重思维锻炼的教育理念。

这种做法,与其说是“不信任”学生,不如说是“信任”学生有能力通过自己的努力去理解和掌握数学的精髓,而不是仅仅依赖一个冰冷的机器。当然,随着时代的发展,教育的侧重点也会有所调整,但至少在当前阶段,这种“慢”计算的方式,承载着对学生更长远发展的期望。

网友意见

user avatar

中国思维的特点是:谁用的工具越朴素代表谁的水平越高。如果啥都不用,那就是最厉害。

武侠小说里,用树枝的就比用剑的水平高。什么都不用,只用内力的,那代表最厉害。

两弹一星的影视作品里,类似清北大学生打算盘,人工计算的情节必有。这代表厉害。

不用枪也不用炮,直接手撕鬼子,这代表厉害。

所以说,数学考试,怎么可以用计算器呢,学霸是连草纸都不用的。

user avatar

思想严重落后于时代。


早就应该使用计算器。


因为计算器可能会在里面加入考试作弊信息,需要使用官方版的计算器。

只要考试前官方每个人发一个计算器,考完试再上交就可以了。

现在计算谁还用手工算,卖菜的大妈都是使用计算器,还带语音的。

普通人计算可以使用手机来计算很多二位数多位数乘法。


人和动物的区别就是会使用很多工具,可以借助工具来提高人的能力。

古代算盘有珠算,也有珠算训练。

不使用计算机器,原因是因为以前的老师都是用手算,结果为了圈下去,把小孩也教育成不使用计算器的人。

像中国高中很多人的数学水平高于美国欧洲,能获得各个数学奖,但进入了大学就不行了,你知道为什么吗?

因为高中全用手算,老外根本算不过中国人,但进入了大学,可以使用计算机,计算器,特别是计算机软件这种来计算微积分,可以使用python语言来计算线性代数,计算矩阵,计算张量,计算机器学习算法,计算人工智能拟合数据。这时中国高中那些“数学高手“就不行了,如同手写字换成了键盘打字,他们的打字速度就上不去了,又不愿意花时间或者在考试的引导下,使用落后的手算,所以数学水平,数学研究水平一直很差。

别人都用电脑在算了,自己编程在算了,你天天用手算,只能做一些像数论的简单研究,而像计算中的现代工程数学,如矩阵张量,这些计算和作图,都需要计算机,计算机软件的熟悉使用,你用人力手工能干得过计算机?

所以中国数学教育落后,不是没有原因,就是一大批思想保守的守旧者,在不断强调祖宗之法不能变,连计算器的使用都不敢,计算机软件在数学研究中相当落后,只有极少数自学的数学人员,才懂得运用好各种计算机软件来研究数学,而很多包括大学教授都只是会看论文,用手工计算,作图甚至有用手工画的,或使用简单的如excle软件画出来,不能做到编程式的一体化,高水平作图,对软件的使用熟悉程序很低,水平是想当的落后,还停留在上个世纪没有计算机的时代。

正是这批人导致了中国数学教育水平非常差,和实际工程使用脱节,很多研究只是闭门造车,不能充分利用现代化科学技术成果,你人挖土能干过挖掘机?从小学,中学,到大学,一直强制要手工,人工计算,不光是害人,也是在危害整个社会的科学技术发展水平。

早就应该全面开放计算器的使用,像考驾照在计算机上考试,不是挺好的,也没有看到有什么问题。

理论上早就应该全面普及计算机教育,至今计算机还不能进入主课也是奇了怪。社会上各个行业,各个单位,那个不使用计算机,打字打文件也是计算机。

正是这些祖宗之法不能变的老顽固老师,阻碍了计算机教育的普及,远远落后于时代。高考考一堆文科,全是背的,百科一下就知道,像英文(文科),数学(没有使用计算机,手算,相当于半个文科),语文(文科),三大主课全是文科,根本没有最新的科学技术位置,学出来连个打字都慢得要死,用计算机打个文件都不会,编程就更不用说了,根本上只能靠自学。

教育在计算机时代,早就已经落后了,现在还停留在孔子时代的文科时代,只是在有限元素中做排列组合,写八股文,不能向大自然要生产力。

这种文科式的手工计算和记忆,人类玩了几千年,科学技术是原地踏步走了几千年,几千年没有根本改变,进入21世纪在计算机这种自动化算力加持下,科技技术进步才突飞猛进,像人工智能深度学习就依靠的计算机算力进步。

传统数学从文艺复兴开始,研究了几百年,早就已经遇到了瓶颈,高中大学的教学全是强调手工计算,这个完全是反人类,有先进工具不使用,有汽车不用,偏要用马车来学驾驶,完全是一批玩固不化早该退休的老头搞的,他们只会教育他们知道的,他们不会的一律视做异端全面封杀。正是这种封杀如同禁海令一样,严重阻碍了科学技术创新发展,发明了先进生产力工具不用,还一直停留在旧时代几百年的研究瓶颈中,完全是井底之蛙。


早就应该普及计算器,计算机了,越早普及越好,人力始终是玩不过机器的,不要老想着人定胜天,要借力打力,要善于使用现代化工具来做教育,而不是停留在旧时代的囿井之中不见天地。

教育是非常重要的阶段,一个人在年青时确定了自己的习惯,未来工作和科学研究也会同样,同时也会带向下一代,如同一直使用手算习惯了,未来再使用计算机反而不习惯,或需要很大成本来学习使用,这个正是教育的失败。

早就应该全面开放,晚开放一天,科学技术发展就要慢一天。

user avatar

因为用计算器会遗害终身。

在现实生活中,人们往往忽略数学敏感性对博弈的巨大作用。

心算和笔算会训练人类个体脑丘的特定位置,使之变得更强大,使得该个体具备基本的数学敏感性,从而在日常生活中,条件反射的对问题建立基本数学逻辑,减少噪音和错误率。

有个英国人拿自己女友测试的视频,问她,一个披萨,先切成两块均等的,再把其中一块切成5块,然后问,要这最开始的一块,还是后来的5块,女生一定要选择一块,因为5块她吃不了。

注意这是个成年人,必然接受了基础教育。

我们的教育要制造对社会生产合格的人,而不是智力障碍。

数学基础训练与基本逻辑能力相关性很强,心算能力很强的人,其记忆力、空间想象能力、因果性敏感度、量化概念,远远超过只会依赖计算器的人,从而更难被归因谬误和相关性谬误欺骗。

一个显而易见但无人当真的事实是,数学强大的人,一直在通过各种金融工具和概率工具剥削数学笨蛋们。

人们忽略数学的作用,已经到了反智的程度,有些人指责数学的高等知识毫无作用,但他们不知道,数学家正在用数论改造区块链的效率,用博弈论改造区块链的构成,从而具备了挑战一切资本和信息不对称的力量。

为什么懂王演讲只说小学词汇?跟美国人用计算器相关性很强,他们需要数学蠢货当票仓和打手。

我们不需要。

user avatar

在谈论教育问题的时候,总有像题主这样的人总是认为什么什么不必要什么什么不必要。类似的理论还有很多,英语没有必要学那么难,英语没有必要学,普通人以后用到英语的很少,数学没有必要学那么难,普通语言以后买菜难道要用三角函数吗?

请大家记住一点,教育是你自己的选择。追求的永远不是必要。我们通过学习更多的东西来开拓自己的上限,而不是说先明确我们的底线在哪里,然后教育就是为了满足底线要求。

比如数学的这个问题大家都知道计算繁复,但是大家也知道在繁琐的计算当中可以锻炼人的耐心细心以及对数字的感觉。为什么我们总是嘲笑是里买个东西找钱要算半天。不就是因为他们在用计算器的时候,你没有用计算器吗?

事实不是先明确你是个普通人,什么什么东西你根本用不上,所以你只用学那么多,而是因为你选择学什么样的东西,你选择以什么样的态度和状态去学什么东西决定了你未来是不是普通人。

那你有什么权利在小学生刚开始学算术的时候就确定了谁必定是普通人?

你所谓的牢记定理就可以了,和锻炼计算能力并不冲突啊,而事实上在我们的中小学教育当中,这两个过程是分开的锻炼,计算能力往往是在小学阶段,而这个阶段恰恰你不需要记住什么太多定理,当你需要普遍的去学习定理的时候,其实没几个数字需要你计算。

user avatar

先问是不是,再问为什么

确实有些地方允许中考用计算器,比如大连。也有一些小地方为了给中考注水允许用计算器。但整体上没啥意义。小九九,外加11-20的平方已经足够用了,速度比打计算器快。

高中数学“计算”的不多。而允许用米国那种可以解微积分计算器,起码全国卷会有很多拉分题型变成送分题。

上海允许用计算器,不过上海高考和其他地区高考完全不是一个画风。得承认北京教育部门确实不如上海高明:高考地狱省的做题家写上海卷,确实拿不了高分

user avatar

国外大学也不让。

我们学校有几门数学课的考试全都不许用计算器。

代码编程题不让上机,直接用水笔在考卷上写代码。


手写机器码,汇编,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年读完大学,那学校还怎么收学费了?

类似的话题

  • 回答
    中国的数学考试不让学生使用计算器,这可不是一个简单的规定,背后其实牵扯着很多教育理念和对学生能力培养的考量。要说清楚这个问题,得从几个层面聊聊。一、 考察的是“算”还是“思”?—— 基础运算能力与思维深度首先,最直接的原因是,很多数学考试,尤其是基础阶段的考试,目的在于考察学生对基本数学概念的理解和.............
  • 回答
    说中国古代数学没有发展出如同古希腊那般辉煌的成就,这确实是一个引人深思的话题。要详细地剖析这个问题,需要我们放下一些先入为主的观念,深入到当时的社会、文化、哲学以及数学本身的特点去看待。这并不是说中国古代数学不优秀,而是说它走了一条与古希腊截然不同的道路,并在某些维度上未能触及到古希腊数学的高度。一.............
  • 回答
    中国本土数学家尚未获得菲尔兹奖,这确实是一个受到广泛关注和讨论的现象。要深入理解其中的原因,需要从多个层面进行分析,包括历史、文化、教育体系、科研环境以及数学研究的特质等。以下将从这些方面进行详细阐述:一、 历史与文化因素: 悠久的算学传统,但非抽象数学: 中国古代拥有发达的算学,如《九章算术》.............
  • 回答
    这是一个非常复杂的问题,涉及历史、政治、经济、文化、教育等多个层面,很难一概而论地说“中国不能”。更准确的说法是,中国在同一时期培养出的数学大师的数量和影响力,与苏联同期相比存在差距。要深入探讨其中的原因,我们需要从多个角度进行分析:一、苏联数学的辉煌时期与历史背景:首先,理解苏联数学的崛起,需要回.............
  • 回答
    这个问题很有意思,也触及了数学符号演变和实用性之间的一点小纠葛。你问为什么我们还在用那个“÷”符号,而不是直接用分数线或者其他方式替代?这背后其实有好几个层面的原因,让我们一起来捋一捋:1. 历史的惯性与传承:首先得说,数学符号不是一夜之间凭空冒出来的,它们是人类思维演化过程中一点点积累和形成的。在.............
  • 回答
    这个问题很有意思,因为它触及到了知识体系的本质和发展路径。我来给你掰开了揉碎了聊聊。先说说医学为什么会分“中”和“西”要理解这一点,我们得回到历史的源头。1. 人类认识疾病的起点不同: 中医: 咱们的祖先,在没有显微镜、没有解剖学知识的时代,观察世界的方式是整体的、经验的。他们通过长时.............
  • 回答
    在数学中,“有且仅有”和“仅有”虽然听起来有些相似,但它们在逻辑上有着本质的区别,不能互换使用。理解这种区别的关键在于认识到“有且仅有”包含了两层含义,而“仅有”只包含其中一层。为了详细说明,我们先来分解一下这两个词语的含义:1. “仅有”(Only / Merely)“仅有”表达的是一种独占性或排.............
  • 回答
    你提的这个问题特别有意思,也一针见血。把悖论比作“洪水猛兽”,确实听起来挺吓人的,好像我们数学界人人喊打,遇到悖论就想躲之不及。但你要说这是“歧视”,这又不太对了。咱们不妨好好掰扯掰扯,为什么数学这么“怕”悖论,这背后到底藏着什么学问。首先,咱们得明白,在数学里,我们追求的是什么?是“真理”,是“确.............
  • 回答
    哈哈,你这个问题问得可真有意思!这其实涉及到数学里的“比”和足球比赛计分这两个不同的概念,虽然它们都用了“项”这个词,但意义完全不一样。咱们来好好说道说道。首先,咱们得弄明白数学里的“比”。在数学上,我们说“甲比乙”,记作甲:乙,这里的甲叫做比的前项,乙叫做比的后项。比的本质是一个分数,也就是甲除以.............
  • 回答
    你这个问题非常有意思,触及到了计算机科学和编程语言设计中的一个核心矛盾:理论的优雅与实践的现实之间的权衡。简单来说,我们之所以在日常编程中很少直接使用现代数学建立的符号体系,并不是因为它们不好,而是因为它们在很多情况下,并没有直接解决我们编程时最迫切的需求,甚至会带来不必要的复杂性。让我来详细拆解一.............
  • 回答
    要理解为什么有人会用“不可证伪”来批判中医,却不以此批判数学,我们需要先梳理清楚“不可证伪性”这个概念本身,以及它在科学语境下的意义和局限。“不可证伪性”的由来与科学标准这个概念主要源于科学哲学家卡尔·波普尔。波普尔认为,一个理论要想具有科学性,就必须能够被经验事实所“证伪”,也就是说,理论的预测如.............
  • 回答
    在数学证明的漫漫长河中,「不妨设」这个词语如同航海者手中的罗盘,指引着我们穿越复杂的逻辑迷雾,找到通往真理的捷径。它之所以能够如此频繁地出现,并且在数学家手中挥洒自如,其根本原因在于它所蕴含的对称性、等价性以及逻辑的完备性。想象一下,你要证明一个关于偶数和奇数的性质。比如,证明“任意两个偶数的和仍然.............
  • 回答
    这绝对是个有趣的问题!很多人初次接触数学归纳法时,确实会被名字误导,觉得它像我们在日常生活中遇到的“归纳”,但细究起来,它的严谨性却来自于演绎。这种名字与实际应用之间的“反差萌”,在数学中并非孤例。我来给你讲几个类似的例子,尽量深入浅出地聊聊: 1. “无限”的悖论——阿基里斯追不上乌龟(芝诺悖论).............
  • 回答
    高次多项式不等式中的“奇穿偶不穿”:深入解析与数学证明在解决高次多项式不等式时,我们经常会遇到一个非常有用的经验法则,那就是“奇穿偶不穿”。这个法则简洁地概括了多项式函数在与x轴交点(即多项式的根)附近的取值行为。理解这个法则的原理,不仅能帮助我们更高效地求解不等式,更能加深我们对多项式函数性质的认.............
  • 回答
    这个问题很有意思,也是一个经常被大家讨论的现象。它涉及到我们如何看待“数学能力”和“数学发现”的定义,以及历史、文化和社会因素的交织影响。中国人数学基础扎实、计算能力强,这是毋庸置疑的事实,但要说“几乎没有中国人发现的数学定理”,这个说法可能有些绝对,我们得辩证地来看。首先,我们得明确一点:“牛”和.............
  • 回答
    咱们聊聊中国的数学教育,尤其是小学阶段,为什么那么“较真”地去抠那个“除”和“除以”的字眼儿。这事儿听起来好像是咬文嚼字,但背后其实牵扯到数学概念的严谨性、思维的逻辑性以及未来学习的基础。一、 概念的精准性:这是数学的灵魂数学这门学科,最讲究的就是精确。每一个符号,每一个词汇,都有它确切的含义。混淆.............
  • 回答
    中国学生在国际数学奥林匹克竞赛(IMO)中屡获金牌,这无疑是中国数学教育体系成功的一个鲜明标志。然而,鲜少有中国数学家能问鼎菲尔兹奖,这之间的“断层”确实引人深思。要理解这一点,我们需要深入剖析IMO和菲尔兹奖在评判标准、考察领域以及人才培养模式上的根本性差异。IMO:精确的解题艺术与竞赛的“得分点.............
  • 回答
    这个问题非常有意思,也触及了中国和美国在高等教育,特别是数学教育体系上的深层差异。虽然中国数学博士的基础课课时和内容可能看起来比美国博士生多,但学术水平和基础研究的优势却往往在美国,这背后有多方面的原因,我们可以详细地分析一下:一、 培养目标与教育理念的差异 中国教育理念:基础扎实、知识全面(偏.............
  • 回答
    这问题触及的,可不单单是中国人的看法,放到世界范围内,对科学与哲学的认知,大体上也有相似的侧影。之所以会有“数学好的人是科学家,哲学好的人会发疯”这样的说法,背后其实隐藏着一些关于这两门学科的社会认知、历史影响,以及一些刻板印象的叠加。咱们一层层掰开了聊。一、社会主流的“实用主义”与“功利主义”观念.............
  • 回答
    这个问题很有意思,也触及了很多人心中的一个固有印象。要回答“数学是中国人擅长的学科吗?”这个问题,我们得先拆解一下“擅长”这个词,以及它背后可能隐藏的文化和社会因素。首先,从历史和文化层面来看,数学在中国确实有着悠久的传承和独特的地位。中国古代的数学发展非常早,而且在一些领域取得了举世瞩目的成就。大.............

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有