동적 (대화 형) 그래프 (Jupyter + ipywidgets interact)
12845 단어 파이썬Jupyter경기 프로그래밍matplotlib
소재
Educational Codeforces Round 80 A.Deadline htps : // 코데후레세 s. 코 m / 안녕 st / 1288 / p 여과 b m / 아
N, d, x가 1 이상의 양의 정수이고 $ d\leq x $이면 다음을 만족하는 x가 있는지 확인하십시오.
$$ n\geq\left\lceil\frac{d}{x+1}\right\rceil + x $$ 여기서 $\lceil a\rceil$ 는 (가우스 함수가 아닌) a 이상의 최소 정수입니다. 예 (예 : 3.1이면 4, 3이면 3)
정적 그림
문제의 샘플에서 NO, YES가 되는 예를 각각 왼쪽, 오른쪽에 나타낸다. 이것은 단순히 matplotlib 기능을 사용하는 경우에 잘 빨리 거는.
파랑이 $y=n$의 선이고 노랑이 $ y=\left\lceil\frac{d}{x+1}\right\rceil + x $, 녹색은 천장 함수를 적용하기 전의 플롯이다.
이와 같이 나타내면 青の線と黄色の線の交点が存在するかでYES/NOが決まる
를 알 수 있다. (물론 부등식이기 때문에 이것은 자명하지만 ...)
%matplotlib inline
import matplotlib.pyplot as plt
from ipywidgets import interact
import numpy as np
fig, (axL, axR) = plt.subplots(ncols=2, figsize=(10,4))
n,d = 5,11
xaxis = yaxis = 8
x = np.linspace(1, n, num = 100)
y1 = [n] *100
y2 = np.ceil(d / (x + 1) ) + x
y3 = d / (x + 1) + x
axL.plot(x, y1)
axL.plot(x, y2)
axL.plot(x, y3)
axL.set_xlim(0, xaxis)
axL.set_ylim(0, yaxis)
axL.grid(True)
n2,d2 = 5,4
xaxis = yaxis = 8
x2 = np.linspace(1, n2, num = 100)
y21 = [n2] *100
y22 = np.ceil(d2 / (x2 + 1) ) + x2
y23 = d2 / (x2 + 1) + x2
axR.plot(x2, y21)
axR.plot(x2, y22)
axR.plot(x2, y23)
axR.set_xlim(0, xaxis)
axR.set_ylim(0, yaxis)
axR.grid(True)
fig.show()
동적 그림
interact를 사용하면 n, d를 가변으로 움직이는 슬라이더가 생깁니다.
%matplotlib inline
import matplotlib.pyplot as plt
from ipywidgets import interact
import numpy as np
d = 20
n = 20
import math
xaxis = yaxis = 20
nlimit = 20
dlimit = 100
@interact(n=(1, nlimit), d = (1,dlimit))
def f(n, d):
x = np.linspace(1, n, num = 100)
y1 = [n] * 100
y2 = np.ceil(d / (x + 1) ) + (x)
y3 = d / (x + 1) + x
plt.xlabel("x-axis")
plt.ylabel(" y-axis")
plt.plot(x, y1)
plt.plot(x, y2)
plt.plot(x, y3)
plt.xlim(0, xaxis)
plt.ylim(0, yaxis)
plt.grid(True)
plt.figure(figsize=(1,1))
plt.show()
Reference
이 문제에 관하여(동적 (대화 형) 그래프 (Jupyter + ipywidgets interact)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/recuraki/items/664c6bedd9ad623d4e0a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
문제의 샘플에서 NO, YES가 되는 예를 각각 왼쪽, 오른쪽에 나타낸다. 이것은 단순히 matplotlib 기능을 사용하는 경우에 잘 빨리 거는.
파랑이 $y=n$의 선이고 노랑이 $ y=\left\lceil\frac{d}{x+1}\right\rceil + x $, 녹색은 천장 함수를 적용하기 전의 플롯이다.
이와 같이 나타내면
青の線と黄色の線の交点が存在するかでYES/NOが決まる
를 알 수 있다. (물론 부등식이기 때문에 이것은 자명하지만 ...)%matplotlib inline
import matplotlib.pyplot as plt
from ipywidgets import interact
import numpy as np
fig, (axL, axR) = plt.subplots(ncols=2, figsize=(10,4))
n,d = 5,11
xaxis = yaxis = 8
x = np.linspace(1, n, num = 100)
y1 = [n] *100
y2 = np.ceil(d / (x + 1) ) + x
y3 = d / (x + 1) + x
axL.plot(x, y1)
axL.plot(x, y2)
axL.plot(x, y3)
axL.set_xlim(0, xaxis)
axL.set_ylim(0, yaxis)
axL.grid(True)
n2,d2 = 5,4
xaxis = yaxis = 8
x2 = np.linspace(1, n2, num = 100)
y21 = [n2] *100
y22 = np.ceil(d2 / (x2 + 1) ) + x2
y23 = d2 / (x2 + 1) + x2
axR.plot(x2, y21)
axR.plot(x2, y22)
axR.plot(x2, y23)
axR.set_xlim(0, xaxis)
axR.set_ylim(0, yaxis)
axR.grid(True)
fig.show()
동적 그림
interact를 사용하면 n, d를 가변으로 움직이는 슬라이더가 생깁니다.
%matplotlib inline
import matplotlib.pyplot as plt
from ipywidgets import interact
import numpy as np
d = 20
n = 20
import math
xaxis = yaxis = 20
nlimit = 20
dlimit = 100
@interact(n=(1, nlimit), d = (1,dlimit))
def f(n, d):
x = np.linspace(1, n, num = 100)
y1 = [n] * 100
y2 = np.ceil(d / (x + 1) ) + (x)
y3 = d / (x + 1) + x
plt.xlabel("x-axis")
plt.ylabel(" y-axis")
plt.plot(x, y1)
plt.plot(x, y2)
plt.plot(x, y3)
plt.xlim(0, xaxis)
plt.ylim(0, yaxis)
plt.grid(True)
plt.figure(figsize=(1,1))
plt.show()
Reference
이 문제에 관하여(동적 (대화 형) 그래프 (Jupyter + ipywidgets interact)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/recuraki/items/664c6bedd9ad623d4e0a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
%matplotlib inline
import matplotlib.pyplot as plt
from ipywidgets import interact
import numpy as np
d = 20
n = 20
import math
xaxis = yaxis = 20
nlimit = 20
dlimit = 100
@interact(n=(1, nlimit), d = (1,dlimit))
def f(n, d):
x = np.linspace(1, n, num = 100)
y1 = [n] * 100
y2 = np.ceil(d / (x + 1) ) + (x)
y3 = d / (x + 1) + x
plt.xlabel("x-axis")
plt.ylabel(" y-axis")
plt.plot(x, y1)
plt.plot(x, y2)
plt.plot(x, y3)
plt.xlim(0, xaxis)
plt.ylim(0, yaxis)
plt.grid(True)
plt.figure(figsize=(1,1))
plt.show()
Reference
이 문제에 관하여(동적 (대화 형) 그래프 (Jupyter + ipywidgets interact)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/recuraki/items/664c6bedd9ad623d4e0a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)