異をとなえん |

tennou.rbプログラム - 日本人は天皇の子孫か?(その5)

2008.07.14 Mon

14:46:42

日本人は天皇の子孫か?
で使ったrubyのプログラムを公開する。
ただし、表示方法とかは、わかりやすいように少し修正したので、
厳密には違っているが、基本的には同じである。

htmlになっているので、フォーマットがぐちゃぐちゃだが、動作することは確認した。

--------------------------------------------------------------------------------
#!/usr/bin/ruby

=begin
プログラムの使用法

プログラムの最後の部分を修正して使用する

inc = IncreasePopuration.new([[0.01, 2.0],
[0.2, 1.095],
[0.4, 1.075],
[0.6, 1.055],
[0.8, 1.035]],
1.055)

パラーメーターの意味は最初が、人口の割合ごとの人口の増加率の配列である。
次が、全体人口の増加率になる。

inc.calcurate(1, 1400000.0, 280, 1990)
パラメーターの意味は順番に初期対象人口, 初期男性人口, 開始年, 終了年である。

=end

=begin
日本の奈良時代(七百年)の人口は六百万人。
現在(千九百九十年)、一億二千万人。

三十年を一世代とすると、四十三世代で二十倍になっている。
平均寿命が二倍になっているとすると、実質十倍である。

四十三世代で十倍になるということは、一世代あたりの増加率は下記になる。

(x)を43乗すると10になる。

irb(main):066:0> 1.05501 ** 43
=> 10.0007546876559
irb(main):067:0> 1.055005 ** 43
=> 9.99871684130698

男一人が、一世代で約1.055人の男を作ればよい。

社会階層別に上層ほど家を存続させる意識が強いと仮定して、増加率を大体

最上層20%は、1.075
その下20%は、1.065
中間層20%は、1.055
その下20%は、1.045

と仮定する。

最下層20%は、帳尻合わせのために後で決定する。

さらに最上位層1%は特に2と仮定する。これは平均4人の子供を作る必要があるため女性には厳しい。だから、男性になっている。

上記の想定のもとに最終的な増加率が、1.055になるように下記の式を満たす最下層の増加率を決定する。
(0.01 * 2) + (0.2 * 1.075) + (0.2 * 1.065) + (0.2 * 1.055) + (0.2 * 1.045) + (0.19 * x)
= 1.055

xは0.96ぐらいになる。

上位層の子供は常に上位層から占めていき、単純に押し流されていくと仮定す
ると、最上位層の1%が100%占めるまでに何世代かかるかを計算してみる。
=end

class IncreasePopuration

def initialize(rate_array, ave_rate)
@rate_array = rate_array
@ave_rate = ave_rate

current_population_percent = 0
total = 0

@rate_array.each_index do |i|
total += (rate_array[i][0] - current_population_percent) * rate_array[i][1]
current_population_percent = @rate_array[i][0]
end
@lowest_class_increase_rate = (@ave_rate - total) / ( 1 - current_population_percent)

# パラメーター表示
start_rate = 0
@rate_array.each_index do |i|
printf("%2.4f 〜 %2.4f 人口増加率 = %2.4fn", start_rate, rate_array[i][0], rate_array[i][1])
start_rate = rate_array[i][0]
end
printf("%2.4f 〜 %2.4f 人口増加率 = %2.4fn", start_rate, 1.0, @lowest_class_increase_rate)
printf("n")

@w_array = []
@w_array.push([0, @rate_array[0][1]])
@rate_array.each_index do |i|
case i
when @rate_array.length - 1
@w_array.push([@rate_array[i][0], @lowest_class_increase_rate])
else
@w_array.push([@rate_array[i][0], @rate_array[i + 1][1]])
end
end
end

def increase(target_people, all_people)
x = target_people / all_people
y = 0

@w_array.reverse.each do |item|
if x > item[0]
y += all_people * (x - item[0]) * item[1]
x = item[0]
end
end
[y, all_people * @ave_rate]

end

def calcurate(target_people, all_people, start_year, end_year)
x, y = target_people, all_people
printf("%5s %11s %11s %7sn", "西暦", "対象人口", "男性人口", "割合")
start_year.step(end_year, 30) do |year|
# printf("year = %4d, target_people = %10d, all_people = %10d, rate = % 6.2fn", year, x, y, 100 * x / y)
printf("%4d| %10d| %10d| % 6.2fn", year, x, y, 100 * x / y)
x,y = increase(x, y)
end
end

end

# Korea Yannpann
# もっとも近いと思われる推定値
#inc = IncreasePopuration.new([[0.1, 2.0], [0.2, 1.5], [0.8, 1.066]], 1.066)
#inc.calcurate(240, 2000000.0, 1400, 1910)

# もっと妥当?
#inc = IncreasePopuration.new([[0.1, 2.0], [0.2, 1.5], [0.9, 0.9]], 1.066)
#inc.calcurate(500, 2000000.0, 1400, 1910)

# bug case
#inc = IncreasePopuration.new([[0.1, 2.0], [0.2, 2.0], [0.4, 1.5], [0.6, 1.0], [0.8, 1.035]], 1.055)
#inc.calcurate(240, 3000000.0, 1400, 1900)

# 神武天皇
inc = IncreasePopuration.new([[0.01, 2.0],
[0.2, 1.095],
[0.4, 1.075],
[0.6, 1.055],
[0.8, 1.035]],
1.055)
inc.calcurate(1, 1400000.0, 280, 1990)
このエントリーをはてなブックマークに追加
LINEで送る

両班のこと - 日本人は天皇の子孫か?(その4)

2008.07.14 Mon

02:23:16

家系の話 - コリアニメやつあたり
に、今の韓国人の多くが自分の祖先は両班(貴族)であると主張している事を、
批判している記事が載っている。
呉善花氏も、八割の国民が貴族だなんておかしいと書いていた。
しかし、私は韓国朝鮮人のほとんどが両班出身であるのは正しいと思う。

日本人は天皇の子孫か?
で使ったプログラムで、その事を試算してみた。

まず、朝鮮の人口は1400年に400万、1910年に1200万とする。
「世界の歴史12 明清と李朝の時代」p108に
「李朝の人口は400万から1200万くらいに増加したと思われ、」
と記述されている。

すると、1400から1910までで3倍になっている。
510/30=17
17世代で3倍になるということは、一世代あたりの増加率は下記になる。

irb(main):001:0> 1.066759 ** 17
=> 3.00004220874656
irb(main):002:0> 1.066758 ** 17
=> 2.99999440007087
irb(main):003:0>

男一人が、一世代で約1.066人の男を作ればいい。

仮定した数値は次の通り。
最上位10%は、2
その下10%〜20%は、1.5
その下20%〜80%は、1.066

最下位層の20%は、全体の増加率が1.066なので計算して求めると、
0.382ぐらいだ。

この数値は、後で当時の資料が出てくるのだが、
何回か試算してそれに大体合うようにしてある。

一番最初の両班の人数は240人とした。
「世界の歴史12 明清と李朝の時代」p100に
「3年ごとに、文科33名、司馬試進士試100名、司馬試生員試100名」と
あるからだ。
この全てが両班化したとも言えないが、
後の試験で受かった人間もたし合わせた目分量だ。

これで計算した結果が次のようになる。

$ ./tennou.rb
最下層人口増加率 = 0.382000
西暦 対象人口 男性人口 割合
1400| 240| 2000000| 0.01
1430| 480| 2132000| 0.02
1460| 960| 2272712| 0.04
1490| 1920| 2422710| 0.08
1520| 3840| 2582609| 0.15
1550| 7679| 2753062| 0.28
1580| 15359| 2934764| 0.52
1610| 30719| 3128458| 0.98
1640| 61439| 3334936| 1.84
1670| 122880| 3555042| 3.46
1700| 245760| 3789675| 6.48
1730| 491520| 4039794| 12.17
1760| 939269| 4306420| 21.81
1790| 1590379| 4590644| 34.64
1820| 2323345| 4893626| 47.48
1850| 3146134| 5216606| 60.31
1880| 4067410| 5560902| 73.14
1910| 5096591| 5927921| 85.98

この結果を、宮嶋博史著「両班(ヤンバン)―李朝社会の特権階層」の
p199に出てくる表と照らしあわせてみる。

身分別人口数とその比率
          両班     常民    奴婢    総数
I期(1690年)     1,027人 7.4% 6,894 49.5% 5,922 43.1% 13,913 100%
II期(1729、32年)  2,260人 14.8% 8,066 52.8% 4,940 32.4% 15,266 100%
III期(1783,86,89年) 3,928人 31.9% 6,415 52.2% 1,957 15.9% 12,300 100%
IV期(1858年)    6,410人 48.6% 2,659 20.1% 4,126 31.3% 13,195 100%

私のシミュレートした結果は、少し両班の増加率が高すぎる嫌いはあるが、
この数値に近くなるように設定したので、大体あっている。

人口の一割近くが、 一世代ごとに2倍に増加するなどありえるだろうか。
近代前には普通ありえないだろうが、
朝鮮儒教の特殊性を考えるとありえる。
朝鮮儒教では、祖先の祭祀を最も重要視している。
祖先の魂が現世に生きているとし、その魂に食事を捧げる事が祭祀であり、
孝なのである。
この食事を捧げるのは男でなくてはならない。
男の子孫が絶えると、先祖に食事をやる事ができないから、
先祖みんなが苦しむ。
それを避けるためには、何がなんでも男の子を作る必要がある。
日本のように婿養子などと言うものは取ることはできない。
そうすると一人息子では、死んだら途絶えてしまう。
だから、最低でも二人の息子が欲しい。
もちろん、できれば最たくさん作る。
このような特質を考えると、両班が一世代ごとに二倍になるのはおかしくない。

もう一つの問題は、最低階層の増加率である。
一世代あたり0.4人というのは、とてつもなく低い。
しかし、16世紀末から17世紀にかけて、日本と清による朝鮮侵略があり、
朝鮮国民は大量に死んでいる。
この場合、死んだ人間の多くは最下層階級だろう。
また、朝鮮時代を通じて両班による、下層階級への迫害はすさまじかった。
朝鮮王朝初期には、儒教はまだ両班だけのもので、
下層はまだ仏教が浸透していたらしい。
そこで、親が死んだ時三年の喪をしなければ罪に問われ、
寡婦は再婚すれば罪に問われた。
死ぬ事もあっただろうし、奴婢に落とされた事もあるだろう。
朝鮮王朝末期には外国人の記録では、両班の残酷さがいろいろと記されている。
これらを考えると、0.4という増加率もありえる。

この推定が正しい事を前提とすると幾つかの事に説明がつく。

たとえば、1575年ごろから党争と呼ばれる争いが始まる。
党争は日本人などから見ると、なぜ争うのかわからない、
国王の継母の服喪期間をどうするかのような争いだ。
それまでも権力闘争はあるのだが、
政策ではなく、争いのための争いになるのは、このころからだ。
この原因は、このころの中央官僚が全て両班になったからだろう。
もちろん、中央官僚は全て両班なのだが、
一族に始めての一人というケースが減少し、
ほとんどの官僚が、上層部に親戚がいるようになった。
この結果、小さな争いが中立的な立場の人がいないために、
そのまま激烈な戦いに突入してしまう。

また、族譜の意味が明らかになる。
族譜の編纂が実質的に始まるのは16世紀後半らしいが、
党争と共に起こっている。
党争が一族全体の生死を賭けた戦いである以上、
その戦いに使える要員を確定する意味がある。
そうすると、偽の族譜というのはあまり意味がない。
両班である事が重要なのではない。
どの一族に属しているかが重要であり、
何か事があった時に助けてくれるかが大事なのだ。
偽の族譜では、一族の承認が得られないので、助けにならない。
単に犯罪として処断されるだけだ。

最後に私の偏見かも知れないが、韓国人はかなり似た顔をしているように見える。
目が細くて顎が出ている。
これは、1400年ごろのかなり小さい集団の遺伝子を、引き継いでいれば説明できる。

以上のことから、私は現在の韓国朝鮮人が両班出身なのは正しいと思う。
このエントリーをはてなブックマークに追加
LINEで送る