APL/J言語:グラフにおける疎分類
もし、ブール型リストbの最後の要素がゼロでなければ、</bの値は必ずゼロでない値になり、また、</bの値がゼロでない値になる場合は必ずbの最後の要素はゼロではない。
従って、bに</\を適用すると、最初の要素以外は無視され、結果は疎分類になります。
cct=: #:@i.@(2: ^ #) NB.完全分類テーブル b=: |: cct 2 3 5 7 b 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 </b 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 </\b 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 y=: (x-3) * (x-5) [ x=: 1 2 3 4 5 6 7 range=: >./ - i.@spread spread=: 1: + >./ - <./ bc=: (range <:/]) y bc;(</\bc);({&'.*' </\bc) NB.棒グラフとグラフ +-------------+-------------+-------+ |1 0 0 0 0 0 1|1 0 0 0 0 0 1|*.....*| |1 0 0 0 0 0 1|0 0 0 0 0 0 0|.......| |1 0 0 0 0 0 1|0 0 0 0 0 0 0|.......| |1 0 0 0 0 0 1|0 0 0 0 0 0 0|.......| |1 0 0 0 0 0 1|0 0 0 0 0 0 0|.......| |1 1 0 0 0 1 1|0 1 0 0 0 1 0|.*...*.| |1 1 0 0 0 1 1|0 0 0 0 0 0 0|.......| |1 1 0 0 0 1 1|0 0 0 0 0 0 0|.......| |1 1 1 0 1 1 1|0 0 1 0 1 0 0|..*.*..| |1 1 1 1 1 1 1|0 0 0 1 0 0 0|...*...| +-------------+-------------+-------+