[从头学数学] 第209节 带着计算机去高考(一)

来源:互联网 发布:淘宝处理不公平 编辑:程序博客网 时间:2024/05/01 13:08
剧情提要:
[机器小伟]在[工程师阿伟]的陪同下进入了[九转金丹]之第八转的修炼。设想一个场景:
如果允许你带一台不连网的计算机去参加高考,你会放弃选择一个手拿计算器和草稿本吗
?阿伟决定和小伟来尝试一下用计算机算高考题会是怎样的感觉。

正剧开始:

星历2016年05月16日 17:25:11, 银河系厄尔斯星球中华帝国江南行省。
[工程师阿伟]正在和[机器小伟]一起做着2000年的江苏省数学高考题]。






<span style="font-size:18px;">#题1>>> 4def tmp():    a = [2, 3, 4, 5];    f = '2**n+n';    for i in range(len(a)):        n = a[i];        if eval(f) == 20:            print(n);</span>


<span style="font-size:18px;">#题2>>> (2.999955999354648+1.732076211353316j)def tmp2():    a = (3-1.732j);    thita = math.pi/3;    b = complex(math.cos(thita), math.sin(thita));    c = a*b;    print(c);</span>



<span style="font-size:18px;">#题3>>> D 2.449489742783178def tmp3():    ab=2**0.5;    bc=3**0.5;    ac=6**0.5    # => sqrt(a**2+b**2+c**2)    a2 = ab*ac/bc;    b2 = ab*bc/ac;    c2 = bc*ac/ab;    table = 'ABCD';    answer = math.sqrt(a2+b2+c2);    choice = [2*3**0.5, 3*2**0.5, 6, 6**0.5];    for i in range(len(choice)):        if abs(choice[i]-answer) < 0.1:            print(table[i], answer);</span>


<span style="font-size:18px;">#题4>>> 象限 1cos ---  -0.03291312439684896tan ---  0.11633650601051977象限 2cos ---  0.032913124396848896tan ---  -0.08753362531749721象限 3cos ---  -0.032913124396848875tan ---  -0.11633650601051942象限 4cos ---  0.032913124396848896tan ---  0.08753362531749721def tmp4():    #给出60, 45度两个特例    a = [math.pi/3, math.pi/4];    for i in range(4):        thita_1 = a[0]+math.pi/2*i;        thita_2 = a[1]+math.pi/2*i;        print('象限', i+1);#与sin差值相乘判断同号        d1 = (math.cos(thita_1)-math.cos(thita_2))*(math.sin(thita_1)-math.sin(thita_2));        d2 = (math.tan(thita_1)-math.tan(thita_2))*(math.sin(thita_1)-math.sin(thita_2));        print('cos --- ', d1);        print('tan --- ', d2);</span>



<span style="font-size:18px;">//题5 if (1) {              var r = 20;                    config.setSector(1,1,1,1);                      config.graphPaper2D(0, 0, r);                    config.axis2D(0, 0,180);                                      //坐标轴设定                var scaleX = 2*r, scaleY = 2*r;                  var spaceX = 2, spaceY = 2;                   var xS = -10, xE = 10;                  var yS = -10, yE = 10;                  config.axisSpacing(xS, xE, spaceX, scaleX, 'X');                    config.axisSpacing(yS, yE, spaceY, scaleY, 'Y');                                        var transform = new Transform();                    //存放函数图像上的点                var a = [], b = [], c = [], d = [];                                    //需要显示的函数说明                        //希腊字母表(存此用于Ctrl C/V              //ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ              //αβγδεζηθικλμνξοπρστυφχψω          var f1 = 'y = -xcosx', f2 = '', f3 = '', f4 = '';                      for (var x = xS; x <= xE; x+=0.4) {              a.push([x, taskFun(x)]);          }                                      //存放临时数组                var tmp = [];                                  //显示变换                if (a.length > 0) {                    a = transform.scale(transform.translate(a, 0, 0), scaleX/spaceX, scaleY/spaceY);                     //函数1                    tmp = [].concat(a);                        shape.pointDraw(tmp, 'red');                        tmp = [].concat(a);                        shape.multiLineDraw(tmp, 'pink');                                            plot.setFillStyle('red');                    plot.fillText(f1, 100, -180, 200);                  }                  } }  function taskFun(x) {return x*Math.cos(x);}</span>


<span style="font-size:18px;">#题6>>> 当月工资介于 1400 ,  1500def tmp6():    a = [];    d = 26.78;        for i in range(800, 3000, 100):        if (i < 800):            a.append(0);        elif (i < 800+500):            a.append((i-800)*0.05);        elif (i < 800+500+1500):            a.append(500*0.05+(i-1300)*0.1);        elif (i < 800+2000+3000):            a.append(500*0.05+1500*0.1+(i-2800)*0.15);        if (len(a)>2 and a[-2] <d and a[-1]>=d):            print('当月工资介于', i, ', ', i+100);            break;</span>


<span style="font-size:18px;">#题7>>> 0.8726396796036775, 0.8958797346140275, 0.9162907318741551def tmp7():    #给定特例    a, b = 3, 2;    P = (math.log(a)*math.log(b))**0.5;    Q = 0.5*(math.log(a)+math.log(b));    R = math.log((a+b)/2);    print('{0}, {1}, {2}'.format(P, Q, R));</span>








<span style="font-size:18px;">#题9>>> A 1.1591549430918953def tmp9():    h = 1;    S_side = h*h;    r = h/(math.pi*2);    S_total = math.pi*r**2*2+S_side;    #答案    answer = S_total/S_side;    table = 'ABCD';    #选项    choice = [1/(math.pi*2)+1, 1/(math.pi*4)+1,              1/(math.pi)+2, 1/(math.pi*2)+2];    for i in range(len(choice)):        if abs(choice[i]-answer) < 0.001:            print(table[i], answer);</span>





<span style="font-size:18px;"> if (1) {              var r = 20;                    config.setSector(1,1,1,1);                      config.graphPaper2D(0, 0, r);                    config.axis2D(0, 0,180);                                      //坐标轴设定                var scaleX = 2*r, scaleY = 2*r;                  var spaceX = 1, spaceY = 1;                   var xS = -5, xE = 5;                  var yS = -10, yE = 10;                  config.axisSpacing(xS, xE, spaceX, scaleX, 'X');                    config.axisSpacing(yS, yE, spaceY, scaleY, 'Y');                                        var transform = new Transform();                    //存放函数图像上的点                var a = [], b = [], c = [], d = [];                                    //需要显示的函数说明                        //希腊字母表(存此用于Ctrl C/V              //ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ              //αβγδεζηθικλμνξοπρστυφχψω          var f1 = 'x^2+y^2+4x+3 = 0', f2 = 'y = 1.732/3*x', f3 = 'y=1/(4a)', f4 = '';                    //(1-(x+2)^2)^0.5for (var x = xS; x <= xE; x+=0.2) {              a.push([x, Math.pow(1-(x+2)*(x+2), 0.5)]);  a.push([x, -Math.pow(1-(x+2)*(x+2), 0.5)]); b.push([x, 1.732/3*x]);        }                                      //存放临时数组                var tmp = [];                                  //显示变换                if (a.length > 0) {                    a = transform.scale(transform.translate(a, 0, 0), scaleX/spaceX, scaleY/spaceY);                     //函数1                    tmp = [].concat(a);                        shape.pointDraw(tmp, 'red');                        tmp = [].concat(a);                        shape.multiLineDraw(tmp, 'pink');                                            plot.setFillStyle('red');                    plot.fillText(f1, 100, -90, 200);                  }              //显示变换                if (b.length > 0) {                    b = transform.scale(transform.translate(b, 0, 0), scaleX/spaceX, scaleY/spaceY);                     //函数1                    tmp = [].concat(b);                        shape.pointDraw(tmp, 'blue');                        tmp = [].concat(b);                        shape.multiLineDraw(tmp, 'blue');                                            plot.setFillStyle('blue');                    plot.fillText(f2, 100, -120, 200);                  }      } </span>



<span style="font-size:18px;">//题11 if (1) {              var r = 20;                    config.setSector(1,1,1,1);                      config.graphPaper2D(0, 0, r);                    config.axis2D(0, 0,180);                                      //坐标轴设定                var scaleX = 2*r, scaleY = 2*r;                  var spaceX = 0.5, spaceY = 0.5;                   var xS = -10, xE = 10;                  var yS = -10, yE = 10;                  config.axisSpacing(xS, xE, spaceX, scaleX, 'X');                    config.axisSpacing(yS, yE, spaceY, scaleY, 'Y');                                        var transform = new Transform();                    //存放函数图像上的点                var a = [], b = [], c = [], d = [];                                    //需要显示的函数说明                        //希腊字母表(存此用于Ctrl C/V              //ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ              //αβγδεζηθικλμνξοπρστυφχψω          var f1 = 'y = ax^2', f2 = 'y = -1/(4a)', f3 = 'y=1/(4a)', f4 = '';                    //(1-(x+2)^2)^0.5for (var x = xS; x <= xE; x+=0.2) {              a.push([x, x*x]);  b.push([x, -1/4]);c.push([x, 1/4]);        }                                      //存放临时数组                var tmp = [];                                  //显示变换                if (a.length > 0) {                    a = transform.scale(transform.translate(a, 0, 0), scaleX/spaceX, scaleY/spaceY);                     //函数1                    tmp = [].concat(a);                        shape.pointDraw(tmp, 'red');                        tmp = [].concat(a);                        shape.multiLineDraw(tmp, 'pink');                                            plot.setFillStyle('red');                    plot.fillText(f1, 100, -90, 200);                  }  if (b.length > 0) {                b = transform.scale(transform.translate(b, 0, 0), scaleX/spaceX, scaleY/spaceY);                            //函数2                //tmp = [].concat(b);                    //shape.pointDraw(tmp, 'blue');                    tmp = [].concat(b);                    shape.multiLineDraw(tmp, '#22CCFF');                                 plot.setFillStyle('blue');                plot.fillText(f2, 100, -120, 200);                 }                           if (c.length > 0) {                c = transform.scale(transform.translate(c, 0, 0), scaleX/spaceX, scaleY/spaceY);                  //tmp = [].concat(c);                    //shape.pointDraw(tmp, 'green');                    tmp = [].concat(c);                    shape.multiLineDraw(tmp, '#CCFF22');                  plot.setFillStyle('green');                  plot.fillText(f3, 100, -150, 200);             }                 } </span>




<span style="font-size:18px;">#题12def tmp12():    #母线    L = 1;    thita = 0;    V_top = 1/3*Math.pi*(L*math.cos(thita)**2*math.sin(thita))**2*L*math.cos(thita);    V_total = 1/3*Math.pi*(L*math.sin(thita))**2*L*math.cos(thita);    #V_top / V_total = math.cos(thita)**4 = 1/2</span>



<span style="font-size:18px;">#题13>>> 6*42 = 252#排列公式  def arrangement(n, m):      if n < m:          return arrangement(m, n);      else:          factorial = 1;          for i in range(n, n-m, -1):              factorial*=i;          return factorial;    #组合公式  def combination(n, m):      if (n < m):          return combination(m, n);      else:          return arrangement(n, m)/arrangement(m,m);    def tmp13():    a = arrangement(3, 3);    b = arrangement(7, 2);    print('{0}*{1} = {2}'.format(a, b, a*b));</span>




<span style="font-size:18px;">#题14def tmp14():    #椭圆长短轴    a = 3;    b = 2;    c = (a**2-b**2)**0.5;    print(c);>>> 2.23606797749979y**2 = (1-x**2/9)*4(x-c)**2+(y)**2+(x+c)**2+(y)**2 = 4*c**22*x**2 + 2*y**2 = 2*c**25/9*x**2+4 = c**2>>> 2.23606797749979x =  1.3416407864998743    x = ((c**2-4)*9/5)**0.5;    print('x = ', x);=>-1.342 < x < 1.342 >>> 3/5**0.51.3416407864998738</span>


<span style="font-size:18px;">#题15a1 = 1 = 2/2; 2a2**2+a2-1 = 0; => a2 = 1/2;3a3**2+1/2*a3-1/2; 1/3=>an = 1/nif (1) {var equation = new Equation();                    var a = [2, 1, -1];          equation.quadratic(a);  }方程 2x^[2] + 1x + -1 = 0 =>Δ = b^[2] - 4ac = 9 ;方程的解为:x1 = -1, x2 = 0.5 ;方程根与系数的关系:x1 + x2 = -0.5, x1 * x2 = -0.5 ;if (1) {var equation = new Equation();                    var a = [3, 1/2, -1/2];          equation.quadratic(a);  }方程 3x^[2] + 0.5x + -0.5 = 0 =>Δ = b^[2] - 4ac = 6.25 ;方程的解为:x1 = -0.5, x2 = 0.3333333333333333 ;方程根与系数的关系:x1 + x2 = -0.16666666666666669, x1 * x2 = -0.16666666666666666 ;</span>





<span style="font-size:18px;">//题17 if (1) {              var r = 20;                    config.setSector(1,1,1,1);                      config.graphPaper2D(0, 0, r);                    config.axis2D(0, 0,180);                                      //坐标轴设定                var scaleX = 2*r, scaleY = 2*r;                  var spaceX = 2, spaceY = 0.4;                   var xS = -10, xE = 10;                  var yS = -10, yE = 10;                  config.axisSpacing(xS, xE, spaceX, scaleX, 'X');                    config.axisSpacing(yS, yE, spaceY, scaleY, 'Y');                                        var transform = new Transform();                    //存放函数图像上的点                var a = [], b = [], c = [], d = [];                                    //需要显示的函数说明                        //希腊字母表(存此用于Ctrl C/V              //ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ              //αβγδεζηθικλμνξοπρστυφχψω          var f1 = 'y = 1/2cos^2+0.868sinxcosx+1', f2 = 'y = -1/(4a)', f3 = 'y=1/(4a)', f4 = '';                    //(1-(x+2)^2)^0.5for (var x = xS; x <= xE; x+=0.2) {              a.push([x, taskFun(x)]);          }                                      //存放临时数组                var tmp = [];                                  //显示变换                if (a.length > 0) {                    a = transform.scale(transform.translate(a, 0, 0), scaleX/spaceX, scaleY/spaceY);                     //函数1                    tmp = [].concat(a);                        shape.pointDraw(tmp, 'red');                        tmp = [].concat(a);                        shape.multiLineDraw(tmp, 'pink');                                            plot.setFillStyle('red');                    plot.fillText(f1, 100, -90, 200);                  }                } }  function taskFun(x) {return 0.5*Math.pow(Math.cos(x), 2)+0.866*Math.sin(x)*Math.cos(x)+1;}</span>






<span style="font-size:18px;">//题19 if (1) {              var r = 20;                    config.setSector(1,1,1,1);                      config.graphPaper2D(0, 0, r);                    config.axis2D(0, 0,180);                                      //坐标轴设定                var scaleX = 2*r, scaleY = 2*r;                  var spaceX = 2, spaceY = 0.4;                   var xS = -10, xE = 10;                  var yS = -10, yE = 10;                  config.axisSpacing(xS, xE, spaceX, scaleX, 'X');                    config.axisSpacing(yS, yE, spaceY, scaleY, 'Y');                                        var transform = new Transform();                    //存放函数图像上的点                var a = [], b = [], c = [], d = [];                                    //需要显示的函数说明                        //希腊字母表(存此用于Ctrl C/V              //ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ              //αβγδεζηθικλμνξοπρστυφχψω          var f1 = 'y = (x^2+1)^0.5-x', f2 = 'y = -1/(4a)', f3 = 'y=1/(4a)', f4 = '';                    //(1-(x+2)^2)^0.5for (var x = xS; x <= xE; x+=0.2) {              a.push([x, taskFun(x)]);          }                                      //存放临时数组                var tmp = [];                                  //显示变换                if (a.length > 0) {                    a = transform.scale(transform.translate(a, 0, 0), scaleX/spaceX, scaleY/spaceY);                     //函数1                    tmp = [].concat(a);                        shape.pointDraw(tmp, 'red');                        tmp = [].concat(a);                        shape.multiLineDraw(tmp, 'pink');                                            plot.setFillStyle('red');                    plot.fillText(f1, 100, -90, 200);                  }                } }  </span>


<span style="font-size:18px;">#题20def tmp20():    c1 = 2+3;    c2 = 2**2+3**2;    c3 = 2**3+3**3;    c4 = 2**4+3**4;    #(c3-pc2)**2 = (c4-pc3)*(c2-pc1);    #c3**2+p**2*c2**2-2*p*c3*c2 = c2*c4+p**2*c1*c3-p*(c2*c3+c1*c4)    coef = [c2**2-c1*c3, c1*c4-c2*c3, c3**2-c2*c4];    print(coef);>>> [-6, 30, -36]if (1) {var equation = new Equation();                    var a = [-6, 30, -36]         equation.quadratic(a);  }方程 6x^[2] + -30x + 36 = 0 =>Δ = b^[2] - 4ac = 36 ;方程的解为:x1 = 2, x2 = 3 ;方程根与系数的关系:x1 + x2 = 5, x1 * x2 = 6 ;</span>




好了,可能及格都难。这些题陷阱相当多,运算量也很大,基本上如果不经过一番大运算,

得到的答案你不用想也知道是错的。


现在阿伟二周目来看这些题,做的那是心惊肉跳的。


本节到此结束,欲知后事如何,请看下回分解。

0 0
原创粉丝点击