数学をして、それを医学者に伝えるとき、医学者にもわかる形で伝えなければならない。
そんなとき、1)平易な言葉で説明する。2)図を用いて説明する。などがある。
今回は、図を描く練習として、多角形を描いてみる。
はじめましょうか。
"""
#二次元の不等式で表す
n = int(input()) #不等式の数
inequality =
for i in range(n):
a,b,c = map(int,input().split()) #ax+by<=cの形
inequality.append([a,b,c])
"""
inequality=[[10,0,10], [0,10,10],[-10,0,0], [0,-10,0]]
n = 4
import random
x =
y = []
for i in range(10000000):
num_1 = random.uniform(-25,25)
num_2 = random.uniform(-25,25)
flag = 0
for j in range(n):
if inequality[j][0] * num_1 + inequality[j][1] * num_2 > inequality[j][2]:
flag = 1
break
if flag == 1:
continue
else:
x.append(num_1)
y.append(num_2)
% matplotlib inline
import matplotlib.pyplot as plt
plt.plot(x,y) #点同士を敢えて繋いで図示すると、埋め尽くされやすい
乱数で、色んな座標の点を用意して、不等式を全て満たす点の集合を用意して、プロットする。
(x,y)を線でつないだほうが、点をプロットするだけ、よりも埋め尽くされやすいので、その作戦を採用した。
ちなみに、凸多角形ならば、この線で繋ぐ作戦は通用するが、凹多角形なら、それは出来ない(へこんでいる部分も、塗りつぶすことになるから)
今回の連立不等式から多角形を図示する場合は、凸多角形なのでセーフ。
他にも、(1億回Forループを回した)
inequality=[[10,3,8], [2,9,8],[-10,0,1], [0,-11,4], [9, 9, 9]]
n = 5
inequality=[[10,3,8], [2,9,8],[-10,2,1], [-3,-11,4], [9, 4.9, 9]]
n = 5
もっと点を増やせば、端の方も綺麗になるだろう。(計算時間が増える、、)
8億回まわすとこのように端も直線に。(頂点の部分もきれいにしたいけど、、)
バイバイ!