当前位置:网站首页>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
边栏推荐
- Cadence OrCAD capture batch change component packaging function introduction graphic tutorial and video demonstration
- LeetCode异或运算
- Click an EL checkbox to select all questions
- Intersection calculation of straight line and plane in PCL point cloud processing (53)
- Linux64Bit下安装MySQL5.6-不能修改root密码
- go-zero框架数据库方面避坑指南
- Common form verification
- 波场DAO新物种下场,USDD如何破局稳定币市场?
- Handwritten Google's first generation distributed computing framework MapReduce
- R language survival package coxph function to build Cox regression model, ggrisk package ggrisk function and two_ Scatter function visualizes the risk score map of Cox regression, interprets the risk
猜你喜欢
[graph theory brush question-4] force deduction 778 Swimming in a rising pool
Numpy mathematical function & logical function
LeetCode动态规划训练营(1~5天)
Customize timeline component styles
selenium.common.exceptions.WebDriverException: Message: ‘chromedriver‘ executable needs to be in PAT
[graph theory brush question-5] Li Kou 1971 Find out if there is a path in the graph
Fundamentals of programming language (2)
Five minutes to show you what JWT is
堡垒机、跳板机JumpServer的搭建,以及使用,图文详细
Mysql database backup scheme
随机推荐
ArcGIS JS version military landmark drawing (dovetail arrow, pincer arrow, assembly area) fan and other custom graphics
STM32 Basics
SRS deployment
nc基础用法
Computing the intersection of two planes in PCL point cloud processing (51)
Alicloud: could not connect to SMTP host: SMTP 163.com, port: 25
Cadence Orcad Capture CIS更换元器件之Link Database 功能介绍图文教程及视频演示
Customize timeline component styles
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
Es index (document name) fuzzy query method (database name fuzzy query method)
Change the material of unity model as a whole
R language ggplot2 visualization: ggplot2 visualizes the scatter diagram and uses geom_ mark_ The ellipse function adds ellipses around data points of data clusters or data groups for annotation
After route link navigation, the sub page does not display the navigation style problem
NC basic usage
LeetCode动态规划训练营(1~5天)
[graph theory brush question-5] Li Kou 1971 Find out if there is a path in the graph
R语言ggplot2可视化:ggplot2可视化散点图并使用geom_mark_ellipse函数在数据簇或数据分组的数据点周围添加椭圆进行注释
Paper writing 19: the difference between conference papers and journal papers
Use the rolling division method to find the maximum common divisor of two numbers
DNS cloud school | quickly locate DNS resolution exceptions and keep these four DNS status codes in mind