凸多面体に於いて、頂点の数をV、辺の数をE、面の数をF、とすると、
V-E+F=2
という関係が成り立つ。
この関係をオイラーの多面体公式、またはオイラーの多面体定理というんだそう。平面グラフに於いても、グラフ全体を取り囲んでいる外側の領域も面の一つと考えれば、同じ関係が成り立つ。
今、頂点の数がV、辺の数がEのグラフGに対し、位数2の体上のV行E列の行列Mを、各頂点を行に、各辺を列に対応させ、頂点が辺の端点となっている時、その頂点と辺に対応する成分を1(但し、ループの辺の端点になっている場合は例外的に0とする)とし、それ以外は0である時、行列MをグラフGの頂点辺行列と呼ぶ事にする。
Mは、ともに位数2の体上の、E次元ベクトル空間からV次元ベクトル空間への準同型写像であり、したがって核ker(M)が定義される。ker(M)の元は、G上の全てのサイクルとそれら全ての組み合わせからなる、E次元ベクトル空間の部分空間となる。
Gが球面グラフ(多面体)であれば、ker(M)の次元dim(ker(M))は、Gの面の数をFとすると、(F-1)に一致する。なぜならば、面はGのサイクルであり、一つの面は残りの全ての面の和で表されるが、その場合を除けば他の面の和で表す事ができず、その一方でG上の任意のサイクルの組は、これら(F-1)個の面の和でいかようにも表す事ができる。
これを、球面グラフに限らず、一般のグラフに拡張できる事に気付いた。すなわち、一般のグラフGに於いて、コンポーネントの数をC、頂点の数をV、辺の数をE、頂点辺行列をM、とするとき、
dim(ker(M))=C-V+E
が成り立つ。
証明は、新しいサイクルができる場合に核の次元が一つ増え、決して減らない事に注意すれば、グラフから辺を一つずつ取り除いて頂点のみとし、今度はその逆順に辺を付け加えていって、コンポーネントの数と次元の変化を比較すれば良い。これはGに多重辺やループがあっても成立する。
オシロの修理したい
そもそもネットオークションでほとんどジャンクのオシロを(3台も)買ったのがいけないんだけど(爆)、暇が全然なくてちっとも修理できない。
1台はアッテネータの問題である事がわかっていて、恐らくソルダクラック。これさえ直せば普通に使えるはず。
1台は煙吹いてそのまま。こっちも故障箇所は電源部とわかっている。交流商用・直流低圧の二電源方式で、交流の方はスイッチングレギュレータのXコンデンサの崩壊。直流の方は通電中に異臭が発生するので故障しているのは間違いないんだけど、はっきりした原因は不明で、調査したいけど暇がなくてできない。しかもアッテネータも壊れている事がわかっている。
最後の1台は、直接パラレルポートを叩いているせいで、単純に古いWindowsでないと動かないPC-DSO。キットのファンクションジェネレータとセットだったので購入した。別に故障はしてないけど、Windows10では全く使えない(笑)。
6502系
去年だったか一昨年だったか、つい衝動買いしてしまったWDCのマイコン。なぜかDigiKeyでは扱っていなくて、Mouserで購入したもの。以前から6502の16ビット拡張版である65816を入手したいと常々思っていたら、6502系はWDCで引き継いでCMOS版のW65C02S/W65C816Sを製造販売していて(ご時世というか、IP版もあるみたい)、ついに購入したというわけ。WDCではW65C02S/W65C816SをコアにしたシングルチップマイコンW65C134S/W65C265Sも作って売っている。
というわけでうっかり、これら4つのMPU/MCUチップを購入、ついでに周辺チップのW65C22S(VIA)と、W65C51N(ACIA)もついでに入手。ブレッドボードで使えるようにとほとんどDIP版を購入。ただMCUだけはDIP版がないので、PLCC版を入手した。DIPとPLCCの他にQFP版も製造されている。65C51は68系のACIAにボーレートジェネレータを内蔵したようなチップだけど、ちょっと制約が多くて使いづらいチップだったかも…。ちなみにチップ名末尾の"S"と"N"は入出力インターフェースがそれぞれCMOSレベル/NMOSレベルであることを意味している。N版は電源電圧5Vのみ対応、S版は2V~5Vの広い電圧範囲で使える。詳しくはデータシート参照の事。
ところで、WDCのページではW65C134Sは最大で8MHz動作という事になっているけど、パッケージの刻印を見る限り、W65C02S/W65C816S同様に最大14MHzで動作するっぽい。ちなみにW65C265Sは最大8MHz動作で、ちょっと残念。
二つのMCU、W65C134SとW65C265Sは、最近のマイコンに比べると少し控え目(アナログ系が全くと言っていいほどない)だけど、パラレルI/O、シリアルI/O、カウンタタイマー、クロックジェネレータ、そして小容量のRAMとROMが統合されている。ROMは残念ながら今流行りのFlashではなくマスクROMなので、オリジナルのコードをROMに入れるにはメーカーに特注するしかない。代わりにデフォルトでは内蔵のUARTをターミナルに接続して使用する簡易モニタープログラムが入っている(ソースも全て公開されている)。そのせいかどうか、MCUには端子設定でI/Oポートをいくつか犠牲にして内蔵MPUのバスラインを引き出すという昔ながらの方法をとる事ができる。なので、オリジナルのコードは外部バス上に自前のROMをつなぐなどすればいいという事らしい(ここも、小ピンのI2C/SPIシリアルROMでブートするという最近の流行りとは違う)。バスラインは本当にそのまま引き出されているので、MPUを止めて外からチップ内のI/Oにアクセスする事すら可能。まぁ、用途はDMAなんだろうけど。DMAコントローラは内蔵されてないけどね。面白い事に、65816は40ピンのパッケージにおさめるために24本のアドレスのうち、最上位の8本はデータバスとマルチプレックスするのに、それをコアにしたW65C265Sではマルチプレックスなしで24本全部を一度に引き出せる。
あ、ちなみに65816は16ビットMPUだけど、データバスは8ビットしかないので、16ビットデータの転送は8ビットデータバスを2サイクルかけて転送してる。
うらやましいぞ。
俺と同じような事を考えてる人ってやっぱりいるんだなぁと思ったが、俺は考えるだけで実行までに届かないが、彼の方は実際に実行するのだから。うらやましいぞ。