はいどーもー
乙pyです。
暇なので受験シーズンだし
有名中学の算数の問題をプログラムで解けないかと
思ったりしたわけですね。
インターネットの
Googleで調べたんですが
そこで問題が難しそうな学校を見つけてしまったんですね。
皆さん
難しい中学校って知ってます?
自分は近所の中学校に行ったので
知らないんですけど
問題を解いてみたんですねー
というものの第八弾です。
動画解説はこちら
始めの問題
これも一瞬で解けます。
条件を充しつつ
27で割り切れて、81で割り切れないというものが
1つでも見つかった時点で
プログラムは終了です。
条件の書き方もそこまで難しくはないと思います。
次の問題は
まずは図を把握しろという
難問でした。
図のルールがわかれば
プログラムに落とし込むのは容易です。
要は日本語の問題ですね。
きちんと仕様を理解するというのが
問題のポイント(笑)です。
1のコードは
1回目は入れ替えが起きないので
入れ替えが始まるのは2回目からですね
その分を考慮する必要があります。
一旦数字の並びは
リストに格納し、その並びを求めることとしました。
2のコードは
元の数値の並びを置いておき
入れ替えをするものと並びを比較してあげるだけの
シンプルなコードです。
12個しか数字がないので
元と同じになるのに
12回以上は入れ替えが起きないだろうと
試行回数は減らしています。
3のコードは
単にその回数実行してあげるだけ
ただし、その回数には注意が必要ですね。
図で考えると
すごく難しそう
でもプログラムはシンプル
そんな問題でした。
この問題の図を作るのに
一番時間が掛かるという・・・・
解くのは一瞬
乙pyです。
暇なので受験シーズンだし
有名中学の算数の問題をプログラムで解けないかと
思ったりしたわけですね。
インターネットの
Googleで調べたんですが
そこで問題が難しそうな学校を見つけてしまったんですね。
皆さん
難しい中学校って知ってます?
自分は近所の中学校に行ったので
知らないんですけど
問題を解いてみたんですねー
というものの第八弾です。
動画解説はこちら
始めの問題
これも一瞬で解けます。
for i in range(1,20): st = '2' + '0'*i +'7' if int(st)%27==0 and int(st)%81!=0: print(st) break先頭が2で末尾が7、間が0という
条件を充しつつ
27で割り切れて、81で割り切れないというものが
1つでも見つかった時点で
プログラムは終了です。
条件の書き方もそこまで難しくはないと思います。
次の問題は
まずは図を把握しろという
難問でした。
図のルールがわかれば
プログラムに落とし込むのは容易です。
要は日本語の問題ですね。
きちんと仕様を理解するというのが
問題のポイント(笑)です。
1のコードは
num = [1,2,3,4,5,6,7,8,9,10,11,12] q1 = [] for i in range(1,6): q1 = num num = [num[0],num[6],num[1],num[7],num[2],num[8],num[3],num[9],num[4],num[10],num[5],num[11]] print(q1)
1回目は入れ替えが起きないので
入れ替えが始まるのは2回目からですね
その分を考慮する必要があります。
一旦数字の並びは
リストに格納し、その並びを求めることとしました。
2のコードは
num = [1,2,3,4,5,6,7,8,9,10,11,12] num1 = [1,2,3,4,5,6,7,8,9,10,11,12] q2 = 1 for i in range(1,13): q2 +=1 print(i,num) num = [num[0],num[6],num[1],num[7],num[2],num[8],num[3],num[9],num[4],num[10],num[5],num[11]] if num == num1: print(q2) break
元の数値の並びを置いておき
入れ替えをするものと並びを比較してあげるだけの
シンプルなコードです。
12個しか数字がないので
元と同じになるのに
12回以上は入れ替えが起きないだろうと
試行回数は減らしています。
3のコードは
num = [1,2,3,4,5,6,7,8,9,10,11,12] for i in range(2006-1): num = [num[0],num[6],num[1],num[7],num[2],num[8],num[3],num[9],num[4],num[10],num[5],num[11]] print(num)
単にその回数実行してあげるだけ
ただし、その回数には注意が必要ですね。
図で考えると
すごく難しそう
でもプログラムはシンプル
そんな問題でした。
この問題の図を作るのに
一番時間が掛かるという・・・・
解くのは一瞬