剧情提要:
[机器小伟]在[工程师阿伟]的陪同下进入了[九转金丹]之第四转的修炼。
这次要研究的是[复习题]。
正剧开始:
星历2016年04月21日 15:22:06, 银河系厄尔斯星球中华帝国江南行省。
[工程师阿伟]正在和[机器小伟]一起研究[复习题]。
<span style="font-size:18px;">#7 def incomeTax(x): #不用交所得税的上限 bound = 2000; #超过部分 over = x - bound; #应交税额: tax = 0; if over <= 500: tax = over * 0.05; elif over <= 2000: tax = 500*0.05 + (over-500) * 0.1; elif over <= 5000: tax = 500*0.05 + 1500*0.1 + (over-2000) * 0.15; else: pass; return tax;</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, 1); //坐标轴设定 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 = []; //需要显示的函数说明 var f1 = 'y=2x^3-4x^2-3x+1'; //函数描点 for (var x = xS; x <= xE; x+=0.3) { if (x != 0) { a.push([x, funTask(x)]); } } //二分法求函数的零点 //区间的最小值和最大值 var minX = 2, maxX = 4; var y1 = y2 = 0; x = minX; y1 = funTask(x); x = maxX; y2 = funTask(x); //如果在给定区间上存在有零点 if (y1 * y2 < 0) { var epsilon = 0.000001; while (Math.abs(y1-y2) > epsilon) { x = minX; y1 = funTask(x); x = maxX; y2 = funTask(x); x = (minX+maxX)/2; y = funTask(x); if (y * y1 < 0) { maxX = x; } else { minX = x; } } plot.setFillStyle('blue') .fillText('零点:x = '+ ((minX+maxX)/2).toFixed(3), -200, -60, 120); } //存放临时数组 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;"> if (1) { var r = 20; config.setSector(1,1,1,1); config.graphPaper2D(0, 0, r); config.axis3D(0, 0, 0, 180); var transform = new Transform(); var a = 2*r, b = 1*r, h = 4*r; var array = shape.ellipse(a, b); var size = array.length; var topFace = [], bottomFace = []; for (var i = 0; i < size; i++) { topFace.push([array[i][0], array[i][1]]); bottomFace.push([array[i][0], array[i][1]-1.5*h]); } //topFace = transform.flipY(topFace); //bottomFace = transform.flipY(bottomFace); //垂直侧面的处理 var size = topFace.length; var vertFace = []; for (var i = 0; i < size; i++) { vertFace.push([topFace[i][0], topFace[i][1], bottomFace[i][0], bottomFace[i][1]]); } //圆柱 shape.faceDraw(vertFace, 'blue', 1); shape.strokeDraw([].concat(bottomFace), 'pink'); shape.fillDraw([].concat(topFace), 'red'); //圆锥 topFace = transform.scale(topFace, 2); shape.fillDraw([].concat(topFace), 'red'); vertFace = []; for (var i = 0; i < size; i++) { vertFace.push([topFace[i][0], topFace[i][1], 0, 2*h]); } shape.faceDraw(vertFace, 'red', 1); } </span>
<span style="font-size:18px;"> if (1) { var r = 20; config.setSector(1,1,1,1); config.graphPaper2D(0, 0, r); config.axis3D(0, 0, 0, 180); var transform = new Transform(); var a = 6*r, b = 1*r, h = 4*r; var array = shape.nEdge(0, 0, a, 4); var array2 = transform.scale(array, 0.6); var size = array.length; var topFace = [], bottomFace = []; for (var i = 0; i < size; i++) { topFace.push(shape.point3D(array[i][0], h, array[i][1])); bottomFace.push(shape.point3D(array2[i][0], -h, array2[i][1])); } //topFace = transform.flipY(topFace); //bottomFace = transform.flipY(bottomFace); //垂直侧面的处理 var size = topFace.length; var vertFace = []; for (var i = 0; i < size; i++) { vertFace.push([topFace[i][0], topFace[i][1], bottomFace[i][0], bottomFace[i][1]]); } //台柱 shape.faceDraw(vertFace, 'blue', 1); shape.strokeDraw([].concat(bottomFace), 'pink'); shape.fillDraw([].concat(topFace), 'red'); } </span>
<span style="font-size:18px;">>>> 共有64个小正方体。 0面着色的有 8 个面。 1面着色的有 24 个面。 2面着色的有 24 个面。 3面着色的有 8 个面。 4面着色的有 0 个面。 5面着色的有 0 个面。 6面着色的有 0 个面。 #9 正方体着色统计 def cubicPaint(N): #N为每条棱长分割的段数 a = []; for z in range(N): for y in range(N): for x in range(N): a.append([x, y, z]); #print(a); size = len(a); b = [6]*size; #print(b); for i in range(size): for j in range(i, size): xdiff = abs(a[i][0] - a[j][0]); ydiff = abs(a[i][1] - a[j][1]); zdiff = abs(a[i][2] - a[j][2]); #对于相邻的立方体只有一个坐标相差1,其余都相同。 if (xdiff + ydiff + zdiff == 1): b[i]-=1; b[j]-=1; #统计n面涂色的数量。 b1 = [0]*7; for i in range(size): for j in range(7): if (b[i] == j): b1[j]+=1; break; print('共有{0}个小正方体。'.format(size)); for i in range(7): print('{0}面着色的有 {1} 个面。'.format(i, b1[i])); </span>
<span style="font-size:18px;">#题5 >>> 等比数列: [100, 50.0, 25.0, 12.5, 6.25, 3.125, 1.5625, 0.78125, 0.390625, 0.1953125] 前10项和是:199.8046875 >>> 0.1953125/2 0.09765625 >>> 199.8046875*2-100 299.609375 #等比数列 def geometricSequence(a0, q, N): seq = []; for i in range(N): seq.append(a0); a0 *= q; print('等比数列: ', seq); print('前{0}项和是:{1}'.format(N, sum(seq))); #return sum(seq); def tmp(): a0 = 100; q = 0.5; N = 10; geometricSequence(a0, q, N) </span>
<span style="font-size:18px;">#1 def weekday(N): days = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']; return days[N%7]; #2 def fun(x): return 2*x**3-4*x**2-3*x+1; def bisection(xMin, xMax): if fun(xMin)*fun(xMax) > 0: return float('inf'); elif fun(xMin) == 0: return xMin; elif fun(xMax) == 0: return xMax; else: epsilon = 10e-6; while (abs(xMin-xMax)> epsilon): xMid = (xMin+xMax)/2; if (fun(xMid)*fun(xMin)< 0): xMax = xMid; elif (fun(xMid)*fun(xMax) < 0): xMin = xMid; else: return xMid; return xMid; #3 def palindrome(N): s = str(N); size = len(s); if (size < 2): return False; for i in range(size//2): if (s[i] != s[-(i+1)]): print('第{0}位: {1}和{2}不相同'.format(i, s[i], s[-(i+1)])); return False; return True; def tmp(): a = [123, 1234, 1221, 10011001, 132434231]; for i in range(len(a)): print(a[i], '-->', palindrome(a[i])); </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 = 5, spaceY = 1000; var xS = -10, xE = 30; var yS = -5000, yE = 5000; config.axisSpacing(xS, xE, spaceX, scaleX, 'X'); config.axisSpacing(yS, yE, spaceY, scaleY, 'Y'); var transform = new Transform(); //存放函数图像上的点 var a = []; //需要显示的函数说明 var f1 = 'y=1.3*x^3-26.013*x^2+0.975*x-19.50975'; //函数描点 for (var x = xS; x <= xE; x+=0.3) { if (x != 0) { a.push([x, funTask(x)]); } } //二分法求函数的零点 //区间的最小值和最大值 var minX = 20, maxX = 21; var y1 = y2 = 0; x = minX; y1 = funTask(x); x = maxX; y2 = funTask(x); //如果在给定区间上存在有零点 if (y1 * y2 < 0) { var epsilon = 0.000001; while (Math.abs(y1-y2) > epsilon) { x = minX; y1 = funTask(x); x = maxX; y2 = funTask(x); x = (minX+maxX)/2; y = funTask(x); if (y * y1 < 0) { maxX = x; } else { minX = x; } } plot.setFillStyle('blue') .fillText('零点:x = '+ ((minX+maxX)/2).toFixed(3), -200, -60, 120); } //存放临时数组 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 funTask(x) { return 1.3*x*x*x-26.013*x*x+0.975*x-19.50975; }</span>
至此为止。
<span style="font-size:18px;"> if (1) { var r = 20; var stat = new Statistic(); var data = [ [10,7], [10,6], [9,2], // [10,4], [10,2], [12,10], [8,6], // [5,3], [8,2], [6,4], // [18,9], [14,9], [13,8], // [7,3], [11,7], [8,6] ]; text = ['集', '函', '用', '体', '面', '线', '圆', '算', '统', '率', '三', '向', '变', '解', '列', '式']; var len = data.length; var data2 = new Array(len); for (var i = 0; i < len; i++) { data2[i] = 0; for (var j = 0; j < 2; j++) { data2[i] += data[i][j]; } } var sum = 0; for (var i = 0; i < len; i++) { sum += data2[i]; } stat.init(data, '章节', '复习题数', 2); stat.multiBarChart(text, ['A组', 'B组'], -10, 0); plot.setFillStyle('blue') .fillText('总计:'+sum.toFixed(0), 60, 30, 200); } </span>
至此,[人叫板老师]赐给[机器小伟]的主修功法[天地人正册], 小伟已经全部修炼完毕了。
其中共有题:
>>> 245+548+247
1040
[人叫板老师]称其为千人斩。
本节到此结束,欲知后事如何,请看下回分解。
时间: 2024-11-03 20:54:29