カテゴリー
共通テスト

共通テストをScratchで解く

山頂の仰角を求める問題

問題は三角関数表を使って解くがプログラムを使えば簡単に求められる。

カテゴリー
共通テスト

循環小数の問題

中学生がこのような問題を解いていました。

分数40/41を少数で表したとき、小数第99位の数字を求めよ。

循環小数を利用して求める問題ですが、面倒なので指定した桁まで割り算をするプログラムを作ってみました。

このプログラムを使えばどんな問題も一瞬で解けます。

指定した桁まで割り算をするプログラム

循環小数表示をする関数電卓もあります。

カテゴリー
共通テスト

数Aの問題をプログラムで解く

最近は数Aの勉強を教えることが多い。問題を見るたびにプログラムで解けば簡単だと思うことが多い。また、プログラミングのとてもよい勉強になりと思う。

この問題もしらみ潰しが簡単だ。

すべての組合せの中から条件に合うものだけを取り出せばよい。

Scratchは変数名に日本語が使えるので便利だ。

カテゴリー
共通テスト

一次不定方程式の整数解を求める

中学生がこんな問題を解いていた。

実際は高1で勉強する数ⅠAで習う内容だが名門の中学校ではもうこんな勉強を始めている。

24x+19y=1 を満たす整数x,yを求めよという問題である。これを解くにはユークリッドの互除法を使うらしい。

数ⅠAを習っていない私には難しい問題である。しかし、とりあえず解いてみたいのでプログラムを作ってみた。

私の大好きなシラミつぶし法を使う。x、yをー100~100まで変化させて条件を満たすx、yを求める。簡単なプログラムである。

答えは一瞬で求められたが、ー100~100の間に8個もあったのに驚く。範囲を広げればきっと解は無限にあるだろう。

つまらない問題である。こんな問題で若者が苦しむのは気の毒だ。解けたからと言って何の喜びもない。

プログラムは小学生でもできるレベルだが、忠実にユークリッドの互除法を使って作っているプログラムをいくつか見つけた。

私がシラミつぶし法を推奨するのはこれで間違いなくすべての解が得られたという安心感だ。

同じ問題をPythonで解いてみた。4行でプログラムが完成する。

for x in range(-100,100):
for y in range(-100,100):
if(24*x+19*y==1):
print(‘x=’,x,’ y=’,y)

結果 同じ結果が得られた。

x= -72  y= 91
x= -53  y= 67
x= -34  y= 43
x= -15  y= 19
x= 4  y= -5
x= 23  y= -29
x= 42  y= -53
x= 61  y= -77
inserted by FC2 system