グラフや幾何学の問題や、記述に関するメタ的な問題以外の今までに無い種類の問題について考察する。
【随時更新】解答に必要な機能まとめ - ニート歴10年からの数学日記と【随時更新】計算量の減らし方まとめ - ニート歴10年からの数学日記を使う、必要になり次第付け加えていく。
サンプルを増やすことに注力したい。
『カードがたくさんあり、それぞれのカードに4つの異なるカタカナを記入していきます。
いま、どの2枚を選んでも1つのカタカナだけが一致するようにしたいと思います。ただし、すべてのカードに共通するカタカナがあってはいけません。このようなカードは最大何枚まで増やすことができますか。』
[カード集]の中に、要素を4つ持った[集合]をm個挿入する。[カード集]の中の2つの∩の数 != 0、[カード集]の中の全ての∩の数 = 0。mを最大化するように命令。
いくつか新しい機能が必要だった。集合の集合全体で∪とか∩を作ったり、要素をn個持った集合を宣言したり。あと、カードの内容を一覧で出す時は勝手にABCDで表示してくれたら嬉しい。
『下の(例)のように、(1)〜(3)のルールにしたがった遊びをします。
(1)1段目に1〜12の数字を適当な順に1個ずつ書きならべる。
(2)2段目には1段目のとなり合う2数の差を書きならべる。
(3)2段目の最小の数をすべて□でかこむ。
(例)1段目 6 3 8 2 9 1 11 5 10 4 7 12
2段目 [3] 5 6 7 8 10 6 5 6 [3] 5
このように、いろいろなならべ方をして遊ぶとき、次の各問いに答えなさい。
(問い1)□でかこまれる数が3でその個数が最も多い場合、何個になりますか。
(問い2)□でかこまれる数が最大になるとき、その数を求めなさい。』
リスト1[ , , , , , , , , , , , ]のカブり無しに[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]のカブり無しから12個を挿入。リスト2[n] = (リスト1[n] - リスト1[n+1])の絶対値。
リスト2の最小値 = 3、リスト2の中の最小値の数を最大にするように命令。
リスト2の最小値を最大にするように命令。
命令さえ形式化して伝われば、あとはどう軽くするかでしか無い。
結局、andは「[選択肢]のカブり無しから全て」だし、orは「[選択肢]から1個」。一つ一つの命令は基本的にand。並列化するべき命令をいかに並列であるように記述するかというか、そういう記述法というか図式的な考え方が鍵になってくる。
『ある公園を入り口から周りを1周すると、最初の1/4がのぼり坂で真ん中の1/2がくだり坂で最後の1/4がのぼり坂になっています。
この公園の周りをA君は自転車で、B君は歩いてまわります。A君の自転車はくだり坂では、のぼり坂の倍の速さになりますが、B君の歩く速さは常に一定です。
今、A君とB君が公園の入り口を同時に出発したところ、A君が15周して、B君が12周して同時に公園の入り口に戻ってきました。途中では、A君がB君を追い越したり、逆にB君がA君を追い越したりすることがありましたが、このような追い越しは全部で何回ありましたか。ただし、スタートと到着のときには追い越しはありません。』
まあ普通に考えると、自転車は、最初の1/3の時間で1/4まで進んで、次の1/3で3/4まで進んで、最後の1/3で4/4まで進む。その間に歩きのB君は、A君の4/5のスピードなのでA君が1周するまでに、4/5周している。
最初の1/3の時間の時点では、B君は4/5の1/3なので、4/15。A君の1/4と比べると、4/15=16/60と1/4=15/60なので、B君の方がわずかに長い距離を走っている。しかし次の2/3の時点では、B君は4/5の2/3なので、8/15。A君の3/4と比べると、8/15=32/60と3/4=45/60なので、A君の方が長い距離を走っている。つまりA君は1回追い越して、更にそのままB君はA君が1周終わるまで追いつけない。
次の4/3の時点に至っても、A君は5/4周で、B君は4/5*4/3=16/15周で、5/4=75/60と16/15=64/60なので、B君は追いつけない。そのまま距離は離されて、次にA君とB君が会うのは1周遅れで、A君が5周して、B君が4周した時だ。
しかしその時には、1周遅れのB君を追い抜かず、またスピードが落ちて、B君が先に行き、最初と同じパターンに入る。結果3回A君はB君を追い抜く。
はずなんだが、なぜか答えには訳の分からんことが書いてある。よく考えたらB君はA君を追い越さないし、どういう間違いがあったんだろう。しかし出題者の方が正しいというヒューリスティック(経験的)な判断では俺の方の間違いなんだが、論理的に考えてどうも間違えている気がしないんだよな。このままの問題文と答えなら、新しい種類の問題じゃないかと思うのだけど。
『素数とは、1と自分自身しか約数を持たない2以上の整数です。例えば13は1と13しか約数を持たないので素数ですし、9は1と9以外に3を約数に持つので素数ではありません。
次のようなゲームをします。
はじめに算数の先生が、4以上200以下の素数でない整数を1つ黒板に書きます。先手はその整数の約数(ただし、1とその整数自身を除く)を1つ決めて黒板の整数から、決めた約数を引いた差に、黒板の整数を書き換えます。
後手は、その書き換えられた整数の約数(ただし、1とその整数自身を除く)を1つ決めて黒板の整数から、決めた約数を引いた差に黒板の整数を書き換えます。これを交互に繰り返して黒板に約数を書いた方が勝ち、というものです。
(例)
はじめに先生が黒板に12を書いた場合
先手が約数のうち3を選び数字を9(=12-3)にする
後手が約数のうち3を選び数字を6(=9-3)にする
先手が約数のうち3を選び数字を3(=6-3)にすると、
3は素数なので先手の勝ち
(問い1)はじめに先生が書いた整数が次の(あ)〜(え)のとき、先手必勝となるのはどれですか記号で答えなさい。
(あ)6
(い)8
(う)9
(え)24
(問い2)はじめに先生が黒板に書く4以上200以下の整数のうち、先手必勝となる整数は全部で何個ありますか。』
一つ前のも答えを見てから考えたのだけど、これも案の定答えを見た。
で、これは難しくて、まず黒板の数字を
の3つのグループに分ける。
奇数の場合は、素数で無い限り、これはどうやっても2番目のパターンに行く。例えば3*5は、3を引いても5を引いても2番目のパターンに行く。
で2番目のパターンは、1番目のパターンを相手に強制することができる。と同時に最後には素数を出して勝つことができる。
なので1番目のパターンだったら後手必勝、2番目のパターンだったら先手必勝。
3番目のパターン、つまり、4、8、16、32、64、128の時。数を半分にしないと、相手に2番目のパターンを渡してしまうことになる。
4は先手必勝で、8は後手必勝、以下交互に続いていく。
よって先手必勝となるのは、4、16、64、そして2番目のパターン。
その個数は、1〜200の偶数全体から、2、8、32、128を引けば良い。100-4=96個。ということらしい。
ゲームの問題は本当に難しい。相手の手を封じるか、封じれなければ全通りで出すか、のどちらかなのかな。