2022年09月08日

倍数判定法と大村周平さんの動画など紹介

少し前のことになりますが、Pyraminx_tanoc さん8月19日のツイートに "19 の倍数の判定法"が紹介されていました。19 = 20 - 1 であることを利用した判定法ですね。

つまり、21 = 20 + 1 なので同様に行うと、”調べたい自然数の1の位の数字と10の位以上で分け、1の位の数字を2倍し、10の位以上を1/10 にして大きい数から小さい数を引く”ことによって、0 または 21 になったら 21 の倍数です。

63 なら 6 - 3×2 = 0 なので、63 は 21 の倍数、399 も 39 - 9×2 = 21 なので 21 の倍数です。

17 = 20–3 を利用すると操作は”1の位の数字を2倍し、10の位以上を1/10 にしてから 3倍して加える”となります。51 なら 5×3 + 1×2 = 17 なので、51 は 17 の倍数と判定できます。

でも…「1224以下の素数って200あんねん」などと言ってる方は 100以下の素数・合成数は全て把握していますよね。なので、大数を2桁以下に減らして判定する方が現実的と思います。

新聞でも見たことがある有名なネタが 7の倍数の判定法で、”調べたい自然数を下2桁とそれ以上に分け、下2桁の数に、それ以上の数を1/100 にした数を 2倍して加える”操作の結果が 7の倍数なら、元の数も 7の倍数です。

たとえば、3213 なら、32×2 + 13 = 64 + 13 = 77 なので 7の倍数です。もちろん素数大富豪で著名となった 1001 チェックをかけると 3213 - 1001×3 = 210 なので、もっと速く 7の倍数と判定できますが。

この方法の強みはその拡張性で、調べたい自然数を下2桁とそれ以上に分けたあと、

11の倍数:下2桁の数に、それ以上の数を1/100 にした数をそのまま加える。
(100 = 11×9 + 1)
 例:54483→544 + 83 = 627→ 6 + 27 = 33 なので 11の倍数。

17の倍数:下2桁の数と、それ以上の数を1/100 にし、さらに 2倍した数の差を、結果が正となるように取る。
(100 = 17×6 - 2)
 例:4386→43×2 - 86 = 0 なので 17の倍数。

13の倍数:下2桁の数に、それ以上の数を1/100 にし、さらに 4倍した数の差を、結果が正となるように取る。
(100 = 13×8 - 4)
 例:4303→43×4 - 3 = 172 - 3 = 169 = 13^2 なので 13の倍数。

19の倍数:下2桁の数に、それ以上の数を1/100 にし、さらに 5倍した数を加える。
(100 = 19×5 + 5)
 例:4313→43×5 + 13 = 215 + 13 = 228 → 2×5 + 28 = 38 = 19×2 なので 19の倍数。

29の倍数:下2桁の数を 2倍し、それ以上の数を1/100 にし、さらに 3倍にした数の差を、結果が正となるように取る。
(200 = 29×7 - 3)
 例:5017→50×3 - 17×2 = 150 - 34 = 116 = → (1×3 - 16×2)×–1 = 32 - 3 = 19×2 = 29 なので 29の倍数。

最後のはさすがに無理がありますね。私はこれまで 29×3 = 87 = 100–13 より、上桁を 13倍して下二桁に足して「しんどいなぁ」と思っていたので、多少は楽になりましたが、それでも実戦投入するにはキツそうです。

引き算よりは足し算の方が絶対に楽で、23 の場合は 8倍して足すのですが (23×4 = 92 = 100 – 8)、これなら意外と可能です。

自転車通勤中に、車のナンバープレート四桁を二桁の数に分けて暗算で掛け算する、というのがここ十年ほどの趣味となっていますが、先日見かけたのが 69-58でした。

69×58 = 69×29×2 = (69–20)×(29+20)×2 = (49^2–20^2)×2 = (2401–400)×2 = 4002、こんなに面倒くさそうな掛け算がシンプルな形になって驚いたものですが、ほんまかいなと思って、58 = 29×2 から、29 の倍数判定をかけました。そのときは 13倍の方を用いたので、40×13+2 = 522 → 5×13+22 = 87 = 29×3 ときれいに 29 の倍数であることが確認できましたが、新型を使えば、40×3–2×2 = 116 = 58×2 = 29×4 もしくは 116→1×3–16×2 = –(32–3) = –29 と 29 の倍数であることが判定できますね。

もちろん、69×58 = 69×(59–1) = (64+5)×(64–5)–69 = 4096(←2^12)–25–69 = 4002 でもいいですね。

いえ、お恥ずかしい、結果からの逆算になりますが、3×23×29 = 2001 は 1001チェックと並ぶ基本的な合成数計算なので、69 (= 23×3) や 58 (= 29×2)を見た時点で、その計算を考えに入れるべきでした。

ちなみに、50付近と 100付近の二乗は (50±a)^2 = 2500±a×100+a^2, (100±a)^2 = 10000±2a×100+a^2 で、気軽に暗算で求められますが、詳細をここに書くのは長くなりすぎるので自粛しておきます。

ルービックキューブ関連とは一切関係のない趣味満開のネタで失礼しました。

上記が長くなりすぎたので、大村周平さんのブログ記事『ロシア-ベラルーシでのWCA大会中止アナウンスを読み解くいくつかのヒント』、SCJ の WCA大会運用方針(動画および pdf)、WCA大会が今後しばらく開催されないことに関する一連のツイート、に関しては紹介するに留めます。そこで引用されていた爲末 大さんのツイート

「その人が本当に現状を変えようとしているかは
 @具体的にどうするか
 A自分ならどうするか
 B何をやらないか
 の三つの質問をしてはぐらかすかどうかで浮き上がります。
 理想的で、自分以外の誰かがやることで、やることとやらないことを選ばなければ、どのようにも言えるからです。」

は本当にその通りだと思います。

私に関しては、WCA大会には無理して参加しない、運営を手助けしたい気持ちはあるけど現状では参加すら無理、ですね。

頑張ってくれている人がつぶれてしまわないことを願います。

続きを読む
posted by じゅうべい at 10:46| Comment(0) | 日記