
山頂の仰角を求める問題
問題は三角関数表を使って解くがプログラムを使えば簡単に求められる。
山頂の仰角を求める問題
問題は三角関数表を使って解くがプログラムを使えば簡単に求められる。
中学生がこのような問題を解いていました。
分数40/41を少数で表したとき、小数第99位の数字を求めよ。
循環小数を利用して求める問題ですが、面倒なので指定した桁まで割り算をするプログラムを作ってみました。
このプログラムを使えばどんな問題も一瞬で解けます。
循環小数表示をする関数電卓もあります。
中学3年生に問題の解き方を尋ねられた。
その問題は「4人でじゃんけんをするときあいこになるパターンは何通りあるか?」というものであった。とりあえず、真面目に数学的に解くことにした。
あいこになる場合は
ぐう、ぐう、ちょき、ぱあ
ぐう、ちょき、ちょき、ぱあ
ぐう、ちょき、ぱあ、ぱあ の3通りである。
ぐうが2個、ちょき、ぱあがそれぞれ1個ずつの組合せは
4C2✕2=6✕2=12通りある。
同様に他の2つの場合も12通りなので12✕3=36通り が答え!
簡単な問題である。
これをプログラムで解いてみよう。
シラミつぶし法でじゃんけんのすべてのパターンをつくってその中からあいこのものだけをカウントする。
Pythonだと
i=1
for w in (‘a’,’b’,’c’):
for x in (‘a’,’b’,’c’):
for y in (‘a’,’b’,’c’):
for z in (‘a’,’b’,’c’):
s= w+x+y+z
if (‘a’ in s) and (‘b’ in s) and (‘c’ in s):
print(i,’:’,s)
i=i+1
出力結果は
1 : aabc
2 : aacb
: abac
: abbc
35 : ccab
36 : ccba
となり36通りであることが分かる。
Scratchで同じようなプログラムを作ると
これも簡単にできる。
しかし、気分を変えてこの問題をモンテカルロ法で解いてみた。
4個の変数をぐう、ちょき、ぱあの乱数にしてあいこだったらカウントするというやり方で求めてみた。
すぐに36通りに収束した。これはモンテカルロ法のよい使用例になったかも。