Wikipedia
相対類数 (OEIS)
素数 p に対して
A000927 - OEIS100 までの素数
https://oeis.org/A000927/b000927.txt一般の n に対して
A061653 - OEISn = 162 まで
https://oeis.org/A061653/b061653.txt
Wikipediaによると相対類数とは,
と書いたときの, のこと。 は実類数といって,最大実部分体 の類数だそうです.ちなみに,最大実部分体はその名のとおり, の関係にある.
円分体の類数 が素数 で割れるとき, も で割れる(逆も成り立つ)ので,-部分の解析においては相対類数は重要.
こっちが類数?の一覧と思われる (OEIS)
変わり種。類数1のみ(素因数分解が一意な UFD)。
以下のページの結果が役に立ちました.10000までの -分体の相対類数 が得られます.
REL-SUBF.gz という gzip ファイルに圧縮されています(圧縮の必要ある?)
データ形式がひどいので(なぜか十六進),整形する必要あり.以下の Ruby コードを使った.
# http://algo.epfl.ch/~amin/TAB.html # よりダウンロードした REL-SUBF.gz を解凍したファイル SUBF-3-10000 を読み込んで, cl.csv を作成する Ruby コード # # 出力形式: # [素数 p],[相対類数 h_p] # cl_list = [] File.open("SUBF-3-10000") do |io| # 溜めておくバッファ str = [] # 先頭行から数えて何行か i = 0 # 16進法で書かれた Cl_K を読んでいるとき 1, そうじゃないとき 0 state = 0 # 現在の素数 p p = 0 io.each do |line| if line.length == 1 then cl = str.join.split(" ").join cl_list << [p, "0x#{cl}".to_i(16)] #puts cl i = 0 state = 0 str = [] else if i == 0 then a = line.split(" ") p = "0x#{a[0]}".to_i(16) #print "#{p}," else if i >= 2 if i==2 state = 1 str << line elsif state == 1 if line[0] == " " state = 0 str.pop else str << line #.split(" ").join end end end end i += 1 end end end File.open("cl.csv", "w") do |io| cl_list.each do |tuple| io.puts "#{tuple[0]},#{tuple[1]}" end end
得られた結果を元に作った表。相対類数 (p は 200 以下の素数)。
http://tsujimotter.info/works/riemann_zeta_leftside/datasheet.pdf
こちらは p<10000 までの数表。CSV形式。これも相対類数 です。
こっちはマニア受けしそう。