TreeFold

TreeFold[f,tree]

tree の部分木を連続的にたたみ,f を各部分木のデータとその子についての結果のリストの両方に適用する.

TreeFold[f,tree,h]

tree のデータではなく h[tree]f を 適用する.

TreeFold[{f,f-1},tree,h]

f-1を最後のレベルに,f を内側の各レベルに適用する.

TreeFold[f]

木に適用可能なTreeFoldの演算子形を表す.

詳細

  • TreeFoldは,二項演算子 f を使用して部分木を下から上にたたむことでTreeオブジェクトから式を構築する.
  • TreeFoldは木のデータあるいは部分木を一つの値に累積したり削減したりするのに役に立つ.
  • TreeFoldは部分木を深さ優先順(親の前に子をたたむ形)でたたむ. »
  • TreeFold[f,tree,h]h[tree]TreeData[tree]としてよりむしろ f の第1引数として使われる. »
  • tree が葉ならTreeFold[{,f-1},tree,h]f-1[h[tree]]を与える. »
  • TreeFold[f,Tree[data,<|key1tree1,key2tree2,|>]]f[data,<|key1res1,key2res2,|>]を与える.ここで,resiTreeFold[f,treei]の結果である. »
  • TreeFold[f][tree]TreeFold[f,tree]に等しい. »
  • TreeFold[f][tree,h]TreeFold[f,tree,h]に等しい. »

例題

すべて開くすべて閉じる

  (4)

二項関数 f で木をたたむ:

葉の中のデータに g を適用した後で二項関数 f で木をたたむ:

下付き文字でデータを示した葉をハイライトし内側の部分木の周りに枠を加えて木を可視化する:

連想で指定された子を持つ木をたたむ:

スコープ  (9)

葉をたたむ:

子がない内側の葉をたたむ:

子のある木をたたむ:

複数の葉がある木をたたむ:

葉に演算子を適用する:

部分木の特性をたたむ:

子が連想で指定されている木をたたむ:

引数にTreeFoldの演算子形を使う:

2つの引数にTreeFoldの演算子形を使う:

アプリケーション  (11)

立体領域と操作の木をCSGRegionに変換する:

木の葉のデータのネストしたリストを得る:

式の原子から木を構築する:

この木をネストしたリストに変換する:

木の葉のデータを合計する:

木のデータを合計する:

線形回帰の項の木を作る:

線形回帰の項を計算する:

木をTextElementに変換する:

TreeFoldを以下の関数と一緒に使って木の葉の最小レベルを計算する:

木を格子として表示する:

アメリカ合衆国の人口が10万人以上の都市をリストにする:

都市の測地位置に従って,その階層的クラスタリングを与えるグラフを作成する:

クラスタリングの階層をGraphオブジェクトからTreeオブジェクトに変換する:

各葉について,都市の測地位置を階層的クラスタリンググラフの指標から入手する:

クラスタを表す各部分木について,子の空間的中央値を含む木を与える:

各葉の都市の位置と各クラスタの空間的中央値を使って測地位置の木を入手する:

測地位置の木の辺をアメリカ合衆国の地図上に示す:

家系図を作る:

誕生日を与える連想を作る:

2人の人を比べて,第1子が誕生したときに若かった方をその子とそのときの年齢とともに与える関数を定義する:

2人の兄弟を比べて,年長の方をその誕生日とともに与え,加えて彼らの子孫の中で第1子の誕生時に最年少だったものを与える関数を定義する:

子がある結果を前提として,ある人の子孫の中で第1子の誕生時に最年少だったものを与える関数を定義する:

木の中で第1子の誕生時に最年少だったものを,その第1子と誕生時の年齢とともに求める:

特性と関係  (14)

Foldはリストの要素に二項演算子 f を連続的に適用した結果を与える:

TreeFoldは木のデータに二項演算子 f を連続的に適用した結果を与える:

TreeFoldは各子の結果のリストに演算子 f を適用する:

TreeFold[f,Tree[data,None]]data を与える:

TreeFold[{f,f-1},Tree[data,None]]は代りに演算子 f-1をデータ data に適用する:

TreeFold[f,Tree[data,{}]]f[data,{}]を与える:

このことは,たとえ木に子がなくても真である:

TreeFold[f,tree,h]fh[tree]と子の木 treeiについての結果TreeFold[f,treei,h]のリストの両方に適用した結果を与える:

TreeFold[f,tree]TreeFold[{f,Identity},tree]に等しい:

TreeFold[{Tree,Tree[#,None]&},tree]tree に等しい:

TreeFoldはこのデータと結果に関数を適用する:

TreeMapも同じ結果が計算できる:

根の新たなデータはTreeFoldの結果である:

式の頭部から木を構築する:

TreeFoldを使って各部分木の上に親ノードを挿入する:

これは式の引数へのマッピングに相当する:

Mapは,デフォルトで,式の引数にマップされる:

式の原子から木を構築する:

TreeFoldを使って各部分木の前に兄弟ノードを挿入する:

これは,式の部分式へのマッピングに相当する:

MapHeadsTrueである式の中の部分式にマップされる:

TreeFold[{f,f-1},tree]TreeFold[f,TreeMap[f-1,tree,{-1}]]に等しい:

まず,演算子 f-1を木の葉にマッピングする:

次に,内側の部分木に対して演算子 f を使って木をたたむ:

TreeFoldを使って木の深さが計算できる:

TreeFoldを使って木のサイズが計算できる:

TreeFoldを使って木をネストした規則に変換できる:

TreeFoldを使って木の葉から式が作成できる:

おもしろい例題  (2)

シェルピンスキー(Sierpiński)の三角形の第0段階から第3段階の三角形を与えるレベルで木を構築する:

この木から第3段階のシェルピンスキーの三角形を得る:

カントール(Cantor)集合の第0段階から第3段階までの区間を与えるレベルで木を構築する:

この木から第3段階のカントール集合を得る:

Wolfram Research (2021), TreeFold, Wolfram言語関数, https://reference.wolfram.com/language/ref/TreeFold.html (2022年に更新).

テキスト

Wolfram Research (2021), TreeFold, Wolfram言語関数, https://reference.wolfram.com/language/ref/TreeFold.html (2022年に更新).

CMS

Wolfram Language. 2021. "TreeFold." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2022. https://reference.wolfram.com/language/ref/TreeFold.html.

APA

Wolfram Language. (2021). TreeFold. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/TreeFold.html

BibTeX

@misc{reference.wolfram_2024_treefold, author="Wolfram Research", title="{TreeFold}", year="2022", howpublished="\url{https://reference.wolfram.com/language/ref/TreeFold.html}", note=[Accessed: 17-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_treefold, organization={Wolfram Research}, title={TreeFold}, year={2022}, url={https://reference.wolfram.com/language/ref/TreeFold.html}, note=[Accessed: 17-November-2024 ]}