from fractions import Fraction a = [[Fraction(2), Fraction(3), Fraction(4), Fraction(11)], [Fraction(5), Fraction(2), Fraction(2), Fraction(6)], [Fraction(-1), Fraction(5), Fraction(-1), Fraction(2)]] solve_linear(a)のように実行してみると,
[Fraction(2, 93), Fraction(77, 93), Fraction(197, 93)]と,有理数で答えを得ることができます.入力が有理数ならば誤差なく計算できるので有利ですね.
ただし,有理数型は,
for i in range(0, len(a)):とあるので,iは0からn-1 まで繰り返しますが,たとえば,iが0の時,
for j in range(i + 1, len(a)): erase(a, j, i)でeraseを呼び出すのは,jが1からn-1 まですなわちn-1回となります.iが1増えるごとに呼び出し回数が1減るので,総呼び出し回数は,(n-1)+(n-2)+...+1 となるわけです.高校で習ったとおり,これはn(n-1)/2 となりますね.
mkdir ~/algo18のようにします.そして,ターミナルを開くたびに
cd ~/algo18 jupyter notebookと入力してJupyter Notebookを動かしてください.詳しくは,はいぱーワークブック「14.4 コマンドを使ったファイル操作」を参照してください.
cd ~/algo18を済ませてから,
python vote.py 選択肢番号のように使います.
Jupyter Notebookを使いながら(一旦終了せずに),投票システムも使うには,ターミナルのメニューバーの「シェル」->「新規タブ」を選ぶか,[Command]+[T]で別のタブを開いて(あるいは[Command]+[N]で別のウィンドウを開いて),投票システムを使うことをお勧めします.このあたりのことは,「はいぱーワークブック」の15.4 ターミナルの便利な使い方に書いてあるので参考にしてください.
cd ~/algo18と入力してください.これらの機能を使うと,Jupyter Notebookを抜けずにvoteできます.
ターミナルの基本的な使い方は,はいぱーワークブックの15.2 ターミナルの基本的な使い方を,より高度な使い方は,15.4 ターミナルの便利な使い方を参照してください.
cdというコマンドと「~」の意味は,はいぱーワークブックの14.4 コマンドを使ったファイル操作の14.4.1 ディレクトリを読むと分かります.