본문 바로가기
프로그램/Python 1000제

Python 273제] 파이썬 EXPRESS CHAPTER 4. Programming 12. p200

by 건티 2024. 4. 11.
728x90

출처 : 반크_독도2023

 

참고풀이]

import turtle
import random
import math

#원하는 위치에 점을 찍는다.
def Jum(s):
    t.color(s)
    t.begin_fill()
    t.up()
    t.goto(x,y)
    t.down()
    t.stamp()
    t.end_fill()

#몬테카를로 시뮬레이션을 이용하여 파이의 값을 계산하기
#사각형과 원을 그린다. 
#원의 반지름 : 1 > 원의 넓이 : PI
#정사각형의 한변의 길이 : 2(반지름**2)
#사각형의 넓이 : 4
#점이 원 내부에 찍힐 확률 :
#(원의 면적)/(사각형의 면적) = PI/4 

#350배 확대하여 값을 구한다. 사각형과 원을 그린다.
t=turtle.Turtle()
t.shape("circle")
t.speed(0)

#그림 그릴 위치를 이동한다
t.up()
t.goto(0,-350)
t.down()
t.hideturtle() #shape를 숨긴다.

t.circle(350) #원그리기

t.forward(350) #사각형 그리기
t.left(90)
t.forward(700)
t.left(90)
t.forward(700)
t.left(90)
t.forward(700)
t.left(90)
t.forward(350)

t.left(90) #중심선 그리기
t.forward(700)
t.left(90)
t.forward(350)
t.left(90)
t.forward(350)
t.left(90)
t.forward(700)

#점을 10000000개 찍는다.
#t.pensize(1)
for i in range(10000000): #10000000
    x=random.randint(-350,350)
    y=random.randint(-350,350)
    
    #(원의 면적)/(사각형의 면적) = PI/4
    #반지름과 정사각형의 한변 길이
    r=math.sqrt(abs(x)**2+abs(y)**2) 
    Pi=3.14124*r**2/(2*r)**2*4
    Chk=3.14124*350**2
    if 3.14124*r**2<=Chk:
        str="red"
        Jum(str)
    else:
        str="blue"
        Jum(str)

    t.up()
    t.goto(50,360)
    t.down()
    t.write(f"PI : {Pi}",font=("휴먼옛체",20))


 

참고풀이 결과]

 

 

 

 

 

 

대한민국의 아름다운 영토, 독도

 

반응형

댓글