当前位置:网站首页>Monte Carlo py solves the area problem! (save pupils Series)
Monte Carlo py solves the area problem! (save pupils Series)
2022-04-23 20:20:00 【Install a sound 77】
Recently, I saw such a topic in my circle of friends , Once again refresh the difficulty of primary school students' question bank .
Excellent young bloggers are in front of excellent young bloggers , The curve problem of this ghost animal can naturally be easily solved by integral , But the title has already limited the level of grade 6 , How can you kill a chicken with an ox knife , Even smart as a blogger ,6 Don't talk about points when you're old ,cos Not at all ,( A female pupil said she could use tan,cos Angle solution ), Therefore, this is obviously too reluctant for the majority of primary school students to understand .
that , From the perspective of primary school students, is there any way to deal with this malicious problem ?
The answer is yes
As for the method , For those who are good at smashing cards Pupils throwing darts , Monte Carlo is obviously perfect for , About introducing and connecting a blog , Please read by yourself .
https://blog.csdn.net/binlin199012/article/details/80604080
First, we draw the outline of the figure , Just pick the part we need .
Then start throwing needles wildly
# Take the radius as 1 The circle of , Take the area calculation in the first quadrant as an example
import random
import math
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.patches import Ellipse, Circle
C=5000# cycles
s=0# Counter
# The field of view of the drawing
plt.xlim(xmax=4,xmin=0)
plt.ylim(ymax=4,ymin=0)
x1=np.arange(0, 4, 0.1)
y1=0.5*x1
plt.plot(x1, y1)
x2 = y2 = np.arange(0, 4, 0.1)
x2, y2 = np.meshgrid(x2,y2)
plt.contour(x2, y2, (x2-4)**2 + (y2-4)**2, [16]) #x**2 + y**2 = 9 Round
plt.show()
for i in range(C):
# Generate random coordinates (x,y)
x=4*random.random()# Generate 0-1 Random number between
#print(x)
y=4*random.random()# Generate 0-1 Random number between
#print(y)
y_predict=-math.sqrt(16-(x-4)**2) + 4
y_predict2=0.5*x
#print(y_predict)
if y_predict>=y and y_predict2>=y and x<=4:# Coordinates y Less than y_predict, It's a round point , That is to meet the conditions , Counter plus 1
s=s+1
plt.plot(x,y,'r+')
else:
plt.plot(x, y, 'b+')
plt.show()
predict_value=16*s/C
print(predict_value)
The injection result is shown in the figure
This is a vote 5000 Time , The calculation result is 1.23 about , Just an approximate solution .
But pupils can say to their teachers “ I can cast it indefinitely to approach the real solution !”
Of course, teachers don't like this “ Because what the computer produces is only pseudo-random , Can't get a real natural pointer ”
But smart pupils have long thought of a solution
“ The air resistance in Brownian motion is purely random , So I just stand high enough , You can get the real frequency by hand casting the pipeline ! ”
版权声明
本文为[Install a sound 77]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/04/202204210551491499.html
边栏推荐
- PCL点云处理之基于PCA的几何形状特征计算(五十二)
- PCL点云处理之计算两平面交线(五十一)
- 使用 WPAD/PAC 和 JScript在win11中进行远程代码执行3
- JDBC database addition, deletion, query and modification tool class
- What is the difference between a host and a server?
- How about CICC fortune? Is it safe to open an account
- 中金财富公司怎么样,开户安全吗
- The market share of the financial industry exceeds 50%, and zdns has built a solid foundation for the financial technology network
- Introduction to link database function of cadence OrCAD capture CIS replacement components, graphic tutorial and video demonstration
- Redis distributed lock
猜你喜欢
AQS learning
Openharmony open source developer growth plan, looking for new open source forces that change the world!
Numpy mathematical function & logical function
Error reported by Azkaban: Azkaban jobExecutor. utils. process. ProcessFailureException: Process exited with code 127
BMP JPEG 图片转换为矢量图像 ContourTrace
Leetcode XOR operation
网络通信基础(局域网、广域网、IP地址、端口号、协议、封装、分用)
Sqoop imports tinyint type fields to boolean type
How to protect ECs from hacker attacks?
16MySQL之DCL 中 COMMIT和ROllBACK
随机推荐
LeetCode动态规划训练营(1~5天)
Wave field Dao new species end up, how does usdd break the situation and stabilize the currency market?
R language uses timeroc package to calculate the multi time AUC value of survival data under competitive risk, uses Cox model and adds covariates, and R language uses the plotauccurve function of time
Azkaban recompile, solve: could not connect to SMTP host: SMTP 163.com, port: 465 [January 10, 2022]
Cadence Orcad Capture CIS更换元器件之Link Database 功能介绍图文教程及视频演示
Numpy Index & slice & iteration
After route link navigation, the sub page does not display the navigation style problem
PIP installation package reports an error. Could not find a version that satisfies the requirement pymysql (from versions: none)
R语言使用caret包的preProcess函数进行数据预处理:对所有的数据列进行BoxCox变换处理(将非正态分布数据列转换为正态分布数据、不可以处理负数)、设置method参数为BoxCox
如何做产品创新?——产品创新方法论探索一
The R language uses the timeroc package to calculate the multi time AUC value of survival data without competitive risk, and uses the confint function to calculate the confidence interval value of mul
Use the rolling division method to find the maximum common divisor of two numbers
Introduction to electron tutorial 3 - process communication
R language uses econocrats package to create microeconomic or macroeconomic map, visualize indifference function indifference curve, customize calculation intersection, and customize the parameters of
PostgreSQL basic functions
PCL点云处理之直线与平面的交点计算(五十三)
波场DAO新物种下场,USDD如何破局稳定币市场?
Change the material of unity model as a whole
Some basic configurations in interlij idea
16MySQL之DCL 中 COMMIT和ROllBACK