またまた数字のトリビアの検証です

解説動画はこちら




最初のトリビアは
数字のトリビア.007




初めのトリビアは
数字のトリビア.011

きれいに1が並ぶピラミッドのような
かけ算の方法です。

桁が増えるごとに
1
12
123

と数を増やして行き
そこに9をかけて元の数より1大きい数を足します。

すると綺麗に1が並ぶピラミッドが形成されます。

コードは
for i in range(1,10):
    tmp = ''
    for j in range(1,i+1):
        tmp+=str(j)
    print('{0: 11} * 9 + {1:02}'.format(int(tmp),i+1), int(tmp)*9 +i+1)

結果は:

1 * 9 + 02 11
12 * 9 + 03 111
123 * 9 + 04 1111
1234 * 9 + 05 11111
12345 * 9 + 06 111111
123456 * 9 + 07 1111111
1234567 * 9 + 08 11111111
12345678 * 9 + 09 111111111
123456789 * 9 + 10 1111111111

となります。

お次は
数字のトリビア.012

これも似たようなかけ算です。

かける数字は1を桁分用意して、それを二乗するような形になります。

コードは
for i in range(1,10):
    a = int('1' *i)
    print('{0: 10} * {0: 10} = '.format(a) , a*a)


結果は:
1 * 1 = 1
11 * 11 = 121
111 * 111 = 12321
1111 * 1111 = 1234321
11111 * 11111 = 123454321
111111 * 111111 = 12345654321
1111111 * 1111111 = 1234567654321
11111111 * 11111111 = 123456787654321
111111111 * 111111111 = 12345678987654321

先ほどとは真逆で、1の連続を掛け合わせると
どんどん数字が重なって行きます。

次のトリビアは
数字のトリビア.013

宴会や合コンで使えるテクニックです。

まずは365日分の文字を用意します。
nums = []
for m in range(1,13):
    for d in range(1,32):
        if m==2 and d>28:
            continue
        elif m in (4,6,9,11) and d==31:
            continue
        nums.append('{0:02}{1:02}'.format(m,d))
次に
その文字を使って1年分の検証をします。

上記操作をすると
最後に相手に答えてもらった数字から225を引くと
相手の誕生日になるということです。

for day in nums:
    m = int(day[0:2])
    d = int(day[2:4])
    m2 = m * 4
    m3 = m2 + 9
    m4 = m3 * 25
    m5 = m4 + d
    answer = m5 -225
    print(day , answer)
結果は全部同じ日になります。

これでうまいこと
誕生日を知ることができるわけです。

まあ最初は
郵便番号とかしか
聞いてはダメでしょうねwww


次は

数字のトリビア.014

人と人との出会いが
いかに奇跡的なことかというお話です。
res=1
for num ,name in zip([1,60,60,24,365,50],['秒','分','時間','日','年','50年']):
    res*=num
    print('{0}は{1}秒'.format(name , res))
秒は1秒
分は60秒
時間は3600秒
日は86400秒
年は31536000秒
50年は1576800000秒

1秒に1人出会えても
50年で15億人しか出会うことはでき無いのです。

地球の全人類と出会うには
250年は掛かりそうです。

なので人生にの出会いというものは
奇跡なのだよという、ちょっと哲学的なお話です。


さて最後のトリビアは
数字のトリビア.015


組み換えが気持ちいーー
6桁の数字が有ります

それは

142857

これに
1から数字をかけて行くと・・・

for i in range(1,8):
    print('142857 * {0}'.format(i) , 142857 * i)

142857 * 1 142857
142857 * 2 285714
142857 * 3 428571
142857 * 4 571428
142857 * 5 714285
142857 * 6 857142
142857 * 7 999999

はい、結果は同じ数字が入れ替わります。
7までかけたら終了ですね。

いやー気持ちいい