IQ120関数でも作って遊ぶか
きっかけ
以前Twitterでこんなツイートを見かけました。
これが解けたらIQ120!?
5 + 3 = 28
9 + 1 = 810
8 + 6 = 214
5 + 4 = 19
7 + 3 = ??#解けたらRT
僕「………」
僕「こういうことかな?」
これが解けたらIQ120!?
5 + 3 =
288
9 + 1 =81010
8 + 6 =21414
5 + 4 =199
7 + 3 = ?? 10#解けたらRT
僕「もしかしてIQ120!?というのはIQがということか!?調べたら200桁くらいあったぞ。相当なIQなんだな」
真面目に考えよう
まあ真面目に考えるにあたっての演算子を使われると非常に気持ち悪いので、2つの値から1つの値を計算するということで勝手に関数を作っちゃいましょう。
f(5,3)&=28\\
f(9,1)&=810\\
f(8,6)&=214\\
f(5,4)&=19
\end{align}
このとき、を求めよ
自然数に対してとを計算し、それを連結したものがの値となります。
よっての値は\begin{align}
7-3&=4\\
7+3&=10
\end{align}となるため、これらを連結してとなります。これが解けたならあなたはIQ120です!らしいです!おめでとうございます!
数学好きはすぐ一般化したがる
ところでをとを用いた式で表すことはできるのでしょうか?
鯵坂もっちょさん(冒頭記事リンク参照)が結構楽しそうな関数を作っていたので、せっかくなので僕もチャレンジしてみましょう。
方針
との和と差を用いて連結するので、とりあえず\begin{align}
A&=m-n\\
B&=m+n
\end{align}としちゃいましょう。
そうするともうとの和と差について考える必要が無くなり、とを連結することが次の目標になります。
また、ここではとしておきましょう。
連結ってどうするんや
たとえばとを連結しようと考えた場合、ちゃんと計算すると\begin{align}
&123 \times 100 + 89\\
=&12300 + 89\\
=&12389
\end{align}
ということになります。
ここでにかけられているは、が足されるスペースを確保しているわけですね。
ちなみにとを連結する場合は$$
123\times 1000 + 789
$$となりをかける必要があります。
このように、左に連結する数にかけられる数は、の(右に連結する数の桁数)乗になることがわかります。
桁数ってどうするんや
アイツの出番のようですね。
です。の桁数を求めることができます。
ただしこの関数はがというキレイな数字のときはキレイに桁数(の値)を得ることができますが、そうでない場合は$$
\log_{10}123=2.08\dots
$$のように汚い(?)値になってしまいます。
なので、の桁数を得るには$$
\lfloor\log_{10}B\rfloor+1
$$とすれば良さそうです。というカッコは、中に入っている値を切り捨てて整数にしちゃうすごいカッコです*1。
結局どうなったん
の桁数を得ることができたので、求める値はこうなりますね。$$
A \cdot 10^{\lfloor\log_{10}B\rfloor+1} + B
$$との値を元に戻してみましょう。$$
f(m,n)=(m-n)\cdot 10^{\lfloor\log_{10}(m+n)\rfloor+1} + (m+n)
$$
できた!
遊んでみよう
の値は?(差と和はと)
お?
の値は?(差と和はと)
おお??
もうちょっと適当な値でもやってみましょう。
の値は?(差と和はと)
おおお〜〜〜!!!
みなさんにもこの感動を分かち合いたいのでDesmosのリンクを貼っておきます。
https://www.desmos.com/calculator/r2d8sc6tvz
みんなもとをグリグリ弄って遊ぼう!!(ただし自然数であることとであることに注意)
応用
という制約を外したらどんな感じかな……みたいにマイナスが先頭に来るのが妥当かな。
というか自然数という制約を外して整数全体だったら?というか小数でも似た関数を作れたりするのかな。そのまま連結したらになるのか……小数点が増えちゃった!まあいいか(良くない)。
みたいに頭を巡らせていたら年が開けていました。
あけましておめでとうございます。
補足
自然数とをつなげて新しい数を作ると、$$
A \cdot 10^{\lfloor\log_{10}B\rfloor+1} + B
$$となるのか……普通に使えそう。メモメモ
*1:Desmosに投げて値を計算する際はfloor関数を用いています。意味は同じです。使えるならこのカッコを使ったほうが見栄えがいいかなと思ったのでこちらを使って記事は書いています。