[机器小伟]在[工程师阿伟]的陪同下进入了[九转金丹]之第八转的修炼。设想一个场景:
如果允许你带一台不连网的计算机去参加高考,你会放弃选择一个手拿计算器和草稿本吗
?阿伟决定和小伟来尝试一下用计算机算高考题会是怎样的感觉。
正剧开始:
星历2016年05月26日 16:49:14, 银河系厄尔斯星球中华帝国江南行省。
[工程师阿伟]正在和[机器小伟]一起做着2015年的江苏省数学高考题]。
这一节是是[工程师阿伟]带着[机器小伟]去怀旧高考的收关节点。
所以多少会做几个题来表表心意。
这一年的题难度并不高,大部分很简单,只有少数几个难题撑撑门面,
阿伟给评为5.0环难度,比前几年都要低。
说到高考,重新看了这么多年的高考题,阿伟确立了自己的观点:高考题其实是以调戏大家为目的的。
事实上,这些题在生产、生活中很少有真正派上用场的,也就是说,到了现实生活,你会用其它办法去
获取你需要的数据,而不会有人给自己下套来这样调戏自己的。
打个比方,如果你有5个苹果,又买了4个,你有几个苹果?这个题很简单,生活中经常会需要类似的计算。
但到了高考场上卷子会怎样问你,它会这样问:你原来有的苹果数在x=5和y =3的交点上,现在又买了直线
y = x到直线y = x+4*2^[0.5]的距离的苹果,请问你现在有几个苹果啊?
看出来了吧,这就是调戏,你说实际生活中谁会这样玩。
很多人经受不住这种调戏,崩溃了,从而一生都畏惧数学,但其实,真实的数学是很善意的,并且很有用。
到了今年,据说高考又是一次大改革了,反正就像七年之痒一样,每隔几年都要折腾一下,不去管它啦。
如果你恰巧是今年要参加这种调戏试炼的道友,又恰巧来看到了这篇博文,那阿伟就在此提醒一句,
看完这篇,从下一篇开始就不要看了,因为[机器小伟]即将进入元婴期修炼,而后面的知识是不适合结丹期
道友们修习的。
事实上阿伟倾向于建议:在接下来几日内,保持头脑清醒,清心少欲,让自己的状态达到巅峰境界,多集几段气,
憋几个必杀技,没准到时候就能让自己能多冲个一环半环难度的,也是好几十分的出入。
好了,扯了这么多,还是贴题吧,毕竟,阿伟觉得高考已经人过中年了,正逐渐的日薄西山,以后也不会再看它了。
<span style="font-size:18px;">#题1
def tmp1():
A = set([1,2,3]);
B = set([2,4, 5]);
res = A | B;
print(res, len(res));
>>>
{1, 2, 3, 4, 5} 5</span>
<span style="font-size:18px;">#题2
def tmp2():
A = [4, 6, 5, 8, 7, 6];
print(sum(A)/len(A));
>>>
6.0
</span>
<span style="font-size:18px;">#题3
def tmp3():
z = (3+4j)**0.5;
print(abs(z));
>>>
2.23606797749979</span>
<span style="font-size:18px;">#题4
def tmp4():
S, I = 1, 1;
while I < 8:
S += 2;
I += 3;
print(S)
>>>
7</span>
<span style="font-size:18px;">#题8
def tmp8():
a = math.atan(-2);
ab = math.atan(1/7);
print(math.tan(ab-a));
>>>
3.0</span>
<span style="font-size:18px;">#题11
def tmp11():
a_1 = 1;
a = [];
a.append(a_1);
for i in range(1, 11):
a.append(a[-1]+i+1);
sum_ = 0;
for i in range(len(a)):
sum_ += 1/a[i];
print(a);
print(sum_);
>>>
[1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66]
1.8333333333333333
>>> 20/11
1.8181818181818181
</span>
这个题是个什么意思,阿伟觉得理解不能了。求了一下两个曲线的交点
<span style="font-size:18px;">>>>
step1: ['(1)*x', '(-1)*y', '(1)']
step1: ['(1)*x^[2]', '(-1)*y^[2]', '(-1)']
[['A_[1]', 0], ['B_[1]', 0], ['C_[1]', 0], ['D_[1]', 1], ['E_[1]', -1], ['F_[1]', 1], ['A_[2]', 1], ['B_[2]', 0], ['C_[2]', -1], ['D_[2]', 0], ['E_[2]', 0], ['F_[2]', -1]]
系数数组: [-2.0, -2.0]
解: [-1.]
step1: ['(1)*x', '(-1)*y', '(1)']
step1: ['(1)*x^[2]', '(-1)*y^[2]', '(-1)']
step2: ['(-1)', '(1)*x+(1)']
step2: ['(-1)', '0', '(1)*x^[2]+(-1)']
step3: ['((1)*x+(1))/((-((-1))))']
step3: ['(((((-4)*(((-1))*((1)*x^[2]+(-1)))))^[0.5]))/((2)*((-1)))', '((-((((-4)*(((-1))*((1)*x^[2]+(-1)))))^[0.5])))/((2)*((-1)))']
[[-1.0, 0.0]]
[[-1.0, -0.0]]
step4:
相交点:[-1.0, 0.0]
def tmp12():
solve = StringAlgSolve();
#一次方程
function_1 = alg.strformat(['x', '-y', '1']);
#二次方程
function_2 = alg.strformat(['x^[2]', '-y^[2]', '-1']);
print('step1: ', function_1);
print('step1: ', function_2);
valMap = solve.coefFill([function_1, function_2]);
print(valMap);
#解出的x的根
roots = solve.solveEquationExp2_2(valMap);
#两个方程
f = function_1;
print('step1: ', f);
g = function_2;
print('step1: ', g);
#以下部分是定式,可以不加改动
poly_y_f = solve.coefArray(f, 'y');
print('step2: ', poly_y_f);
poly_y_g = solve.coefArray(g, 'y');
print('step2: ', poly_y_g);
#求方程式<1>的y关于x的表达式
expr_y_root = solve.solvePoly(poly_y_f);
print('step3: ', expr_y_root);
expr_y_root2 = solve.solvePoly(poly_y_g);
print('step3: ', expr_y_root2);
#求相交点的坐标对组
points = [];
points2 = [];
for i in range(len(roots)):