求解最近网上的一个数学题,据说这是一道小学六年级的题目:
题目
看过网上很多人解这道题以后,得出结论:这根本就不是小学6年级能解决的问题。
我是用微积分进行计算的,然后采用WolframAlpha计算精确结果,见下图:
采用WolframAlpha计算的精确结果
另外,这个问题还可以用概率求解,但是精确度不够。可能是我的方法有问题吧,希望有大师帮忙修正。
#coding:utf-8
# 作用:求网上一个小学六年级的画图题
# 说明:
# 时间;20181209
import random
import math
from sympy import *
area = 0
shadow = 0
for i in range(123456789):
x = random.uniform(0, 800)
y = random.uniform(0, 400)
curve = 400.0 - math.sqrt(160000.0 - (x - 400) ** 2)
if y < x / 2.0 and x < 400 and y < curve:
shadow = shadow + 1
area = area + 1
rate = float(shadow) / area
print((4 * 8) * rate)
x = symbols('x')
resoult = 16 / 25.0 + integrate((4 - sqrt(16-(x - 4) ** 2)),(x, 8/5.0, 4))
print("正确结果:" + str(resoult))
计算的截图如下:
采用Python进行计算
可以看出数字样本已经比较大了(1亿多),但是随机数产生的误差较大。
另外,今天还看到一种特殊的解法,他采用绘图的方法进行求解的。这款软件(GeoGebra旗下)非常好用,经过测试在Mac下可以正常使用,但是Web端还是有些小问题的。
GeoGebra 旗下的【图形计算器】软件
网友评论