[从头学数学] 第215节 带着计算机去高考

Posted mwsister

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[从头学数学] 第215节 带着计算机去高考相关的知识,希望对你有一定的参考价值。

剧情提要:
[机器小伟]在[工程师阿伟]的陪同下进入了[九转金丹]之第八转的修炼。设想一个场景:
如果允许你带一台不连网的计算机去参加高考,你会放弃选择一个手拿计算器和草稿本吗
?阿伟决定和小伟来尝试一下用计算机算高考题会是怎样的感觉。

正剧开始:

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


这一年,江苏重新使用了全国卷,并且这张试卷的难度也比较高,可以说,

也是打了考生一个措手不及。因为前两年试题太简单了,各学校又忘了

2003年的滑铁卢之痛了。


不过这次题目的难度前移到客观题部分了,也就说你就算蒙也能蒙点分回来,

后面的大题少了一个,选择题让了两题给填空,大致也就这样了。



总的来说,主观题难度在五环以下,而选择题、填空题却有非常难的。

其实就拿分的容易度来说,这张卷子比03年卷好拿分多了。

但这里还是给它评以5.5环的难度吧,其实阿伟觉得给5环难度更合适。






<span style="font-size:18px;">//题1
	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 = -20, yE = 20;          
        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 = sinx - 1', f2 = 'y = sinx', f3 = '', f4 = '';        
        var  y1 = y2 = 0;
		//(1-(x+2)^2)^0.5
		for (var x = xS; x <= xE; x+=0.2) { 
				y1 = Math.sin(x)-1;
				y2 = Math.sin(x);
				
				a.push([x, y1]);
				b.push([x, y2]);

        }  
          
                  
        //存放临时数组        
        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, '#2288FF');          
                      
            plot.setFillStyle('blue');        
            plot.fillText(f2, 100, -120, 200);          
        }  

    } 
	</span>





<span style="font-size:18px;">//题2
	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.8, spaceY = 0.8;           
        var xS = -10, xE = 10;          
        var yS = -20, yE = 20;          
        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-1)^[2]+(y+1.732)^[2] = 1';
		
		a = shape.nEdge(0, 0, 1, 36);
          
                  
        //存放临时数组        
        var tmp = [];        
                  
        //显示变换        
        if (a.length > 0) {        
            a = transform.scale(transform.translate(a, 1, -1.732), 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;">//题3
	if (1) {
		var mathText = new MathText();
		
		//希腊字母表(存此用于Ctrl C/V
			//ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ
			//αβγδεζηθικλμνξοπρστυφχψω
		
		
		var s = [
			'x^[2] + y^[2] + 100 + 121 + 81 = (2 + 10*10) * 5',
			'x^[2] + y^[2] + 302 = 510',
			'x + y = 50-30 = 20',
			'|x-y| = (208-(400-208))^[0.5] = 4'
			
			
		];
		
		var x =40, y=40;
		var r1 = 40;
			
		var len = s.length;
		for (var i = 0; i < len; i++) {
		
			if (s[i] == '') {
				if (x < 100) {
					x += 300;
					y-=r1*3;
				}
				else {
					x = 20;
					y += r1;
				}
			}
			else {			
				mathText.print(s[i], x, y, '@');
				y+=r1;
			}
		}		
	
	}</span>






<span style="font-size:18px;">//题4
	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 = 90, spaceY = 1;           
        var xS = -720, xE = 720;          
        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 = 2sin(x/3+pi/6)', f2 = 'y = 2sinx', f3 = '', f4 = '';        
        var  y1 = y2 = 0;
		//(1-(x+2)^2)^0.5
		for (var x = xS; x <= xE; x+=10) { 
				y1 = 2*Math.sin(x/3/180*Math.PI+1/6*Math.PI);
				y2 = 2*Math.sin(x/180*Math.PI)
				a.push([x, y1]);
				b.push([x, y2]);

        }  
          
                  
        //存放临时数组        
        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, '#2288FF');          
                      
            plot.setFillStyle('blue');        
            plot.fillText(f2, 100, -120, 200);          
        }  

    } 
	</span>




<span style="font-size:18px;">#题5
def tmp5():
    a = alg.strformat(['x^[0.5]', '(1/3)*x^[-1]']);

    a = alg.strpow_n(a, 10);
    a = alg.strcombine(a);
    print(a);
	
>>> 
['(1)*x^[5.0]', '(3.33333)*x^[3.5]', '(4.999995)*x^[2.0]', '(4.44444)*x^[0.5]', 
'(2.59266)*x^[-1.0]', '(1.03698)*x^[-2.5]', '(0.28812)*x^[-4.0]', '(0.05484)*x^[-5.5]', 
'(0.00684)*x^[-7.0]', '(0.00051)*x^[-8.5]', '(1.7e-05)*x^[-10]']
</span>



<span style="font-size:18px;">#题6
def tmp6():
    P = ['x', 'y'];
    abs_MN = 4;
    abs_MP_2 = ['x^[2]', '4x', '4', 'y^[2]']; #'((x+2)^[2]+y^[2])^[0.5]';
    
    MN = ['4x', '-8'] #'(4, 0)*(x-2, y) = 4x-8

    abs_MP_2 = alg.strformat(abs_MP_2);
    MN = alg.strformat(MN);

    MN_2 = alg.strpow_n(MN, 2);
    MN_2 = alg.strcombine(MN_2);

    MN_2 = alg.minus(MN_2);

    abs_MP_2 = alg.strdot(abs_MP_2, ['16']);
    result = alg.stradd(abs_MP_2 , MN_2);
    result = alg.strcombine(result);
    print(result);

#这个多项式 = 0
>>> 
['(0)', '(128)*x^[1]', '(0)', '(16)*y^[2]']</span>





<span style="font-size:18px;">#题8
def tmp8():
    num = [1, 2, 3];

    answer = 'ABCD';

    for i in range(3):
        a = num[(i)%3];
        b = num[(i+1)%3];
        c = num[(i+2)%3];

        if (abs(a-b) <= abs(a-c)+abs(b-c)):
            print('A');

        if (a**2+1/(a**2) >= a + 1/a):
            print('B');

        if (abs(a-b) + 1/(a-b) >= 2):
            print('C');

        if (math.sqrt(a+3) - math.sqrt(a+1) <= math.sqrt(a+2) - math.sqrt(a)):
            print('D');

        print('----');
		
>>> 
A
B
D
----
A
B
D
----
A
B
C
D
----
</span>





<span style="font-size:18px;">#题10
def tmp10():
	#下面是错误的解答,但是知道哪些思考是错的也重要
	
    #只要所有线路的开头和结尾的序号都不一样,就可以全部连通

    #总连接数
    total = (alg.arrangement(6, 6))**2;
    print(total);

    #目标连接数
    #源
    t_0 = 6*5;
    t_1 = 5*4;
    t_2 = 4*3;
    t_3 = 3*2;
    t_4 = 2*1;

    choice = t_0*t_1*t_2*t_3*t_4;
    print(choice/total); #1/6

    #现在分成三组,左边先任意分,不用管
    #右边要保证任意一组都不能两个头和左边完全一样,
    #至少要有一个不一样

    #0个位置相同
    p_0 = alg.arrangement(5, 5);
    #6个位置只有一个相同
    p_1 = 6 * alg.arrangement(4, 4);
    #6个位置有两个相同,但不能在一组
    p_2 = alg.combination(3, 2)*alg.arrangement(3, 3);
    #有3个相同
    p_3 = alg.arrangement(2, 2);

    res = (p_0+p_1+p_2+p_3)
    total = alg.arrangement(6, 6);
    print(res);
    print(res/total);
	
	#正确答案是8/15,让人吐血的题</span>




<span style="font-size:18px;">#题12
def tmp12():
    BC = 12;
    A = 60;
    B = 45;
    
    tri_ABC = geo.solveTriangle([BC, '?', '?', A, B, '?']);

    AC = tri_ABC[1];
    print(AC);
	
>>> 
9.797958971132712</span>





<span style="font-size:18px;">#题13
def tmp13():
    total = alg.arrangement(9, 9);
    red = alg.arrangement(2,2);
    yellow = alg.arrangement(3, 3);
    white = alg.arrangement(4, 4);

    total /= (red*yellow*white);
    print(total);
	
>>> 
1260.0</span>



<span style="font-size:18px;">#题14
def tmp14():
    a = 70/180*math.pi;
    b = 10/180*math.pi;
    c = 40/180*math.pi;
    
    result = math.tan(a)*math.cos(b)+1.732*math.sin(b)*math.tan(a)-2*math.cos(c);
    print(result);</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 = 1, spaceY = 5;           
        var xS = -10, xE = 10;          
        var yS = -20, yE = 20;          
        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 = log_2(x+1/x+6)-3 <= 0', f2 = '', f3 = '', f4 = '';        
        var  y1 = y2 = 0;
		//(1-(x+2)^2)^0.5
		for (var x = xS; x <= xE; x+=0.2) { 
				y1 = Math.log(x+1/x+6)/Math.log(2) - 3;
				
				a.push([x, y1]);


        }  
          
                  
        //存放临时数组        
        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, '#2288FF');          
                      
            plot.setFillStyle('blue');        
            plot.fillText(f2, 100, -120, 200);          
        }  

    } </span>



<span style="font-size:18px;">#题19
def tmp19():
    AB = AC = BC = 3;
    AE = CP = CF = 1;
    AF = BE = BP = 2;

    A = B = C = 60;

    A1E = AE;

    #设ED 是过E垂直于BP
    DE = 3*1.732/2*2/3;

    #解三角形A1DE
    tri_A1DE = geo.solveTriangle([DE, A1E, '?', '?', '?', 90]);
    #直线A1E与平面A1BP所成的角
    angle = tri_A1DE[3];
    print(angle);
	
>>> 
59.999272219172646
</span>






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

以上是关于[从头学数学] 第215节 带着计算机去高考的主要内容,如果未能解决你的问题,请参考以下文章

[从头学数学] 第214节 带着计算机去高考

[从头学数学] 第219节 带着计算机去高考

[从头学数学] 第211节 带着计算机去高考

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

[从头学数学] 第216节 带着计算机去高考

[从头学数学] 第217节 带着计算机去高考