メチャメチャだけど【随時更新】解答に必要な機能まとめ - ニート歴10年からの数学日記と【随時更新】計算量の減らし方まとめ - ニート歴10年からの数学日記を使って、算数オリンピックについて考察していく。
グラフや幾何学の問題や、記述に関するメタ的な問題以外の今までに無い種類の問題について考察する。
『平太君がA、B、C、D、Eの5枚のカードを持っています。カードはそれぞれちがう色をしています。なおみさんが平太君に質問をして、どのカードが何色かを当てることにしました。
なおみ「Aは赤、Bは白、Cは黄ですか。」
平 太「どれも当たってはいませんが、赤、白、黄のうち、2つの色が5枚のカードの中にあります。」
なおみ「Aは青、Bは黃、Cは白ですか。」
平 太「どれも当たってはいませんが、青、黄、白のうち、2つの色が5枚のカードの中にあります。」
なおみ「Aは白、Cは茶、Eは赤ですか。」
平 太「1つは当たっていますが、残りの2つの色は5枚のカードの中にありません。」
なおみ「Bは緑、Cは桃、Dは青ですか。」
平 太「正しいものはありませんが、どの色も5枚のカードの中にあります。」
この次になおみさんは、一回の質問に3つのカードの色についてだけ聞けるものとして、どのような質問をすれば、5枚のカードの色を当てることができますか。
次の( )にはB〜Eの中から記号を選び、[ ]には色を書きなさい。
なおみ「Aは[ ]、( )は[ ]、( )は[ ]ですか。」
(2通りの正解があります。どちらか1通りだけが正解ならば、半分の点数をあたえます。)』
A ≠ [赤]。
B ≠ [白]。
C ≠ [黄]。
[A, B, C, D, E]は[赤, 白, 黄]の2つを含む。
[A, B, C, D, E]は[赤, 白, 黄]の1つを含まない。
A ≠ [青]。
B ≠ [黄]。
C ≠ [白]。
[A, B, C, D, E]は[青, 黄, 白]の2つを含む。
[A, B, C, D, E]は[青, 黄, 白]の1つを含まない。
[
A = [白]。
[A, B, C, D, E]は[茶, 赤]を含まない。
,
C = [茶]。
[A, B, C, D, E]は[白, 赤]を含まない。
,
E = [赤]。
[A, B, C, D, E]は[白, 茶]を含まない。
]の1つ。
B ≠ [緑]。
C ≠ [桃]。
D ≠ [青]。
[A, B, C, D, E]は[緑, 桃, 青]を含む。
(で、ここからは答えを見たわけだが)
アルファベット[A, B, C, D, E]。
色[赤, 白, 黄, 青, 茶, 緑, 桃]。
[
?? [A = 色[U], アルファベット[X] = 色[V], アルファベット[Y] = 色[W]]の3つ。
,
[A = 色[U], アルファベット[X] = 色[V], アルファベット[Y] = 色[W]]の2つ。
![[A = 色[U], アルファベット[X] = 色[V], アルファベット[Y] = 色[W]]の1つ]。
,
[A = 色[U], アルファベット[X] = 色[V], アルファベット[Y] = 色[W]]の1つ。
![[A = 色[U], アルファベット[X] = 色[V], アルファベット[Y] = 色[W]]の2つ]。
,
![[A = 色[U], アルファベット[X] = 色[V], アルファベット[Y] = 色[W]]の3つ]。
]の1つ。
?? 全ての可能性において、[U, V, W, X, Y]を[A, B, C, D, E]が1通りに定まるように設定。
[結果]における[色[U], アルファベット[X], 色[V], アルファベット[Y], 色[W]]。
最近つくづく思うが、この記述法は基礎論に留めておくべきだ。読んでいて全然発想のヒントにならない。基礎論の作業においては必要だと考えるが。
数学において読みやすい記法があったりしないだろうか。もしあっても後悔はしない。贅沢な学習法だと自分では思う。
『1年生から6年生までの児童が1人ずついます。
彼らが1列にならんでお菓子をもらうことになりましたが、上の学年の人が下の学年の人よりも前にいると、後ろの人から文句が1回出ます。1つの並び方に対して、出る文句の総数を「文句数」と呼ぶことにします。ただし、同じ人から2回以上文句が出ることもあります。
例えば、右のように並ぶと「文句数」は4になります。
では、「文句数」が7となるような並び方は何通りありますか。
(例)
(前)←1年生 4年生 3年生 2年生 6年生 5年生
文句数 0回 0回 1回 2回 0回 1回 文句数は4』
列[要素が6個のリスト] ← 全部 ← [1, 2, 3, 4, 5, 6]のカブり無し。
[カウント] ← 0。
[文句数] ← 0。
[
[文句数] ← +[[列]の@[? < カウント]の[[列][カウント] < ?]の数]。
[カウント] ← +1。
]
〜[カウント] = 6。
[文句数] = 7。
[結果]における[列]の数。
答えを見ると、2人の場合、3人の場合など、人数が少ない方から調べて、2人の場合は文句数0が1、文句数1が1。3人の場合は、文句数0が1、文句数1が2、文句数2が2、文句数3が1。4人の場合は1、3、5、6、5、3、1。これは3人の場合(1221)が2人の場合(11)を3つ重ね合わせたような数になっているのと同じように、3人の場合を4つ重ね合わせたような数になっている。
こういうパターンを掴んで答えまで至る。答えは101なんだそうだ。
こういう前方向に並んだフローの問題について、並列化やルールを使うというのは、定石ということで良かったりするんだろうか。
『A、B、C、Dの4人が、ある2ケタの整数の性質について、次のように2つずつ発言しています。しかし、あとになって4人とも正しい発言をしたのは1つのみで、残りのもう一つの発言は誤りであることが分かりました。
ある2ケタの整数とはいくつですか。
A 「2で割ると1余る」、「3で割ると2余る」
B 「4で割ると3余る」、「5で割ると4余る」
C 「6で割ると5余る」、「7で割ると6余る」
D 「8で割ると7余る」、「9で割ると8余る」』
[A = 2 * ? + 1, A = 3 * ? + 2]の1つ。
![[A = 2 * ? + 1, A = 3 * ? + 2]の1つ]。(こういうのって何か便利な表し方無いかな)
[A = 4 * ? + 3, A = 5 * ? + 4]の1つ。
![[A = 4 * ? + 3, A = 5 * ? + 4]の1つ]。
[A = 6 * ? + 5, A = 7 * ? + 6]の1つ。
![[A = 6 * ? + 5, A = 7 * ? + 6]の1つ]。
[A = 8 * ? + 7, A = 9 * ? + 8]の1つ。
![[A = 8 * ? + 7, A = 9 * ? + 8]の1つ]。
[結果]におけるA。
「4で割ると〜」と「6で割ると〜」は「2で割ると〜」を含んでいて(つまりそれが選ばれたら2で割ると〜も選ばれる)、「8で割ると〜」は「4で割ると〜」を含んでいる。また「6で割ると〜」と「9で割ると〜」はそれぞれ「3で割ると〜」を含んでいる。
こういう条件同士が含み合うようなのが、パターンとしてあるんじゃないかと思ったので書き残しておいた。