自然数を集合で表すプログラム



0を空集合とし、1以上の自然数を後続型順序数として自然数を生み出すのがペアノの公理である。
今回は任意の自然数を集合で記述してみる。

使う言語はpython3だ。

注意。段落替えを各自するように。

def setmake(number,set):
if number ==0:
return ‘φ’
else:
set = ‘{φ’
for i in range(1,number):
set+=’,’+setmake(i,set)
set+=’}’
return set
print(“自然数を入力してください。”)
number = int(input(‘>> ‘))
set=[] print(setmake(number,set))

結果はこうなる。

再帰的な関数でループを作るのがポイント。for構文でもいい。
ただ、空集合が2^(n-1)こ出現することから分かるように、指数的にループが増えていくので代入は20程度にしておきましょう。

ところで、自然数は容易に集合として表せるが、負の整数や有理数は簡単には集合の形であらわせない。
なぜなら、共に同値類で分割するからだ。
整数なら、(a,b)~(c,d)⇔a-c=b-d
有理数なら、(a,b)~(c,d)⇔a=ck,b=dkとなる有理数kが存在
これにより、単にRの直積の順序対を取ればいいというわけではなく、その部分集合が必要になる。




コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

ABOUTこの記事をかいた人

理科大数学科/数学研究会 趣味:哲学数学クラシックピアノ読書 興味のある分野:数学哲学倫理学宗教学純文学経済学物理学他