巨大数探索スレッド12 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
ヒドラゲームを拡張してみました。
rubyスクリプトです。
http://ideone.com/lg6Udg
通常のヒドラゲームのノードは1種類しかないけどそれを複数種類にしました。
ノードはランクという名前の整数を一つ持っています。
そして通常のヒドラゲームのノードをコピーする操作の後で、
「第n段階で、ランクがrのノードが切り離されたら、ランクがr-1のノードで構成された高さがnのツリーが追加される。」
という操作を追加します。
これにより高さが増えなかった従来のヒドラゲームにくらべて高さも増えることになります。
なかなか自然で強力な拡張が出来たのでは?と思っています。
ちなみにスクリプトは第n段階から第n+1段階に上がるときのインクリメントをコメントアウトしています。
興味がある方はコメントアウトを外してみてください。 >>5を超ヒドラと名付けよう。
そしてランクを整数ではなく超ヒドラノードに拡張することによって真・超ヒドラへと進化します。 ┌──────────┐
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ ↓↓↓↓↓↓↓↓ │
│--------------------│
│ 広 告 │
│--------------------│
│ │
└──────────┘
その他広告を消したかったらなんjorVIPへ
泥 ADGUARD(追加設定あり)他
林檎 adblock(1/24まで無料)(追加設定あり)他
これ他の板に拡散してくれ そのヒドラの大きさはΓ0に届くかどうかぐらいになると思う 返信、早!
もしかして既出でしたか?T△T
既出でも全然おかしくないですが… しかしこれだけデカい関数を定義してもビジービーバーには遥か届かないというね。
ビジービーバー怖すぎw 「停止する特定のアルゴリズム」より、「適当なアルゴリズムの内停止するもの」の上界の方が強いのは当然。 ふぃっしゅ氏著巨大数入門なんてあんのかよ。
時代は進んでるな。 前スレの議論は「定義」という言葉の意味より定義「した」とか定義「できた」とか
定義「できたことを確認した」とか、助詞的な部分で食い違ってるだけっぽい。 超次元空間以降が巨大数論以外で使われる日は来るのだろうか?
超弦理論で11次元がどうこういうみたいに。 ω_α^{CK}→αの次は、順序数崩壊関数ψ^{CK}でいいのかな?φ^{CK}(ω,0)=ψ_I^{CK}(I^ω)なら、ψ_I^{CK}(ω_{I+1}^{CK})は凄くなりそう。 (#,α)[n]=(#,α[n])
(#,0)=(#)+1
他はベクレミシェフの虫と同じ
(1)=ω
(ω)=((1))=ε_0
(ω,ω)=ε_1
(ω+1)=((1,0))=ε_ω
(ω×2)=((1,0,1))=ε_ε_0
(ω^2)=((1,1))=ζ_0
限界は多分ψ_0(Ω_ω) >>17を「Τ_0関数」と名付け、Τ_0関数の中でネスト構造を作る働きをする
Τ_1関数を考える。
Τ_1(0)=1
Τ_0(Τ_1(0))=ω
Τ_0(Τ_1(0,0))=Τ_0(Τ_0(Τ_1(0)))
Τ_0(Τ_1(0,0,0))=Τ_0(Τ_0(Τ_0(Τ_1(0))))
Τ_0(Τ_1(1))=Τ_0(α)→αの最初の不動点
Τ_0(Τ_1(1),Τ_1(0,0,0))=Τ_0(Τ_1(1),Τ_0(Τ_1(1),Τ_0(Τ_1(1),1)))
Τ_0(Τ_1(1),Τ_1(1))=Τ_0(Τ_1(1),α)→αの最初の不動点
Τ_0(Τ_1(1,0,0,0))=Τ_0(Τ_1(1)+Τ_0(Τ_1(1)+Τ_0(Τ_1(1)+1)))
Τ_0(Τ_1(1,0,1))=Τ_0(Τ_1(1)+α)→αの最初の不動点
Τ_0(Τ_1(Τ_1(1)))=Τ_0(Τ_1(α))→αの最初の不動点
厳密な定義は未完成。
同様にΤ_2関数とかΤ_Τ_0(1)関数、Τ_Τ_1(1)関数などを考えることができる。 巨大数を生成するシステムの評価点
表現の分かりやすさ
・使用する字母集合の長さとか構造とか
プログラムの長さ
・これはプログラミング言語にもよる
応用の効きやすさ
・BEAFのもろもろの配列とか 歴史からみるとそうなるのか。
逆にハイパー演算子の拡張でないシステムってなに? 巨大数を作る関数の基本が既存の計算の拡大反復だし、必然とhyper関数と戦術が結果的ににてくるんじゃない
収斂進化的な ふぃっしゅってもろアッカーマン(≒ハイパー演算子)の拡張じゃなかったか? 以下の性質を満たすグラフを「サブツリー」と命名する。
・すべての変に向きがある有効グラフである。
・辺とその向きに従って頂点間を移動するとき、
1回以上の移動で元の頂点に戻ってこられる頂点は1つもない。
・辺とその向きに従って頂点間を移動するとき、
まったく移動できない頂点がただ一つ存在する。
ST(n)を以下の性質を満たすサブツリーの列T_kの最大長とする。
・T_kの頂点の個数と次数はn+k以下である。
・列の中には位相同型的埋め込み可能 である組は1つもない。
関数として成立するかはわかりませんが、成立する場合
弱いツリー数列よりは確実に強くなるはずです。
使えるグラフはシンプルサブキュービックグラフ数より多い(濃度はたぶん同じ)
はずですが、越えられるかは不明です。 >>17の計算方法がよくわからんのやけど。
(1)=(0)(1)=ωでおk? Τ_0(ω)=ε_0
Τ_0(ω,ω)=ε_1
Τ_0(ω,ω,ω)=ε_2
Τ_0(ω+1)=ε_ω
Τ_0(ω+1,ω)=ε_(ω+1)
Τ_0(ω+1,ω,ω+1)=ε_(ω×2)
Τ_0(ω+1,ω+1)=ε_(ω^2)
Τ_0(ω+2)=ε_(ω^ω)
Τ_0(ω+3)=ε_(ω^ω^ω)
Τ_0(ω×2)=ε_ε_0
Τ_0(ω×3)=ε_ε_ε_0
Τ_0(ω^2)=ζ_0=ψ_0(Ω)
Τ_0(ω^2,ω)=ψ_0(Ω+1)
Τ_0(ω^2,ω,ω^2)=ψ_0(Ω+ψ_0(Ω))
Τ_0(ω^2,ω+1)=ψ_0(Ω+ψ_0(Ω)×ω)
Τ_0(ω^2,ω+1,ω^2)=ψ_0(Ω+ψ_0(Ω)^2)
Τ_0(ω^2,ω+2,ω^2)=ψ_0(Ω+ψ_0(Ω)^ψ_0(Ω))
Τ_0(ω^2,ω×2)=ψ_0(Ω+ψ_0(Ω+1))
Τ_0(ω^2,ω^2)=ψ_0(Ω×2)
Τ_0(ω^2+1)=ψ_0(Ω×ω)
Τ_0(ω^2+ω)=ψ_0(Ω×ε_0)
Τ_0(ω^2×2)=ψ_0(Ω×ψ_0(Ω))
Τ_0(ω^3)=ψ_0(Ω^2)
Τ_0(ω^3,ω^2)=ψ_0(Ω^2+Ω)
Τ_0(ω^3,ω^2,ω^3)=ψ_0(Ω^2×2)
Τ_0(ω^3,ω^2+1)=ψ_0(Ω^2×ω)
Τ_0(ω^3,ω^3)=ψ_0(Ω^3)
Τ_0(ω^3+1)=ψ_0(Ω^ω)
Τ_0(ω^ω)はまだ遠い。 ベクレミシェフの虫と同じなら(1)は1にしかならんけど。 Τ_1(1)=Ωとすると、Τ_1(ω)=Ω×ε_0 にしかならない。
Τ_1関数は意外としょぼいかも。
>>31
FGHによる評価のことですか?
Τ関数は順序数から順序数への関数なのでFGHとは無関係です。 ベクレミシェフの虫の話題が出たからプログラム組んでみましたが面白いですねこれ。
最初のリストが[2]ならすぐ終わるのに[2,0]ってしただけで計算終わんないです。
リストの末端が[0,2]のときはstep数をハイパー(step+1)演算子に作用させて大きくさせるって感じなんですかね。
Googologywikiにもあまり詳しく書いてないのはなんででしょう。 ベクレミシェフの虫と同じなら
T_0(n)はnの値に関係無く1にしかならないと思う。 34>>
何を勘違いされているかわかりませんが、とりあえずΤ_0(ω)まで書いておきます。
Τ_0(0)=1
Τ_0(0,0)=2
Τ_0(0,0,0)=3
Τ_0(1)=Τ_0(0,0,0,…)=ω
Τ_0(1,0)=ω+1
Τ_0(1,0,1)=Τ_0(1,0,0,0,…)=ω×2
Τ_0(1,0,1,0,1)=ω×3
Τ_0(1,1)=Τ_0(1,0,1,0,1,0,…)=ω^2
Τ_0(1,1,0)=ω^2+1
Τ_0(1,1,0,1)=ω^2+ω
Τ_0(1,1,0,1,1)=ω^2×2
Τ_0(1,1,1)=Τ_0(1,1,0,1,1,0,1,1,…)=ω^3
Τ_0(2)=Τ_0(1,1,1,1,…)=ω^ω
Τ_0(2,0)=ω^ω+1
Τ_0(2,0,2)=ω^ω×2
Τ_0(2,1)=ω^(ω+1)
Τ_0(2,1,2)=ω^(ω×2)
Τ_0(2,2)=ω^ω^2
Τ_0(3)=ω^ω^ω
Τ_0(4)=ω^ω^ω^ω
Τ_0(ω)=Τ_0(n)=ε_0 >>33
詳しく書いてないってどういうこと?
定義と増加率と例が書いてあるんだから、十分じゃないの?
不十分だと思うなら、自分でどんどん書き足せばいい。 多次元配列は分かるけどテトレーション配列が分かりません。どういうの >>37
プログラムの動作確認のための例が2つじゃ心許なかったって意味です。
そうですね、暇な時にいくつかの気付きを精査してから纏めて書き足してみます。 テトレーション配列って俺もよくわからん。
だれか分かりやすい解説たのむ。 多次元配列の次元を多次元配列であらわすのがテトレーション? >>41
こんなに綺麗に書けるんですね。もうちょっと勉強しなきゃって感じです。 ある言語を対角化した関数を記述できる言語を対角化したらより強い関数ができる、
というのは計算可能レベルでもそうな訳で、当たり前と言えば当たり前か。 線形配列…{a,a,a,a,a…}
高次元配列…{a,b(n)2}
超次元配列…{a,b(n,n,n,n…)2}
テトレーション配列…{a,b(((…((1)1)…1)1)1)2}
BEAFで厳密に定義できてるのってどこまでだっけ? あぁ、FOOTがFOSTに一つの真理述語を追加した強さだと言うのは
SKIコンビネータに神託コンビネータを追加するようなもんなのか。
神託式の追加は神託機械の延長線上にあるようなイメージ。つまりF4とΞ関数の違いみたいな。
とここまで書いて思ったけどそうなるとΞ関数の強さはI^CKくらい? テトレーション次元配列ちょっと分かった。
スカラーで位置が表せるのが線形配列。
例えば(a,b,c)でbの位置は2番目。
線形配列で位置が表せるのが多次元配列。
例えば
[a,b,c
d,e,f
g,h,i]でfの位置は(2,3)。
そして多次元配列で位置が表せるのがテトレーション配列。
たとえばサイズが
[2,2
2,2]のテトレーション配列(位置と同じくサイズも多次元配列で表せる)は16個の要素を持つ。 1辺が10の100次元だと10^100個の要素があるけど、
1辺が10で100テトレーションすると10^^100個の要素になる、ということがわかればよくて、
実際にその要素がどのように並ぶのかを頭の中で想像するのは大変 多次元配列で位置を表せるのはX^X^Xまででテトレーション空間には
届かないんじゃなかろうか? あ、テトレーション次元じゃなくて超次元の話をしちゃってたのかな Googology Wikiのベクレミシェフの虫の[2]のステップ4ゼロ足りなくない? g=[1,0,1,0],b=[0]
Step 4 だから、next(W,m)=g+b+b+b+b+b
で、いいんでないの Τ_0(ω^3+1)=ψ_0(Ω^ω)
Τ_0(ω^3+1,ω^3)=ψ_0(Ω^(ω+1))
Τ_0(ω^3+1,ω^3,ω^3+1)=ψ_0(Ω^(ω×2))
Τ_0(ω^3+1,ω^3+1)=ψ_0(Ω^ω^2)
Τ_0(ω^3+2)=ψ_0(Ω^ω^ω)
Τ_0(ω^3+ω)=ψ_0(Ω^ε_0 )
Τ_0(ω^3+ω,ω^3)=ψ_0(Ω^(ε_0+1))
Τ_0(ω^3+ω,ω^3+ω)=ψ_0(Ω^ε_1)
Τ_0(ω^3+ω^2)=ψ_0(Ω^ψ_0(Ω))
Τ_0(ω^3+ω^2,ω^3+ω)=ψ_0(Ω^ψ_0(Ω+1))
Τ_0(ω^3+ω^2,ω^3+ω,ω^3+ω^2)=ψ_0(Ω^ψ_0(Ω+ψ_0(Ω)))
Τ_0(ω^3+ω^2,ω^3+ω^2)=ψ_0(Ω^ψ_0(Ω×2))
Τ_0(ω^3+ω^2+1)=ψ_0(Ω^ψ_0(Ω×ω))
Τ_0(ω^3+ω^2+ω)=ψ_0(Ω^ψ_0(Ω×ε_0))
Τ_0(ω^3+ω^2×2)=ψ_0(Ω^ψ_0(Ω×ψ_0(Ω)))
Τ_0(ω^3×2)=ψ_0(Ω^ψ_0(Ω^2))
Τ_0(ω^3×2,ω^3×2)=ψ_0(Ω^ψ_0(Ω^3))
Τ_0(ω^3×2+1)=ψ_0(Ω^ψ_0(Ω^ω))
Τ_0(ω^3×3)=ψ_0(Ω^ψ_0(Ω^ψ_0(Ω^2)))
Τ_0(ω^4)=ψ_0(Ω^Ω)
Τ_0(ω^ω)かΤ_0(ε_0 )あたりで「FGH with transfinite ordinals」
と一致するようになるかも。 詳しく調べてはないがΤ_0(ω^3,ω^2,ω^3)=ψ_0(Ω^2×Ω×ψ_0(Ω^2))じゃないの 間違え
Τ_0(ω^3,ω^2,ω^3)=ψ_0(Ω^2+Ω×ψ_0(Ω^2)) 久しぶりに見たらまだあったのか
しかも2月3日に巨大数論更新されてるし >>55
計算しなおしたところ、確かにそうなりました。
Τ_0(ω^4)=ψ_0(Ω^3) となり、
Τ_0(ω^ω)=ψ_0(Ω^ω) になりそうです。
「FGH with transfinite ordinals」と同程度
(じっさいはFGHよりハーディー階層に近い)なら
Τ_0(ω^(ω+1))=ψ_0(Ω^Ω) になるはず。 新しい順序数崩壊関数
Ρ_0(Ρ_0(Ω))=ψ_0(Ω)
Ρ_0(Ρ_0(Ω)×2)=ψ_0(Ω×2)
Ρ_0(Ρ_0(Ω)^2)=ψ_0(Ω^2)
Ρ_0(Ρ_0(Ω)^Ρ_0(Ω))=ψ_0(Ω^Ω)
Ρ_0(ε_(Ρ_0(Ω)+1))=Ρ_0(Ρ_0(Ω+1))=ψ_0(ε(Ω+1))=ψ_0(ψ_1(0))
Ρ_0(Ρ_0(Ω+Ρ_0(Ω)))=ψ_0(ψ_1(Ω))
Ρ_0(Ρ_0(Ω+Ρ_0(Ω×2)))=ψ_0(ψ_1(Ω_2))
Ρ_0(Ρ_0(Ω+Ρ_0(Ω×2+Ρ_0(Ω×3))))=ψ_0(ψ_1(ψ_2(Ω_3)))
Ρ_0(Ρ_0(Ω×ω))=ψ_0(Ω_ω)
Ρ_0(Ρ_0(Ω×Ρ_0(Ω)))=ψ_0(Ω_Ω)
Ρ_0(Ρ_0(Ω^2))=ψ_0(ψ_Ι(0))
定義は未完成。
Ρ_0(Ρ_0(Ρ_0(Ω)))=ψ_0(Ω)とすればもっと強くなり、
同じ方法でさらに強くできる。 >>59
Taranovsky's Cを参考にしたので(定義を知らないので見た目をまねただけですが)
もしかしたら似たような性質があるかもしれません。 どうやらΤ_0(ω^(ω+1))=ψ_0(Ω^(ω+1))になるようです。
そうなるとΤ_0(Τ_1(1))=ψ_0(Ω^Ω)になり、
Τ_1関数の限界もあまり大きくならなさそうです。 Τ関数の定義を微調整。
Τ_1(#,0)=Τ_1(#)+Ω
Τ_0(#,0)=Τ_0(#)+ω
Τ_0(Ω)=ψ_0(Ω^Ω)
Τ_0(Ω,0,Τ_0(Ω))=ψ_0(Ω^Ω)×2
Τ_0(Ω,0,Τ_0(Ω),1)=ψ_0(Ω^Ω)×ω
Τ_0(Ω,0,Τ_0(Ω),ω)=ψ_0(Ω^Ω+1)
Τ_0(Ω,0,Τ_0(Ω),Τ_0(Ω))=ψ_0(Ω^Ω×2)
Τ_0(Ω,0,Τ_0(Ω)+1)=ψ_0(Ω^Ω×ω)
Τ_0(Ω,0,Τ_0(Ω,0,Τ_0(Ω)))=ψ_0(Ω^Ω×ψ_0(Ω^Ω))
Τ_0(Ω,0,Τ_0(Ω,0,Τ_0(Ω),1))=ψ_0(Ω^(Ω+1))
Τ_0(Ω,0,Ω)=ψ_0(Ω^(Ω×2))
Τ_0(Ω,0,Ω,0,Ω)=ψ_0(Ω^(Ω×3))
Τ_0(Ω,1)=ψ_0(Ω^(Ω×ω))
Τ_0(Ω,1,0,Ω,1)=ψ_0(Ω^(Ω×ω×2))
Τ_0(Ω,1,1)=ψ_0(Ω^(Ω×ω^2))
Τ_0(Ω,1,Τ_0(Ω))=ψ_0(Ω^(Ω×ψ_0(Ω^Ω)))
Τ_0(Ω,1,Ω)=ψ_0(Ω^Ω^2)
Τ_0(Ω,2)=ψ_0(Ω^Ω^ω)
Τ_0(Ω,ω)=ψ_0(ε_(Ω+1))=ψ_0(ψ_1(0))
Τ_0(Ω,ω,Ω)=ψ_0(ψ_1(Ω))
Τ_0(Ω,ω+1)=ψ_0(ψ_1(Ω×ω))
Τ_0(Ω,ω+2)=ψ_0(ψ_1(Ω^ω))
Τ_0(Ω,ω×2)=ψ_0(ψ_1(ψ_1(0)))
Τ_0(Ω,ω^2)=ψ_0(ψ_1(Ω_2)) 巨大数を生成するシステムを作る人工(でなくてもいいけど)知能的なやつ
基本
とにかく不特定多数のプログラムを書きまくる。
実行して停止したものから最終的に出力された数を一旦全て採用
大きさを比較して小さい方は捨てる。
ここから自力でいかに効率をあげられるかが勝負どころ。
健全で停止するプログラムを作った場合は、結果だけ求めるのであれば必要ないが、
健全で停止することの証明まで用意してもらうのが望ましい、
というか知識の共有のためには必要不可欠 最終的に出力された数を保存しようと思ったらグーゴルプレックスでも無理でしょ 指数を導入すればいいだけ
表記法も自動で学習、獲得する感じで グーゴルプレックスそのものは指数で書けるけど、グーゴルプレックス程度の
大きさの指数ではぴったりとかけないような数字を書こうとすると、
どうしても10進数で計算する必要があるよ いずれにせよ「実際に計算する」時点でメモリと計算時間の「現実的制限」があるよ 原子の数は限りがあるけど、電場・磁場・重力場とかのパターンとかなら無限の表現ができるよね。
それで計算できたりしないのかな。
一桁上がる毎に半分のフォントにすれば全角に無限桁入るはず
テオヤンセン機構みたいな感じで電磁力の相互作用で計算できるとすごくいい 1万ビット程度の素因数分解もできないのに、巨大数を素直に計算しようなんて無謀すぎる 「将棋の完全解析をするプログラム」ですらできないわけなので
実行して停止したものから最終的に出力された数
というアプローチだとクラス3の数が限界だよ 宇宙が有限で最小の長さがあるという理論が有力である以上、無限のパターンは無理だろ なんだか語弊のある書き方をしてしまったが、実際には巨大数を生成する
プログラムを記憶すればいいのであって
巨大数そのものは記憶しなくてよい、現実的に不可能だし。
人工知能に限らず普通にグーゴロジストの知能にとっても課題となるが、
つぎの二つを学習しなければならない。
効率的な評価方法
・最低限、プログラムを最初から最後まで起動させなくても大きさを
見積もれるようになってほしい。
より強力なシステムの発見
・(現実的な時間内に)発見したシステムが強力であればあるほど、その発見者は
より自由な意志をもっている(ように見える)
計算不可能レベルは言語そのものを開発して殴り会うからまた事情が違ってくる。 なにをもって「大きさを見積もった」とするかだな
実際には「停止するとわかったものの中で最大」がわかればいいので、
ビジービーバー候補である「優勝マシン」の探索を、いかに効率的にしていくか、
という問題に帰着するのかな 簡単な例をあげれば、実際に計算しなくても、
3+3と3^^3を比較してテトレーションのほうが強力だから
3^^3の方が大きい、と評価する感じ、評価方法が健全であることの証明を添えて。
ここまで書いて気付いたけど、この場合の証明って要するに説明するってことだな。 停止するか確認じゃなくてするか証明させればいいじゃん
本当にやったら人間には理解できないのが出てきそうで期待 そもそもみんな証明することしか考えてなかっただろ
ベクレミシェフの虫も、ヒドラも、グッドスタイン数列も、サブキュービックグラフ数も、
停止することを証明するし、でかいことも証明する 3+3と3^^3 程度の複雑さだったらいいけど、
>>66 の「不特定多数のプログラムを書きまくる」というアプローチで期待していることは、
なんかとても複雑なことをやっていてよくわからないけどでかい数ができることを
期待してるわけでしょ。そんなものの大きさをどう評価するかという問題なわけで。
評価するためには、なんらかの物差しとなる「評価する関数」が必要となる。
そして、結局はその「評価する関数」が整然とした関数なのであれば、はじめから
その「整然とした関数」で巨大数を作ればいいので、
「不特定多数のプログラムを書きまくる」というアプローチの出番はない。 とりあえずは、バシク行列数を出力するプログラムと、
ローダー数を出力するプログラムの大小関係を
どうやって比較するのでしょうか >>82
最初から効率よく評価する方法を知っていればいいですけど、
自然数の公理以外は何も知らない状態から始めることを前提としているので。
それに新しい発見のために従来よいとされているやり方から離れるランダムな
要素は多少必要かと。 ランダムな要素で語弊がありそうなので補足
効率のいいやり方を学習したら不特定多数のプログラムを書きまくる必要はありません。 Τ_ω未満ではΤ_0(Τ_1(Τ_2(Τ_3(…))))という構造が出てきて、原始数列の計算法を使うことになる。
Τ_ω以上を定義するにはΤ_0関数の原始数列バージョンを作るか虫のルールだけで計算できるように
Τ_1の計算法を変える必要がある。
後者の場合Τ_1(0)=ψ_0(Ω^Ω) なのにΤ_1(Τ_1(0))≠Τ_1(ψ_0(Ω^Ω))みたいに変なことになるが
前者より定義は簡単で強さも多分変わらない。 サバンナで一番強い動物は何か、ライオンかゾウかそれとも蚊かって話し合ってるときに「答えはサバンナで一番強い動物だ」って言ってるようなものだな。
その命題は偽じゃないけど情報量がないというかそういう答えは求めてない。その動物名が知りたくてみんなやっているわけで。
ラヨ数とかビジービーバーとかもそういうけがある。いいよ、別に手段としてラヨ数というアプローチを使っても。でもそれで一番だと分かったその関数が何だったのかを知りたい >>47
ちょっとC++でソース書いてみたがこんな感じ?
ここからどう巨大数を生み出せばいいかな?
#include<map>
using namespace std;
template<int N>
class T;
template<int N>
bool operator<(const T<N> &a,const T<N> &b);
template<int N>
class T{
public:
map<T<N-1>,int> val;
};
template<int N>
bool operator<(const T<N> &a,const T<N> &b)
{
return a.val<b.val;
}
template<>
class T<0>{
public:
map<int,int> val;
};
int main()
{
T<0> t0;
T<1> t1;
T<2> t2;
t0.val[0]=1;
t1.val[t0]=1;
t2.val[t1]=1;
} ■ このスレッドは過去ログ倉庫に格納されています