縁起担ぎ
当HPがいつもお世話になっているHN「GAI」さんからの出題です。
(令和3年10月11日付け)
Nホテルでは、部屋が、1から1000までの番号が打ってあるが、縁起を担いで、4と9の数字
がある部屋(どちらか1つでも)は使っていないという。
さて、このホテルには、実質何部屋の有効部屋数があるか?
また、その有効部屋数を1000部屋にするには、部屋番号を1からいくつまでの数の通し番
号で処理しておけば良いか?
(答) らすかるさんが考察されました。(令和3年10月11日付け)
前半は、0〜7の値を持つ数字が01235678である変則8進数なので、
1000(8)=512(10)部屋
後半は、 1000(10)=1750(8) なので、右辺の数字を 01234567→01235678 と置き換え
た1860(10)番
GAI さんからのコメントです。(令和3年10月11日付け)
プログラムを使ってやっと見つけていたこの2数が、変則8進数(初めて聞いた。)を使って、
こうも効率よく求まるとはビックリです。4と9を同時に除外するのにこんな手があるんですね。
(コメント) らすかるさん、鮮やかですね!
GAI さんからのコメントです。(令和3年10月12日付け)
上記の 4、9 の数字を避けて調査する場合に、変則8進法(01234567を01235678へ読み替
える)が有効な手段としてとれることがありましたが、この手法が応用できないものかと試して
いたら、次の様に拡張できそうです。
1〜100000 までの連続整数の中に素数 {2,3,5,7} の数字を含まないのもが全部で
何個あるか?
の疑問に対しては、
10個の数 {0,1,2,3,4,5,6,7,8,9} から、上の4個は出現させないのだから、10-4=6進法を利用
すると考える。
すると、 100000(6)=6^5(10)=7776 なので、全部で、7776個ある。
また、そんな整数を 100000 個作り出すには、 100000(10)=2050544(6)
ここで変則6進法として、[012345]->[014689]の数字の読み替えをして、
2050544->4090988
つまり、 1〜4090988の連続整数を準備しておくと、この中からちょうど100000個の、数字
{2,3,5,7} を全く含まない整数が存在することが起きる。
以上で解決できる。