adminXY平面に無限に広がる抵抗ネットワークに対し、任意の両点(格子点)間の抵抗値を求める問題。自分は大学では電子工学を勉強したのに解けない。任意の両点だが、無限に広がっているので、原点をどこに取っても同じはず。そこで、両点の片方を原点にし、原点からの抵抗値を求めるというのが本問題。1Ωとは隣接両点間の線分の抵抗値。ネット上を調べたら、(0,0)と(1,0)間の抵抗値は0.5Ωとなる解説は多いが、ほとんどが事後解釈の領域を出ない。(0,0)と(1,1)間の抵抗値が分かるのであれば、はじめて本物と認めてあげたい気持ちになる。自分の知識では全く歯が立たないので、一生懸命ネットを調べた。すごいことにそれを計算した論文をついにみつけた。lattices細かい中身はご自身でみてもらうことにして、必要な計算式と計算結果の一部を紹介しておく。変数nとpはそれぞれy座標、x座標と考えてよい。対称性があるから、入れ替えても計算結果は同じになるはず。(5,5)までの抵抗値がリストアップされている。(0,0)-(1,1)間の抵抗値は2/Phi=0.637Ωになる。円周率Phiがここに出てくる。いうことで、論文を見る限り、数値積分をしないといけなさそう。実際にプログラムを組んで計算してみたら、上記のテーブルに近い値が出てきた。積分部分のプログラム(シンプソン法)は精度が良くないせいか、xとyの対称性に若干の誤差があったりする。UVaの自動判定システムにもAcceptedされていない。単純そうに見えた計算問題に大変複雑な定積分が出てくるとはびっくる。問題文のヒントがとても気になる。うまい計算法はあるような言い方。.最後に、プログラム内に使っている、計算式に関連するコードをピックアップしておく。val;}上のやり方では問題ないように思われるが、確信はまだない。Acceptedされていないし。