2015開智先端A大問4(3)(4)をMathematicaでオトナ解き

ここは毎年こういう無理筋の問題を出す。

【問題】
長針と短針の長さが同じ時計があります.どちらの針も,それぞれ一定の速さで動いています.
夜中の0時から昼の12時までの半日の間で時刻を考えます.
但し昼の12時ちょうどは除きます.
(1)(2) 略
(3) この時計から読み取れる時刻が2通りになってしまう時刻は何回ありますか.
(4) (3)の中で,長針と短針の針の間の角が最も大きくなるときの角度は何度ですか.ただし,間の角は180度以下とします.

↓Mathematicaコード(実際に解いているのはFor文の中)
ClearAll["Global`*"]; a = {};
mn[r_] := {IntegerPart[r], Rationalize[r - IntegerPart[r]]};
For[m = 0, m < 12, m++,
 For[n = 0, n < 12, n++,
  If[m != n,
   a = Append[a, Flatten[{m, mn[5 n + y], n, mn[5 m + x],
        Min[360 - Abs[5 n + y - 5 m - x]*6, Abs[5 n + y - 5 m - x]*6], ""}
       /. Solve[{12 x - y == 5 n, 12 y - x == 5 m, 0 < x < 5, 0 < y < 5}, {x, 
         y}]]]]]]
b = a /. 0 -> ""; maxAngle = 0;
For[i = 1, i <= Length[a], i++,
 maxAngle = Max[a[[i, 7]], maxAngle]]
Print["時刻の総数:", Length[a]]
Print["最大の角:", mn[maxAngle][[1]], mn[maxAngle][[2]], "度"]
Print["以下が全ての場合:"]
For[i = 1, i <= Length[a], i++,
 a[[i, 8]] = If[a[[i, 7]] == maxAngle, "(最大)", ""];
 Print["(", i, ") ", ToExpression["0" <> ToString[b[[i, 1]]]], "時",
  b[[i, 2]], b[[i, 3]], "分は", ToExpression["0" <> ToString[b[[i, 4]]]], "時",
  b[[i, 5]], b[[i, 6]], "分とも読め,このとき両針間の小さい方の角度は", " ",
  mn[a[[i, 7]]][[1]], mn[a[[i, 7]]][[2]], "度", a[[i, 8]]]]

↓実行結果

時刻の総数:132

最大の角:166$\frac2{13}$度

以下が全ての場合:

(1) 0時5$\frac{5}{143}$分は1時$\frac{60}{143}$分とも読め,このとき両針間の小さい方の角度は 27$\frac9{13}$度

(2) 0時$10\frac{10}{143}$分は2時$\frac{120}{143}$分とも読め,このとき両針間の小さい方の角度は 55$\frac5{13}$度

(3) 0時15$\frac{15}{143}$分は3時1$\frac{37}{143}$分とも読め,このとき両針間の小さい方の角度は 83$\frac1{13}$度

……(以降略)

— posted by GKT at 09:52 am   commentComment [0]  pingTrackBack [0]

この記事に対する TrackBack URL:

設定によりTB元のページに、こちらの記事への言及(この記事へのリンク)がなければ、TB受付不可となりますのであらかじめご了承下さい。

コメントをどうぞ。 名前(ペンネーム)と画像認証のひらがな4文字は必須で、ウェブサイトURLはオプションです。

ウェブサイト (U):

タグは使えません。http://・・・ は自動的にリンク表示となります

:) :D 8-) ;-) :P :E :o :( (TT) ):T (--) (++!) ?;w) (-o-) (**!) ;v) f(--; :B l_P~ (QQ)

     

[X] [Top ↑]

T: Y: ALL: Online:
ThemeSwitch
  • Basic
Created in 1.4268 sec.
prev
2015.1
next
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31