西西河

主题:【讨论】给大家出一道初中数学题 -- 迷途笨狼

共:💬66 🌺34 新:
全看树展主题 · 分页首页 上页
/ 5
下页 末页
家园 再贴个蒙特卡洛程序

n=10000;

l=20;

num=0;

for i=1:n

x=rand(1,2);

if x(2)<sqrt(1-x(1)^2)

if x(2)>(sqrt(4-x(1)^2)-sqrt(2))

num=num+1;

end

end

end

S=4*l^2*num/n;

S算出来就是阴影面积

家园 都要算无理积分的,我算了一遍也算错了

数值积分或者蒙特卡洛积分比较靠谱

家园 填个小解释

坐标原点画圆形、正方形,以及对应的“枣核型”

x两个数字,对应了一个二维面上的坐标,生成一万次,坐标将会落在原点中心、变长2的盒子里面

第一个条件是圆形之内,第二个条件要我写就是

(x-(-1))^2 +(y-(-1))^2>2^2

y>sqrt(-x^2-2*x+3)-1

表示了右上角那个“西瓜牙”,是在左下角那个扇形的外面

这个西瓜牙的面积,除以整个正方形的面积,就等于被记录的num数量除以总体的n

还是你的好

家园 退化了

好久没有手算,一个矩阵不满秩已经没有直觉了

家园 我的程序有点问题,没考虑一万次收不收敛

应该在最外面再加一个循环,按照百分之几的收敛率判断一下。

这个问题是有积分的解析解的,俺算了好几遍,极坐标,直角坐标都试了,总是算错,唉,老了。

家园 跑了一次494

不知道这个误差能不能有显式的分析

def con1(x,y):

——return y<np.sqrt(1-x**2)

def con3(x,y):

——return y>(np.sqrt(4-x**2)-np.sqrt(2))

num=0

total = 10**6

for i in range(total):

——x = 2*np.random.rand(1)-1

——y = 2*np.random.rand(1)-1

——if con1(x,y) and con2(x,y):

———— num+=1

S = 2*num/total*(40**2)

print(S,num)

家园 可以的,统计概率那一套

具体俺不怎么记得了,什么大数定律,中心极限定律什么的。

简单粗暴的方法就是设置收敛率,把收敛率设置小一点就好了。

家园 这就不劳你费心了,怎么不追中医贴冷嘲热讽了
家园 当初奥数题应该有解(好像就一个中国选手做出来了)
家园 你两边出丑,我两边嘲讽,

快过去看看,记得不要躲,乖乖回答问题

家园 我忘的很彻底
家园 惊悚

mspaint还能干这个!!

家园 还是忘了好

少则得,多则惑,老子诚不我欺。

最近越来越迷惑了。

惊悚
家园 我今天试了一下用这个画图,惨不忍睹,

东施效颦啊,估计学这个比学解题有意思。

家园 错开时间慢慢顶贴就是
全看树展主题 · 分页首页 上页
/ 5
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河