「数学パズル ボルツァーノ=ワイエルシュトラスの定理 1 (2020/08/05)」


数学パズルをしましょう。

0.0~1.0 の範囲にある、ランダムな数値をいくつか用意します。

  例えば円周率の最初の1万桁
3.1415926535897932384626433832795028841971
69399375105820974944592307816406286208998628034825
34211706798214808651...

これを9桁で区切り、1,000,000,000で割ることで
a[0] = 0.141592653
a[1] = 0.589793238
a[2] = 0.462643383
a[10] = 0.342117067
a[100] = 0.59825349
a[1000] = 0.958897069

のようなランダムな数値を約1000個生成する事ができます。



次に、このa[0~1000]を特定の順番で並び替えると
これらの値は0.561814675と言う一点の数値に
収束します。

要素    値      0.561814675との距離
a[1006] 0.564056448 0.00224177299999995
a[1109] 0.560010165 0.00180451000000004
a[529] 0.560290228 0.0015244470000001
a[972] 0.563025494 0.00121081899999997
a[819] 0.562710953 0.000896277999999917
a[470] 0.562230538 0.000415862999999961
a[643] 0.562134914 0.0003202390000000
a[909] 0.562009939 0.000195263999999917
a[422] 0.561809377 0.0000005298000000042
a[329] 0.561814675 0.000000000000000000

これは、自明ではありません。



試しに他の適当な値。
例えば最終目的地として0.1、0.5、0.9などを設定し、
目的地への近さとして要素を並び替えると
↓のようなグラフが出現します。


目的地=0.561814675よりも収束度は悪くなります。



もしa[1]、a[500],a[999]みたいな
シークエンス上に既存の値を
目的地に使っても:



最終的には全てのグラフが0に辿り着きますが、
それまでの過程。
ラインとしての収束度は0.561814675よりも確実に悪くなります。

なぜ0.561814675が収束の最適になるのか。
これは、自明ではありません。





ん・・・・・・まあ。冷静に考えれば、
  0.0~1.0
の範囲をシラミ潰しに
全ての値を調べれば、

そりゃ
どこかに「収束度がミニマムになる
地点があるのはわりと明快なので。

力づくで手当たりしだいに調べれば
収束点を見つける事自体はわりと可能なんですが。^_^;



・・・んが
それをちゃんと証明してみろよ!

と言われたらとたんに難しくなる。(;´Д`)

 これは実は
  ボルツァーノ=ワイエルシュトラス
(Bolzano-Weierstrass)の定理

     ‘every bounded sequence has a
  convergent subsequence’.
  (あらゆる有界なシークエンスは、
 特定の値に収束するサブシークエンスを持つ)

と呼ばれる(数学では)有名な問題です。



具体的には、ボルツァーノ=ワイエルシュトラスの定理は
 0.0~1.0の範囲の数値を有限~無限個
並べれば、それがどのようなパターンであろうとも
必ず
 「シークエンスが一点に向かう収束値の存在、および収束値への単調減少ソートが存在する」
事を保障してくれます。

C#風に記述するとこう
var rand = new System.Random();
const int COUNT = ∞;
double[] randoms = new double[COUNT];
for (int i = 0; i < COUNT; i++)
{
  randoms[i] = rand.Next();
}

//どのようなrandomsにも、必ず収束(任意の狭い範囲εに、無限の個数のrandom[i]が密集する)する一点が存在することを証明せよ。

//ただし変数の数が無限個あるので、全ての値を走査することはできない。
//ゆえにコンピューターではこの問題は解けない。



例えば、さきほど述べた『0.0~1.0の間の数値をシラミ潰しに調べて、収束が一番良くなる場所を求めるアルゴリズム』を作ったとして、
 「ありとあらゆる数列シークエンス」というのは
そのアルゴリズムが最も苦手とする、
最悪の配列を用意してアルゴリズムを麻痺させるように動く事も考えられる。
 (例えば収束しそうでしない、偽の収束点トラップを入れたり)

つまり、そのようなアルゴリズムは、無限に存在する数値パターンに対して
真の収束値を、必ず見つける保障はあるのか。
そこから議論を始めないといけないので
これは決して自明な問題ではない



さらに、シークエンスが無限個数である場合は
個数が多すぎて「シラミ潰し戦法」が使えない。
コンピューターを使ったブルートフォース法で
この問題を解くことはできないのです。



・・・・・あれ。^_^A;;
このボルツァーノ=ワイエルシュトラスの定理
パッと目よりも、証明の難易度はかなり高いヤツ。


だからこそちゃんとボルツァーノ=ワイエルシュトラスの定理
と言う大層な名前がついてるんです。
証明を捻り出すのはかなりの困難。



解けそう~~~で解けない。
でも一生懸命考えたら・・・多分誰でも解ける。
やろうと思えば、それこそ小学生レベルでも理解できる
とてもシンプルでエレガントな証明/解答が存在します。

面白い数学パズルなので、
時間に余裕のある方はぜひやってみてください。

ボルツァーノ=ワイエルシュトラスの問題:
  0.0~1.0の間に、無限の個数のランダム数値を用意したら、
  とある区間[α~β]内に無限の個数の数値が収まってるゾーンができる。
  
  そして区間のサイズ、β-αの値は任意の幅まで狭める事ができる。
   (狭めた後でも、区間[α~β]の間には無限の数値が存在する)
  
  究極的にはβ-α=0。つまりα=βまで狭める事によって
  ただ一点の上に無限の個数の数値が乗ってる収束ポイントがある。
  
  何故でしょう?


次回に続く。




「タングステン 指輪 (2020/07/31)」


タングステンの指輪を購入。

1500円なり。



この指輪・・・重い!!

このサイズで13g。





これだけだとちょっとわかりにくいかもしれませんけど・・・

仮に500mlの標準的なペットボトルに

このタングステン(カーバイド)を目一杯詰めた時の重さが
7.8kgになります。
(水を詰めた場合は当然500g。鉄は3.9kg)

鉄の2倍、水の16倍と聞けば

この指輪サイズで13gと言う数字が
いかに異常な数値を示しているか伝わりますでしょうか。^_^;

実際触ってみると
見た目の大きさと重量が合ってなくてびっくりします。



あとこのタングステン。
(正確にはタングステン・カーバイド。100%純正より"ツナギ"を入れた方が安定する)


異常に硬いです。モース硬度は9。
ダイヤモンドの硬度10の次に硬い物質。

鋼鉄の硬度6.5よりも上なのでペンチじゃ切れません。



そして融点は3380℃。
(鉄は1500℃)

硬い上に、熱にも強い。

タングステンの指輪がうっかり指にハマって抜けなくなると
切断が恐ろしく困難になるので超注意。



まあとにかく。
一般人が、一般のショップの中で買える物の中で
 「もっとも重くて、もっとも硬い物質
がこのタングステン指輪でしょう。


1000円代で買えるちょっとわくわくグッズ♪





「CG エグゼロス 天空寺空 (2020/07/28)」


今日のCG ド級編隊エグゼロスから天空寺空。

もはや定番となった「ToLoveる / リトさん」シリーズですね。



4話目ぐらいから面白くなってきたかな。

正直言って、エロ要素はどうでもいい。規制だらけで何も見えないし。^^A;

この類のアニメは。
いかに盛大にすっころんで、
いかに不自然な体勢で女の子に抱きついて、
視聴者から
   「「「「「「「「「そうはならんやろ」」」」」」」」」」
と怒涛の如くツッコまれる。

この流れが面白いんですわ。