2019年1月10日木曜日

元号の予想(3)

元号の予想(2)の続き)

中国の元号は维基百科(Wikipedia)の中国年号列表に,周辺地域も含めて詳しい。

中華人民共和国が成立して元号が廃止されるまでに約1200くらいの元号が存在した(なんだかダブルカウントしているような気もするが,まあだいたいの雰囲気です。日本の5倍の歴史かな)。3文字とか4文字とか6文字の元号も見られ,複数の元号が繰り返して使われる場合もあるようだ。日本の元号と重なっているものもある。こんな感じ・・・

建元,元光,元朔,元狩,元鼎,元封,太初,天汉,太始,征和,後元,始元,元凤,元平,本始,地节,元康,神爵,五凤,甘露,黄龙,初元,永光,建昭,竟宁,建始,河平,阳朔,鸿嘉,永始,元延,绥和,建平,太初,元将,元寿,元始,居摄,初始,新朝,王莽,建国,天凤,地皇,更始,更始,汉复,龙兴,建世,東漢,建武,中元,永平,建初,元和,章和,永元,元兴,延平,永初,元初,永宁,建光,延光,永建,阳嘉,永和,汉安,建康,永憙,本初,建和,和平,元嘉,永兴,永寿,延熹,永康,建宁,熹平,光和,中平,光熹,昭宁,永汉,中平,初平,兴平,建安,延康,神上,黄初,太和,青龙,景初,正始,嘉平,正元,甘露,景元,咸熙,绍汉,章武,建兴,延熙,景耀,炎兴,黄武,黄龙,嘉禾,赤烏,太元,神凤,建興,五鳳,太平,永安,元兴,甘露,宝鼎,建衡,凤凰,天册,天玺,天纪,泰始,咸寧,太康,太熙,永熙,永平,元康,永康,永宁,太安,永安,建武,永兴,光熙,永嘉,建兴,太平,建始,神凤,建武,大兴,永昌,太宁,咸和,咸康,建元,永和,升平,隆和,兴宁,太和,咸安,宁康,太元,隆安,元兴,大亨,义熙,元熙,建康,凤凰,永始,天康,元熙,永凤,河瑞,光兴,嘉平,建元,麟嘉,汉昌,光初,太和,平赵,建初,建兴,晏平,玉衡,大武,玉恒,汉兴,太和,嘉宁,建兴,建兴,建兴,建兴,和平,建兴,升平,升平,凤凰,太和,建平,延熙,建武,太宁,永熙,延兴,青龍,永宁,永兴,龙兴,燕元,元玺,光寿,建熙,皇始,寿光,永兴,甘露,建元,太安,太初,延初,建昌,黑龙,元光,白雀,建初,皇初,弘始,永和,燕元,建興,永康,建平,長樂,光始,建始,建光,定鼎,建始,延平,青龍,燕兴,更始,昌平,建明,建平,建武,中興,建义,太初,更始,永康,建弘,永弘,太安,麟嘉,龍飛,承康,咸寧,神鼎,太初,建和,弘昌,嘉平,燕平,建平,太上,太平,庚子,建初,嘉兴,永建,龍昇,凤翔,昌武,真興,承光,胜光,正始,太平,太兴,神玺,天玺,永安,玄始,真興,承玄,義和,承陽,緣禾,承和,太緣,建平,承平,永初,景平,元嘉,孝建,大明,永光,景和,泰始,泰豫,元徽,昇明,泰始,建义,太初,建平,永光,義嘉,建元,永明,隆昌,延兴,建武,永泰,永元,中兴,兴平,建义,天监,普通,大通,大通,大同,大同,太清,大宝,天正,承聖,天成,紹泰,太平,上願,永漢,天德,正平,太始,天正,天启,大定,天保,广运,永定,天嘉,天康,光大,太建,至德,禎明,建国,登国,皇始,天兴,天赐,永兴,神瑞,泰常,始光,神䴥,延和,太延,太平,真君,正平,承平,兴安,兴光,太安,和平,天安,皇兴,延兴,承明,太和,景明,正始,永平,延昌,熙平,神龜,正光,孝昌,武泰,建義,永安,建明,普泰,中兴,太昌,永兴,永熙,建平,聖君,正始,建明,圣明,建平,大乘,真王,天建,天启,真王,神嘉,魯興,始建,广安,天授,隆緒,天统,神獸,孝基,建武,更兴,天平,元象,兴和,武定,平都,大统,乾明,北齊,天保,乾明,皇建,太宁,河清,天统,武平,隆化,德昌,承光,武平,安太,武成,武定,保定,天和,建德,宣政,大成,大象,大定,石平,永康,太平,太安,始平,建昌,建初,承平,义熙,甘露,章和,永平,和平,建昌,延昌,延和,义和,重光,延寿,白雀,永樂,开皇,仁寿,大業,义宁,皇泰,白鳥,大世,昌達,始兴,太平,丁丑,五凤,永平,天兴,正平,秦兴,鸣凤,安樂,通聖,永隆,武德,贞观,永徽,显庆,龙朔,麟德,乾封,總章,咸亨,上元,儀鳳,調露,永隆,开耀,永淳,弘道,嗣圣,文明,光宅,垂拱,永昌,载初,天授,如意,长寿,延載,証聖,天冊,萬歲,登封,通天,神功,聖曆,久視,大足,长安,神龍,景龙,唐隆,景雲,太极,延和,先天,开元,天宝,至德,乾元,上元,宝应,广德,永泰,大曆,建中,興元,贞元,永贞,元和,永新,長慶,宝历,大和,開成,会昌,大中,咸通,乾符,广明,中和,光啟,文德,龍紀,大顺,景福,乾宁,光化,天复,天祐,天壽,始兴,法輪,开明,延康,明政,天造,天明,乾德,进通,中元,克復,圣武,载初,天成,应天,顺天,显圣,黃龍,正德,宝胜,应天,天皇,武成,罗平,王霸,金统,建贞,顺天,天壽,彝泰,同慶,天尊,中興,天兴,天壽,仁安,大興,宝历,中興,正曆,永德,朱雀,太始,建兴,咸和,甘露,元興,赞普,长寿,见龙,上元,元封,应道,龙兴,全义,大豐,保和,天启,建极,贞明,承智,大同,嵯耶,中兴,安国,始元,天瑞,景星,安和,贞祐,初历,天应,尊圣,兴圣,大明,鼎新,光圣,文德,神武,文经,至治,明德,广德,顺德,明政,广明,明统,明圣,明德,明治,明法,明应,明运,明启,乾兴,明通,正治,圣明,天明,保安,政安,正德,保德,太安,明侯,上德,广安,上明,保立,建安,天祐,上治,天授,明开,天政,文安,日新,文治,永嘉,保天,广运,永贞,大宝,龙兴,盛明,建德,利贞,盛德,嘉会,元亨,定安,亨时,凤历,元寿,天开,天辅,仁寿,道隆,天定,顺德,兴正,至德,大本,钟元,隆德,永道,開平,乾化,凤历,乾化,贞明,龙德,应天,同光,天成,长兴,应顺,清泰,天福,开运,天福,乾祐,广顺,显德,天复,天祐,武义,顺义,乾貞,大和,天祚,昇元,保大,中兴,交泰,显德,顯德,建隆,乾德,开宝,天祐,天宝,凤历,乾化,贞明,龙德,宝大,宝正,广初,正明,长兴,应顺,清泰,天福,天福,开运,天福,乾祐,广顺,显德,建隆,乾德,开宝,太平,兴国,天成,长兴,长兴,应顺,清泰,天福,开运,天福,乾祐,保大,開平,乾化,贞明,龙德,同光,天成,天成,长兴,龙启,永和,通文,永隆,天德,乾亨,白龙,大有,光天,应乾,乾和,大寶,永乐,天复,武成,通正,天汉,光天,乾德,咸康,明德,广政,同光,天成,乾貞,乾貞,天成,长兴,应顺,清泰,天福,开运,天福,乾祐,乾祐,广顺,显德,建隆,建隆,乾祐,乾祐,天会,广运,建隆,乾德,开宝,太平,兴国,雍熙,端拱,淳化,至道,咸平,景德,大中,祥符,天禧,乾兴,天圣,明道,景祐,宝元,康定,慶曆,皇祐,至和,嘉祐,治平,熙宁,元丰,元祐,紹聖,元符,建中,靖国,崇宁,大观,政和,重和,宣和,靖康,应运,化顺,得圣,景瑞,启历,端懿,大历,隆興,永乐,建炎,紹興,隆興,乾道,淳熙,绍熙,慶元,嘉泰,开禧,嘉定,宝庆,绍定,端平,嘉熙,淳祐,宝祐,开庆,景定,咸淳,德祐,景炎,祥兴,明受,天载,正法,人知,太平,阜昌,大聖,天王,庚戌,罗平,乾貞,罗平,轉運,重德,天战,龙兴,天定,神册,天赞,天显,会同,大同,天祿,應曆,保寧,乾亨,统和,開泰,太平,景福,重熙,清宁,咸雍,大康,大安,寿昌,乾统,天庆,保大,建福,德兴,神曆,天庆,隆基,天复,天嗣,延慶,康國,咸清,感天,绍兴,續興,穆興,崇福,皇德,重德,天禧,显道,开运,广运,大庆,天授,礼法,延祚,广熙,广民,延嗣,宁国,天祐,垂圣,福圣,承道,奲都,拱化,乾道,天赐,礼盛,国庆,大安,天安,礼定,西安,天儀,治平,天祐,民安,永安,貞觀,雍寧,元德,正德,大德,大庆,人慶,天盛,乾祐,天慶,應天,皇建,光定,乾定,寶義,宝庆,广僖,清平,收國,天辅,天会,天眷,皇統,天德,貞元,正隆,大定,兴庆,明昌,承安,泰和,天定,大安,崇慶,至寧,贞祐,興定,元光,正大,開興,天兴,盛昌,天興,天统,天正,身聖,元統,天賜,天順,天泰,大同,興隆,順天,天威,天祐,天德,中統,至元,元贞,大德,至大,皇庆,延祐,至治,泰定,致和,天顺,天历,至顺,元统,至元,至正,宣光,天元,萬乘,昌泰,延康,祥兴,安定,正治,赤符,治平,太平,天启,天定,正朔,天祐,龙凤,大义,大定,德寿,天统,开熙,洪武,建文,永乐,洪熙,宣德,正统,景泰,天顺,成化,弘治,正德,嘉靖,隆庆,万历,泰昌,天启,崇祯,義興,弘光,隆武,绍武,兴业,监国,定武,永曆,东武,天定,龙凤,永寧,永天,泰定,东阳,玄元,添元,天顺,天绣,武烈,德胜,明正,顺德,平定,大順,天渊,造历,龍飛,大宝,洪武,真混,瑞应,玄静,大成,兴胜,永兴,兴武,天運,永昌,义武,大顺,圆明,大宝,宏閏,湧安,天命,天聪,崇德,顺治,康熙,雍正,乾隆,嘉庆,道光,咸丰,祺祥,同治,光绪,宣統,重兴,天定,永昌,清光,中兴,永曆,隆武,兴朝,天正,天顺,大慶,廣德,昭武,利用,洪化,裕民,文兴,元兴,永兴,天德,永和,天运,顺天,天運,万利,大康,晏朝,天運,太平,天國,天德,洪顺,天德,天运,江汉,洪德,顺天,天縱,嗣统,华汉,江汉,永清,明国,漢德,共戴,洪憲,通志,宣統,大同,康德,

例によって,3文字以上の場合はテキトーに折り曲げたりして2文字に縮約している。前回のJuliaプログラムにかけてみると,元号の1文字目と2文字目のそれぞれで用いられる漢字の頻度リストが得られる。



(197, Any[('天', 141), ('建', 81), ('永', 80), ('大', 56), ('太', 50), ('元', 40), ('乾', 37), ('延', 24), ('正', 22), ('明', 20), ('广', 18), ('景', 17), ('光', 16), ('神', 16), ('兴', 15), ('咸', 15), ('开', 15), ('中', 14), ('承', 14), ('嘉', 13), ('至', 13), ('隆', 12), ('宝', 11), ('武', 11), ('皇', 11), ('保', 10), ('应', 10), ('泰', 9), ('长', 9), ('顺', 9), ('贞', 8), ('上', 7), ('凤', 7), ('始', 7), ('文', 7), ('显', 7), ('洪', 7), ('清', 7), ('宣', 6), ('甘', 6), ('真', 6), ('重', 6), ('义', 5), ('同', 5), ('安', 5), ('崇', 5), ('弘', 5), ('德', 5), ('更', 5), ('绍', 5), ('通', 5), ('開', 5), ('初', 4), ('和', 4), ('康', 4), ('昌', 4), ('汉', 4), ('燕', 4), ('白', 4), ('黄', 4), ('龍', 4), ('五', 3), ('仁', 3), ('升', 3), ('圣', 3), ('孝', 3), ('定', 3), ('平', 3), ('河', 3), ('治', 3), ('淳', 3), ('玄', 3), ('盛', 3), ('礼', 3), ('祥', 3), ('章', 3), ('端', 3), ('紹', 3), ('罗', 3), ('義', 3), ('興', 3), ('雍', 3), ('青', 3), ('麟', 3), ('万', 2), ('东', 2), ('人', 2), ('会', 2), ('利', 2), ('嗣', 2), ('地', 2), ('垂', 2), ('宁', 2), ('寿', 2), ('庚', 2), ('慶', 2), ('應', 2), ('政', 2), ('昇', 2), ('昭', 2), ('晏', 2), ('普', 2), ('本', 2), ('江', 2), ('熙', 2), ('玉', 2), ('王', 2), ('登', 2), ('聖', 2), ('萬', 2), ('貞', 2), ('赤', 2), ('载', 2), ('道', 2), ('長', 2), ('阳', 2), ('靖', 2), ('丁', 1), ('久', 1), ('交', 1), ('亨', 1), ('儀', 1), ('先', 1), ('克', 1), ('全', 1), ('共', 1), ('化', 1), ('北', 1), ('华', 1), ('启', 1), ('唐', 1), ('国', 1), ('圆', 1), ('奲', 1), ('如', 1), ('宏', 1), ('寶', 1), ('尊', 1), ('居', 1), ('嵯', 1), ('廣', 1), ('彝', 1), ('征', 1), ('後', 1), ('得', 1), ('感', 1), ('成', 1), ('拱', 1), ('收', 1), ('新', 1), ('日', 1), ('朱', 1), ('東', 1), ('民', 1), ('法', 1), ('添', 1), ('湧', 1), ('漢', 1), ('炎', 1), ('熹', 1), ('瑞', 1), ('监', 1), ('石', 1), ('祺', 1), ('禎', 1), ('福', 1), ('秦', 1), ('穆', 1), ('竟', 1), ('緣', 1), ('總', 1), ('續', 1), ('统', 1), ('绥', 1), ('胜', 1), ('致', 1), ('裕', 1), ('西', 1), ('见', 1), ('証', 1), ('調', 1), ('赞', 1), ('身', 1), ('轉', 1), ('进', 1), ('造', 1), ('金', 1), ('钟', 1), ('阜', 1), ('順', 1), ('顯', 1), ('魯', 1), ('鸣', 1), ('鸿', 1), ('黃', 1), ('黑', 1), ('鼎', 1)])

(215, Any[('平', 75), ('兴', 64), ('德', 59), ('和', 45), ('元', 36), ('安', 34), ('始', 28), ('明', 28), ('定', 26), ('祐', 26), ('光', 24), ('初', 23), ('武', 23), ('康', 22), ('熙', 22), ('昌', 21), ('興', 18), ('泰', 17), ('天', 16), ('宁', 16), ('顺', 16), ('成', 14), ('庆', 13), ('福', 13), ('运', 13), ('隆', 13), ('历', 11), ('嘉', 11), ('统', 11), ('凤', 10), ('化', 10), ('国', 10), ('圣', 10), ('寿', 10), ('正', 10), ('治', 10), ('宝', 9), ('道', 9), ('建', 8), ('曆', 8), ('义', 7), ('同', 7), ('启', 7), ('大', 7), ('慶', 7), ('汉', 7), ('露', 7), ('龙', 7), ('寧', 6), ('聖', 6), ('通', 6), ('亨', 5), ('复', 5), ('政', 5), ('統', 5), ('贞', 5), ('中', 4), ('封', 4), ('应', 4), ('授', 4), ('朔', 4), ('清', 4), ('玺', 4), ('瑞', 4), ('符', 4), ('貞', 4), ('運', 4), ('鼎', 4), ('龍', 4), ('乐', 3), ('会', 3), ('凰', 3), ('國', 3), ('壽', 3), ('新', 3), ('朝', 3), ('樂', 3), ('法', 3), ('王', 3), ('皇', 3), ('禧', 3), ('胜', 3), ('雀', 3), ('上', 2), ('世', 2), ('丰', 2), ('乘', 2), ('保', 2), ('册', 2), ('君', 2), ('嗣', 2), ('基', 2), ('延', 2), ('开', 2), ('弘', 2), ('徽', 2), ('拱', 2), ('文', 2), ('极', 2), ('民', 2), ('淳', 2), ('漢', 2), ('炎', 2), ('熹', 2), ('盛', 2), ('祚', 2), ('禾', 2), ('義', 2), ('耀', 2), ('衡', 2), ('观', 2), ('象', 2), ('赐', 2), ('辅', 2), ('都', 2), ('順', 2), ('飛', 2), ('鳳', 2), ('䴥', 1), ('丑', 1), ('业', 1), ('乾', 1), ('侯', 1), ('僖', 1), ('儀', 1), ('冊', 1), ('利', 1), ('功', 1), ('受', 1), ('命', 1), ('啟', 1), ('太', 1), ('威', 1), ('子', 1), ('宅', 1), ('寶', 1), ('将', 1), ('尊', 1), ('常', 1), ('復', 1), ('志', 1), ('恒', 1), ('意', 1), ('憙', 1), ('憲', 1), ('懿', 1), ('戌', 1), ('战', 1), ('戴', 1), ('摄', 1), ('时', 1), ('昇', 1), ('星', 1), ('昭', 1), ('显', 1), ('普', 1), ('智', 1), ('有', 1), ('本', 1), ('業', 1), ('歲', 1), ('混', 1), ('渊', 1), ('烈', 1), ('烏', 1), ('爵', 1), ('狩', 1), ('獸', 1), ('玄', 1), ('用', 1), ('监', 1), ('眷', 1), ('知', 1), ('祥', 1), ('祯', 1), ('祿', 1), ('立', 1), ('章', 1), ('紀', 1), ('緒', 1), ('緣', 1), ('縱', 1), ('纪', 1), ('经', 1), ('绣', 1), ('绪', 1), ('翔', 1), ('耶', 1), ('聪', 1), ('节', 1), ('莽', 1), ('視', 1), ('觀', 1), ('豐', 1), ('豫', 1), ('賜', 1), ('赞', 1), ('赵', 1), ('足', 1), ('載', 1), ('輪', 1), ('载', 1), ('造', 1), ('達', 1), ('閏', 1), ('阳', 1), ('陽', 1), ('雍', 1), ('雲', 1), ('霸', 1), ('靖', 1), ('静', 1), ('願', 1), ('鳥', 1), ('齊', 1)])

元号の予想(4)に続く)

2019年1月9日水曜日

金門五三桐

大阪松竹座の壽初春大歌舞伎の夜の部の演目は,並木五瓶の金門五三桐の通し狂言である。二幕目の南禅寺山門の返しの浅葱幕前で,細棹の三味線弾きが白木の台に片足を乗せ,正本を片手に持つ唄い手が朗詠する。調べてみると大薩摩節(おおざつまぶし)の独唱とあり,その後,石川五右衛門と真柴久吉のお馴染の場面が始まる。

絶景かな,絶景かな。春の眺めは値千金とは小せえ,小せえ。この五右衛門には値万両,最早陽も西に傾き,誠に春の夕暮れに花の盛りもまた一入,はて,うららかな眺めじゃなぁ。ハテ心得ぬ,われを忘れずこのところに羽根を休むるとは。なになに,某もとは大明十二代神宗皇帝の臣下宋蘇卿と言いし者,本国に一子を残し,この土に渡り謀叛の企て今月ただいま露顕なし,たとえ空しく相果つるとも,かの地に残せし倅,われを慕うて日本へ渡りしとほぼ聞けど,いまだ対面は遂げず形見に与えし蘭麝待という名香を証拠になにとぞ尋ね出し,わが無念を語り,力を合わせ,久吉を討ち取るべきものなり。すりゃ此村大炒之助と言いしは,わが父宋蘇卿にありつるか,父の無念,光秀公の恨み,たとえこの身は油で煮られ,肉はとろけ,骨は微塵に砕くるとも,おのれ久吉,今にぞ思い知らせてくれん。

 



2019年1月8日火曜日

ラグランジュ点(3)

ラグランジュ点(2)の続き)

$\rm{L}_3$についての補足:

ウィキペディア日本語版のラグランジュ点では,$\rm{L}_3$について次のように書かれている。「3 番目のラグランジュ点である $\rm{L}_3$ は地球から見て太陽の裏側にあり、太陽からの距離は太陽から地球までよりもやや遠い。」

ウィキペディア英語版のLagrangian Pointsではどうだろうか。
L3 in the Sun–Earth system exists on the opposite side of the Sun, a little outside Earth's orbit and slightly further from the Sun than Earth is. (This apparent contradiction is because the Sun is also affected by Earth's gravity, and so orbits around the two bodies' barycenter, which is, however, well inside the body of the Sun.)
いずれも,地球の軌道の外側ということになっている。しかし,太陽と地球の距離を$R$とすると,太陽と$\rm{L}_3$の距離は$R$より小さくなる。英語版の説明にあるように,太陽−地球系の重心から地球までの距離と比較すれば,太陽と$\rm{L}_3$の距離のほうが大きいという意味のようだ。

なお,太陽−地球系の重心は太陽の中心から 449km 地球寄り(太陽内部)にあり,$\rm{L}_3$は太陽を挟んだ地球の対蹠点から 262km 太陽寄り(太陽を中心として太陽-地球距離$R$を半径とする円内)にある。

2019年1月7日月曜日

大学の情報教育と商用検定

Julia言語が大学の正規授業でどのくらい使われているか。粗いサーベイの範囲ではインターネット空間上で観測される事例はそれほど多くない。

シラバスだけでなく資料まで確認できる例としては,
・京都大学の櫻川貴司さんの情報基礎演習(全学部・全回生,Python,R,Rubyとの選択)
・大阪大学の降旗大介さんの応用数理学9(理学部数学科4年)
・法政大学の宮崎憲治さんの応用マクロ経済学B(経済学研究科,2016年)
など

関連資料としては,
・東京芸術大学の丸井さんの「なぜ僕らはJuliaを作ったか(訳)」(音声信号処理が本体)
・筑波大学の武内修さんのプログラミング/Julia(Mathematicaとの比較がある)
など

なお,ac.jp以外で日本語の充実したページは,
・広井誠さんのお気楽Juliaプログラミング超入門(その他の言語も盛りだくさん)

本題はそこではなくて,櫻川さんのページを見ていて気がついたところ。京大の一般教養の情報教育科目では,NTT コミュニケーションズのインターネット検定ドットコムマスターを取り入れているのか。もう少し探してみると2017年段階で試行中との論文が見つかった。

大学入試における商用検定の導入と並び,今後の動向が注目されるところ。大学教育の展開過程と見るのか解体過程と捉えるのか,評価がわかれるのかもしれない。

2019年1月6日日曜日

ラグランジュ点(2)

ラグランジュ点(1)の続き)

地球−月系のラグランジュ点の位置を実際に計算してみる。$x \equiv \frac{r}{R}$,$a \equiv \frac{M_2}{M_1}$ とすると,次の式の解がそれぞれ $\rm{L}_1, \rm{L}_2, \rm{L}_3$ を与える。
\begin{equation*}
\begin{aligned}
\frac{1}{(1-x)^2}=\frac{a}{x^2}+ 1 -x*(1+a)\\
\frac{1}{(1-x)^2}+\frac{a}{x^2}= 1 +x*(1+a)\\
\frac{1}{(1-x)^2}+\frac{a}{(2-x)^2}= a +(1-x)*(1+a)
\end{aligned}
\end{equation*}
これは$x$の5次方程式であるが,Mathematicaならば,NSolve[]でもよいけれど,複素数解は不要なので,FindRoot[]を使うところだ。

Juliaではどうするのか調べてみたところ,NLsolveという非線形方程式の求解パッケージがあったが,GitHubのオリジナルサイトをみてもJacobian がなんたらかんたらでと五月蝿くて分かりにくい。阪大サイバーメディアセンターの降旗大介さんのページがたいへん親切な解説をつけてくれていたので参考にする。

using NLsolve

function nls(func, params...; ini = [0.0])
    if typeof(ini) <: Number
        return nlsolve((vout,vin)->vout[1]=func(vin[1],params...), [ini]).zero[1]
    else
        return nlsolve((vout,vin)->vout .= func(vin,params...), ini).zero
    end
end

function lagrange(x,a,i)
    if i==1
        1.0/(1.0-x)^2-a/(x^2)-1.0+x*(1+a)
    elseif i==2
        1.0/(1.0+x)^2+a/(x^2)-1.0-x*(1+a)
    elseif i==3
        1.0/(1.0-x)^2+a/(2-x)^2-a-(1-x)*(1+a)
    end
end

# earth - moon system  M2/M1=0.0123
L1=nls(lagrange, 0.0123, 1, ini=0.1)
L2=nls(lagrange, 0.0123, 2, ini=0.1)
L3=nls(lagrange, 0.0123, 3, ini=0.1)
println([L1,L2,L3]," ",[L1,L2,L3]*38.4)

# sun - earth system  M2/M1=0.000003
S1=nls(lagrange, 0.000003, 1, ini=0.1)
S2=nls(lagrange, 0.000003, 2, ini=0.1)
S3=nls(lagrange, 0.000003, 3, ini=0.1)
println([S1,S2,S3]," ",[S1,S2,S3]*14960)


[0.150934, 0.167833, 0.00708792] [5.79587, 6.44477, 0.272176]
[0.00996655, 0.0100332, 1.74999e-6] [149.1, 150.097, 0.0261799]

ということで,無事に鵲橋のハロー軌道の元になる地球−月系の$\rm{L}_2$点の6.4万kmが得られた。ここでは,ラグランジュ点の安定性の議論はすっとばしているが,京大の三宅雄紀さんの「ラグランジュ点の安定性を調べてみた」もたいへん参考になる。



「わが十指われにかしずく寒の入り」(岡本眸 1928-2018)

ラグランジュ点(3)に続く)

2019年1月5日土曜日

ラグランジュ点(1)

嫦娥4号月裏面着陸からの続き)

ラグランジュ点Lagrangian Points)というのは,天体力学における制限3体問題の平衡解を表している。つまり,2つの天体がその重心の回りに回転運動しているときに,その2つの天体との相対位置を保ったままで運動できる5つの点である。これらの点は,回転座標系において小物体に働く2天体の重力と遠心力の合力が0になるという条件で求めることができ,3つの直線解と2つの正三角形解から成り立つ。下図に基づいて考えてみよう。



まず2天体の重心の周りの角速度$\omega$を求める。質量$M_1$と$M_2$の2つの天体がOとPの位置にあり,距離$R$を保ちながら重心Gの周りを回転している。換算質量を$\mu=\frac{M_1 M_2}{M_1+M_2}$とすると,相対運動に対する運動方程式 $\mu R \omega^2 = \frac{G M_1 M_2}{R^2}$ より,$\omega^2 = \frac{G (M_1+M_2)}{R^3}$である。

次に,小物体の質量を$m$とすると,$\rm{L}_i$における各遠心力は$\ell \equiv \rm{GL}_i$として$m \ell \omega^2$で与えられる。また,重心から各天体までの距離は,GO=$\frac{M_2 R}{M_1+M_2}$,GP=$\frac{M_1 R}{M_1+M_2}$である。

【直線解について】
$a \equiv \frac{M_2}{M_1}$とおき,力の釣り合いの式を求めた後,両辺を$GmM_1$で割る。
L1:  $\rm{PL}_1=r$とすると,$\omega$での回転系における力の釣り合いの式より,
\begin{equation}
\begin{aligned}
\frac{G m M_1}{(R-r)^2}=\frac{G m M_2}{r^2}+ m(\frac{M_1 R}{M_1+M_2}-r)\omega^2\\
\frac{1}{(R-r)^2}=\frac{a}{r^2}+ \frac{1}{R^2}-\frac{r(1+a)}{R^3}
\end{aligned}
\end{equation}

L2: $\rm{PL}_2=r$とすると,$\omega$での回転系における力の釣り合いの式より,
\begin{equation}
\begin{aligned}
\frac{G m M_1}{(R+r)^2}+\frac{G m M_2}{r^2}=m(\frac{M_1 R}{M_1+M_2}+r)\omega^2\\
\frac{1}{(R-r)^2}+\frac{a}{r^2}= \frac{1}{R^2}+\frac{r(1+a)}{R^3}
\end{aligned}
\end{equation}

L3: $\rm{OL}_3=R-r$とすると,$\omega$での回転系における力の釣り合いの式より,
\begin{equation}
\begin{aligned}
\frac{G m M_1}{(R-r)^2}+\frac{G m M_2}{(2R-r)^2}=m(\frac{M_2 R}{M_1+M_2}+R-r)\omega^2\\
\frac{1}{(R-r)^2}+\frac{a}{(2R-r)^2}= \frac{a}{R^2}+\frac{(R-r)(1+a)}{R^3}
\end{aligned}
\end{equation}

【正三角形解について】



(1)$\underline{解は二等辺三角形の頂点にあること}$。
 遠心力は重心からラグランジュ点の方に向っているので,釣り合いが成立するためには重力の合力も重心方向に向わなければならない。
 2つの天体OとPから$\rm{L}_i$の距離を,$\ell_1$と$\ell_2$すると,OとPからの重力の大きさは,$\frac{GmM_1}{\ell_1^2}$と$\frac{GmM_1}{\ell_1^2}$となる。このとき,$\rm{L}_i\rm{P}$方向と$\rm{L}_i\rm{O}$方向の力ベクトルを合成したものがGに向わなければならない。
 この条件は,$\frac{GmM_1}{\ell_1^2} \times \frac{M_2}{M_1} \times \frac{\ell_2}{\ell_1} =\frac{GmM_2}{\ell_2^2} $であることから,$\ell_1^3=\ell_2^3$,すなわち,ラグランジュ点$\rm{L}_i$はOPを底辺とする二等辺三角形の頂点にある。

(2) $\underline{解は正三角形の頂点になること}$。
 二等辺三角形の底辺から頂点を見込む角を$\theta$として,重力の合力と遠心力をそれぞれ$\theta$の関数として表して等置する。このとき二等辺三角形の等辺$\ell$は,$\ell \cos\theta = \frac{R}{2}$となる。また,ラグランジュ点と重心の距離は,$\sqrt{(\ell \sin \theta)^2+(\frac{R}{2}-\frac{M_2R}{M_1+M_2})^2}$ である。したがって,遠心力の大きさは次式で与えられる。
\begin{equation}
\frac{Gm}{2R^2} \sqrt{(M_1+M_2)^2 \tan^2\theta + (M_1-M_2)^2}
\end{equation}
 一方,合成した重力ベクトルの成分は,$( \frac{Gm}{\ell^2}(M_1-M_2)\cos\theta, \frac{Gm}{\ell^2}(M_1+M_2)\sin \theta )$であるから,重力の大きさは次式のようになる。
\begin{equation}
\frac{Gm \cdot 8\cos^3\theta }{2R^2} \sqrt{(M_1+M_2)^2 \tan^2 \theta + (M_1-M_2)^2}
\end{equation}
 (4)式と(5)式が一致するのは,$\cos\theta=\frac{1}{2}$に限られ,そのときの角度$\theta=\pm 60^\circ$となって,ラグランジュ点$\rm{L}_4$と$\rm{L}_5$は天体Oと天体Pを頂点とする正三角形のもう一つの頂点(とそれを反転させたもの)となる。

等ポテンシャル曲面の断面図については,Lagrange Points of the Earth-Moon Systemが分かりやすい。

ラグランジュ点(2)に続く)

2019年1月4日金曜日

嫦娥4号月裏面着陸

2016年7月の国立文楽劇場夏休み特別公演午前演目(親子劇場)は,「新編西遊記 GO WEST!玉うさぎの涙」だった。月の女王が嫦娥様(じょうがさま)とよばれており,家に帰って調べてみると,中国神話あるいは道教に登場する月の女神のようである。新作文楽の脚本でうさぎと結びつけたのは,セーラームーンの月野うさぎからきているのか,いや,そもそも月にはうさぎがいるというのは,仏教説話を起源としてアジア一帯に拡がっているからか。

ということで,嫦娥様が記憶に刻印されてしまった。そうこうしているうちに,2018年12月8日に中国が打ちげた月探査機嫦娥4号が2019年1月3日に月の裏面に無事到着した。月の裏側は地球から見えないので光や電波は届かない。月探査機をどうやって制御したのかと不思議だったが,調べると,地球-月系のラグランジュ点L(地球から見て月の6.5万km遠方側)のまわりで中継衛星鵲橋がハロー軌道を周回し,地球と裏月面の通信を中継しているようだ。すごいわ。

P. S.  2019年1月4日には月面ローバの玉兎2号が動き出した。


「かささぎの 渡せる橋に おく霜の
   白きを見れば 夜ぞ更けにける」 (大伴家持 718?-785) 

2019年1月3日木曜日

1月1日はパブリックドメインの日

毎年の1月1日はパブリックドメインの日Public Domain Day)になっている。著作権の保護期間が暦年区切りで設定されているため,1月1日になると前年末で著作権の保護期間が終了した著作物が,パブリックドメインになったことを祝うのがその主旨である。

ところが,今年の元旦は,昨年の12月30日に環太平洋連携協定(TPP)が発効したために,改正著作権法にある著作権の保護期間が作者の死後50年から70年へという保護期間の延長部分がスタートした。これにより,今後20年は新たな主要なパブリックドメイン著作物が現れないことになる。

TPP諸国の中では,著作権などの知的財産権保護の強化を積極的に推進してきたのが米国だったので,トランプの政策変更によって米国がTPPを離脱したときには,少し安堵の空気が拡がった。ところが,わけの分からない理由で日本はこの著作権保護期間延長の炎の中に自ら進んで飛び込んでしまった。次の記事(国民を無視して進む「合理性なき著作権保護期間延長」)にこのあたりの事情が詳しく説明されており,必読文献である。

また,著作権の消滅した本を集めたインターネット上の電子化図書館である「青空文庫」からのお知らせ「そらもよう」にも,2018年の12月31日に富田晶子さんから,また,2019年の1月1日には檄文が,寄せられている。著作物の適正な再利用の促進を目的としてCCライセンスを普及させている「クリエイティブ・コモンズ・ジャパン」は,2018年の12月30日にツイッターでメッセージを出している。


2019年1月2日水曜日

初夢

初夢の定義については,複数の説があるようだ。NHKの番組でもやっていた。

(1)節分から立春にかけての夜に見る夢
(2)大晦日から元旦にかけての夜に見る夢
(3)元旦から二日にかけての夜に見る夢
(4)二日から三日にかけての夜に見る夢
その昔は(1)で,江戸時代は(4),最近は(3)が多いとある。

自分が子どものころのお正月は一大行事であって,大晦日の夜のお風呂はかなり緊張して身を清め,全身新しい下着に身を包んで気合いを入れ,妹が9時からの紅白歌合戦を見始める前には就寝し,(2)の初夢を見るべく努力していた(宝船の絵は使いません)。

一富士二鷹三茄子は,一姫二太郎三なすび,の隣に記憶されているが,一は曾我兄弟の仇討ち場所の富士の裾野,二は忠臣蔵の浅野家の紋所の鷹,三は伊賀越鍵屋の辻の地場産物の茄子,の日本三大仇討ちシリーズの暗示だ,などという話は子どもには教えてもらえなかった(親も知らなかったのかもしれない)。

P. S.  長女が1歳の頃,家族で伊賀に旅行したときに,伊賀越の漬物をお土産に買ったような気もするが,今見ると茄子はメインにはなっていない。伊賀では金谷にも行きました。伊賀肉の思い出は他にもある。2005年ごろに教育実習の研究授業の参観指導で,三重県の津あたりまで行ったことがある。実習生のK山君の母上が実習先の中学校までわざわざ差し入れを持ってきて下さった。ありがとうございました。

P. P. S.  今年はぎっくり腰のため,寝返りも夜中のトイレもつらく,初夢どころではない。


画像はWikipedia「初夢」より

「初夢の辻褄合ってしまひけり」(片山由美子 1952-)

2019年1月1日火曜日

元旦


謹  賀  新  年


新しい年を迎え皆様のご健康とご多幸を
心よりお祈り申し上げます
本年もどうぞよろしくお願いいたします


 2019年 1月1日


P. S.  新元号の公表は4月1日になったようだ。
(エイプリルフールなのだろうか?)


「年越の夢路にさへや老の坂」(内藤風虎 1619-1685)

2018年12月31日月曜日

冷血(下):高村薫

冷血(上):高村薫からの続き

小晦日に,マンションの自転車置き場の自転車に来年用のシール(印刷が平成から西暦に変更された)を貼ろうとした。強風のせいなのか自分の自転車を含んで10台以上が将棋倒しになっていた。端から順に起そうとしたところ,最初の2台が絡み合っていて無理に力を入れたため,ぎっくり腰になってしまい往生している。この年末年始は要介護認定状態の予行演習で終わってしまいそうだ。

予想通り,冷血の下巻では上巻以上の何かはまったく生起しない。いろいろな登場人物のモノローグの集合で終わってしまった。しかもそのモノローグは,ほとんどが高村薫の口から直接に発せられているような同じ響きを帯びている。気になった単語は「とまれ」。ともあれかくもあれ→ともあれ→とまれ,さもあればあれ→さもあれ→さまれ,のとまれが地の文で多用されていた。戸田吉生の文中には「ともあれ」で出てきていたが,井上克美の文中に一ヶ所「とまれ」がでてきた。小説にカタルシスを求めるのであれば,「冷血」は期待外れとなるかもしれない。黒板への板書だけで授業を進めるように,ゆっくりと同じテーマを何度も塗り重ねて,アクティブ・リーディングを誘導するという意味ではありかなと思う。

法務に係わるものにせよ,科学に係わるものにせよ,教育に係わるものにせよ,自分たち自身を,自分たちのステークホールダーを,あるいは自分たちの振るまいを見る世間を,納得させるために,一定の因果関係とそれを物語る言葉を必要としているということだろう。物語を必要としないのは,結果をマネーで測定できる人達だけなのかもしれない。そして,我々は既存の物語が不要な世界を目指す船に乗っている。“その中においてですね” 歴史的事実や統計データや行政文書の隠蔽や改竄がしごくあたりまえのように遂行され,物語がいつのまにかすり替えられてしまう。みなが薄々気付いているはずだが,何も見なかった振りをするか,逆に,声高にニセの物語を語り始める。もう,それに対する歯止めはきかなくなっている。

「大晦日定めなき世の定めかな」(井原西鶴 1642-1693)


2018年12月30日日曜日

元号の予想(2)

元号の予想(1)の続き)

昨日からJuliaの配列と型について少しだけ前進した。Juliaはあらかじめ型指定をしなくても,定数が定義されたり,変数が値で束縛された場合に適当な型に定まるという優れものだが,それが話をややこしくしている。どうしても配列を宣言したい場合の基本は,型が T で次元が N の配列に対して,Array{T, N}(undef, dims) である。しかし,配列宣言を省略したい場合は,次のようなバリエーションもある。

(1) 定数として与える。a=[ 1, 2.0, 3//4, 'あ', "漢字"]
(2) 初期値定数を埋め込む。b=ones(Int64,10), c=zeros(2,300) や trues(), fill()など。
(3) 配列を空で作成し,d=Any[ ],push, insert など

で追加する。などなど。このあたりでさらに勉強したほうがよろしいかもしれない。

とりあえず,昨日のアルゴリズムに準じて作成中のコードは以下のようになるが,
結果からベスト50を取り出して整形すると,こんな感じ(*は未だ存在しないもの)。
カッコ内の数字は各文字の相対頻度の積である。この中では文元さんがよさそうである。

("天治", 0.179835)
("天和", 0.17037)
("天徳", 0.13251)
("天暦", 0.13251)
("天永", 0.13251)
("文治", 0.125103)
("永治", 0.125103)
("天安", 0.123045)
("天応", 0.123045)
("文和", 0.118519)
("永和", 0.118519)
("元治", 0.117284)
("天保", 0.11358)
("天元", 0.11358)
("元和", 0.111111)
("寛治", 0.109465)
("寛和", 0.103704)
("正治", 0.101646)
("正和", 0.0962963)
("文徳", 0.0921811)
("文暦", 0.0921811)
("文永", 0.0921811)
("永徳", 0.0921811)
("永暦", 0.0921811)
("永永", 0.0921811)*
("元徳", 0.0864198)
("元暦", 0.0864198)
("元永", 0.0864198)
("嘉治", 0.0860082)*
("延治", 0.0860082)*
("長治", 0.0860082)
("文安", 0.0855967)
("文応", 0.0855967)
("永安", 0.0855967)
("永応", 0.0855967)*
("嘉和", 0.0814815)*
("延和", 0.0814815)
("長和", 0.0814815)
("寛徳", 0.0806584)
("寛暦", 0.0806584)*
("寛永", 0.0806584)
("元安", 0.0802469)*
("元応", 0.0802469)
("文保", 0.0790123)
("文元", 0.0790123)*
("永保", 0.0790123)
("永元", 0.0790123)
("康治", 0.0781893)
("建治", 0.0781893)
("承治", 0.0781893)*

しかし,ここでちょっと問題が生じた。相対頻度の積の順位でみると,明治は159位,大正は445位,昭和は741位,平成は1939位なのだ。どんどん手垢のついていない名称が選ばれるようになってきた。つまり,頻度順リストでは意味がなかったのである・・・orz

P. S. 既存の元号との照合にはWikipediaを用いるのが便利そうだ。日本に加え中国・朝鮮・越南その他の東アジアの元号があるかどうか(俗用も?)をそこそこ確認できそうである。

P. P. S. 勧進元周辺の皆様方にはさらに努力していただき,5月ぎりぎりまで公表を延ばすように運動されて,その結果として元号から西暦への転換が進むことを期待します。


function gfrq(c,n,r,m)
#
# c input array of kanji char
# n size of c  
# r output array of sorted (kanji, count)
# m size of r
#
  sort!(c)
  k=0
  for j=2:n
    k=k+1
    if c[j]!=c[j-1]
      push!(r,(c[j-1],k))
      k=0
    end
  end
  sort!(r, by=x->x[2], rev=true)
  m=length(r)
  println((m,r))
end

g="大化,白雉,朱鳥,大宝,慶雲,和銅,霊亀,養老,神亀,天平,感宝,勝宝,宝字,神護,景雲,宝亀,天応,延暦,大同,弘仁,天長,承和,嘉祥,仁寿,斉衡,天安,貞観,元慶,仁和,寛平,昌泰,延喜,延長,承平,天慶,天暦,天徳,応和,康保,安和,天禄,天延,貞元,天元,永観,寛和,永延,永祚,正暦,長徳,長保,寛弘,長和,寛仁,治安,万寿,長元,長暦,長久,寛徳,永承,天喜,康平,治暦,延久,承保,承暦,永保,応徳,寛治,嘉保,永長,承徳,康和,長治,嘉承,天仁,天永,永久,元永,保安,天治,大治,天承,長承,保延,永治,康治,天養,久安,仁平,久寿,保元,平治,永暦,応保,長寛,永万,仁安,嘉応,承安,安元,治承,養和,寿永,元暦,文治,建久,正治,建仁,元久,建永,承元,建暦,建保,承久,承応,元仁,嘉禄,安貞,寛喜,貞永,天福,文暦,嘉禎,暦仁,延応,仁治,寛元,宝治,建長,康元,正嘉,正元,文応,弘長,文永,建治,弘安,文永,建治,弘安,正応,永仁,正安,乾元,嘉元,徳治,延慶,応長,正和,文保,元応,元亨,正中,嘉暦,元徳,元弘,正慶,建武,延元,興国,正平,建徳,文中,天授,弘和,元中,暦応,康永,貞和,観応,文和,延文,康安,貞治,応安,永和,康暦,永徳,至徳,嘉慶,康応,明徳,応永,正長,永享,嘉吉,文安,宝徳,享徳,康正,長禄,寛正,文正,応仁,文明,長享,延徳,明応,文亀,永正,大永,享禄,天文,弘治,永禄,元亀,天正,文禄,慶長,元和,寛永,正保,慶安,承応,明暦,万治,寛文,延宝,天和,貞享,元禄,宝永,正徳,享保,元文,寛保,延享,寛延,宝暦,明和,安永,天明,寛政,享和,文化,文政,天保,弘化,嘉永,安政,万延,文久,元治,慶応,明治,大正,昭和,平成,"
n=div(length(g),3)
a=fill(' ',n)
b=fill(' ',n)
for i=1:7:n*7
  a[div(i,7)+1]=g[i]
  b[div(i,7)+1]=g[i+3]
end
p=[ ]
q=[ ]
mp=0
mq=0
gfrq(a,n,p,mp)
gfrq(b,n,q,mq)
mp=length(p)
mq=length(q)
#
r=[ ]
for j in 1:mp
  for k in 1:mq
    if p[j][1]!=q[k][1]
      push!(r,(string(p[j][1],q[k][1]),p[j][2]*q[k][2]/(mp*mq)))
    end
  end
end
sort!(r, by=x->x[2], rev=true)
println((length(r),r))


(45, Any[('天', 23), ('文', 16), ('永', 16), ('元', 15), ('寛', 14), ('正', 13), ('嘉', 11), ('延', 11), ('長', 11), ('康', 10), ('建', 10), ('承', 10), ('弘', 7), ('応', 7), ('大', 6), ('宝', 6), ('貞', 6), ('仁', 5), ('安', 5), ('明', 5), ('享', 4), ('慶', 4), ('万', 3), ('保', 3), ('治', 3), ('久', 2), ('平', 2), ('暦', 2), ('神', 2), ('乾', 1), ('勝', 1), ('和', 1), ('寿', 1), ('徳', 1), ('感', 1), ('斉', 1), ('昌', 1), ('昭', 1), ('景', 1), ('朱', 1), ('白', 1), ('至', 1), ('興', 1), ('観', 1), ('霊', 1)])

(54, Any[('治', 19), ('和', 18), ('徳', 14), ('暦', 14), ('永', 14), ('安', 13), ('応', 13), ('保', 12), ('元', 12), ('仁', 8), ('長', 8), ('久', 7), ('禄', 7), ('平', 6), ('正', 6), ('亀', 5), ('延', 5), ('慶', 5), ('承', 5), ('享', 4), ('宝', 4), ('文', 4), ('中', 3), ('化', 3), ('喜', 3), ('寿', 3), ('政', 3), ('弘', 2), ('明', 2), ('観', 2), ('雲', 2), ('万', 1), ('亨', 1), ('吉', 1), ('同', 1), ('嘉', 1), ('国', 1), ('字', 1), ('寛', 1), ('成', 1), ('授', 1), ('武', 1), ('泰', 1), ('祚', 1), ('祥', 1), ('禎', 1), ('福', 1), ('老', 1), ('衡', 1), ('護', 1), ('貞', 1), ('銅', 1), ('雉', 1), ('養', 1)])


「妻すこし昼を睡りぬ小晦日)」(星野麦人 1877-1965)

元号の予想(3)に続く)

2018年12月29日土曜日

元号の予想(1)

朝起きると結城浩さんのこんなツイートをみかけたので,年末年始の学習課題を「次の元号を予想すること」に設定して,早速 Julia(プログラミング言語)でチャレンジしようとしたところ,私が Julia Language の型と配列を全く理解していないこと,が判明したので顔を洗って出直すことにする。

Wikipediaの元号制定の条件には次のような5条件が書いてある。
(イ) 元号は本邦はもとより言うを俟たず,支那,朝鮮,南詔,交趾(ベトナム)等の年号,その帝王,后妃,人臣の諡号,名字等及び宮殿土地の名称等と重複せざるものなるべきこと。
(ロ) 元号は、国家の一大理想を表徴するに足るものとなるべきこと。
(ハ) 元号は、古典に出拠を有し、その字面は雅馴にして、その意義は深長なるべきこと。
(ニ) 元号は、称呼上、音階調和を要すべきこと。
(ホ) 元号は、その字面簡単平易なるべきこと。
誰だ,MTSH以外の頭文字で漢字2文字なら良いといったのは。これから,古典の教養が欠落している場合には元号の予想は無理だ,というのが普通に理解できる。しかし,ネトウヨの勧進元があれだけ嫌中(今はむしろ嫌韓あおりモード一直線?)なのであれば,しかも勧進主がニセ歴史コピペ本を堂々と宣伝するような状態なのであれば,古典に依拠せず出典も明記せずにテキトーにでっちあげることも十分に予想される。

その場合は,理系の御用学者が次のようなアルゴリズムを考えることもあるだろう。
(1) 過去の日本の元号のリストAをつくる。
(2) Aの各要素から1文字目と2文字目の漢字の頻度順リストBとCをつくる。
(3) BとCから1文字取り出して,各頻度の積の順に候補リストDをつくる。
(4) 元号制定条件の(イ)の排除リストEでDをスクリーニングしたFをつくる。
(5) Fの上位から (ロ)〜(ホ)の条件は無視し,google検索で問題がないか確認する。
(6) 残った上位100位の中から勧進主が恣意的に決定する。
 (これでは高輪ゲートウェイとあまり変わらない・・・orz)

Wikipedia からひろって,4文字元号を2文字元号に勝手に縮減し,途中の分岐はすべて採用して200年ごとに7つに区切って並べるとおよそ次のようになる(*は30年以上継続したもので,13しかない)。下記の250の元号の平均の継続長は約5.5年であるから,昭和が如何に突出して長かったかがわかる。元号が流行ったのは11世紀から14世紀くらいであり,ほぼ終息に向っている。

621-830 (21)
 大化, 白雉, 朱鳥, 大宝, 慶雲, 和銅, 霊亀, 養老, 神亀,*天平,
 感宝, 勝宝, 宝字, 神護, 景雲, 宝亀, 天応,*延暦, 大同, 弘仁,
 天長,

831-1030 (36)
 承和, 嘉祥, 仁寿, 斉衡, 天安, 貞観, 元慶, 仁和, 寛平, 昌泰,
*延喜, 延長, 承平, 天慶, 天暦, 天徳, 応和, 康保, 安和, 天禄,
 天延, 貞元, 天元, 永観, 寛和, 永延, 永祚, 正暦, 長徳, 長保,
 寛弘, 長和, 寛仁, 治安, 万寿, 長元,

1031-1230 (64)
 長暦, 長久, 寛徳, 永承, 天喜, 康平, 治暦, 延久, 承保, 承暦,
 永保, 応徳, 寛治, 嘉保, 永長, 承徳, 康和, 長治, 嘉承, 天仁,
 天永, 永久, 元永, 保安, 天治, 大治, 天承, 長承, 保延, 永治,
 康治, 天養, 久安, 仁平, 久寿, 保元, 平治, 永暦, 応保, 長寛,
 永万, 仁安, 嘉応, 承安, 安元, 治承, 養和, 寿永, 元暦, 文治,
 建久, 正治, 建仁, 元久, 建永, 承元, 建暦, 建保, 承久, 承応,
 元仁, 嘉禄, 安貞, 寛喜,

1231-1430 (65)
 貞永, 天福, 文暦, 嘉禎, 暦仁, 延応, 仁治, 寛元, 宝治, 建長,
 康元, 正嘉, 正元, 文応, 弘長, 文永, 建治, 弘安, 文永, 建治,
 弘安, 正応, 永仁, 正安, 乾元, 嘉元, 徳治, 延慶, 応長, 正和,
 文保, 元応, 元亨, 正中, 嘉暦, 元徳, 元弘, 正慶, 建武, 延元,
 興国,*正平, 建徳, 文中, 天授, 弘和, 元中, 暦応, 康永, 貞和,
 観応, 文和, 延文, 康安, 貞治, 応安, 永和, 康暦, 永徳, 至徳,
 嘉慶, 康応, 明徳,*応永, 正長,

1431-1630 (26)
 永享, 嘉吉, 文安, 宝徳, 享徳, 康正, 長禄, 寛正, 文正, 応仁,
 文明, 長享, 延徳, 明応, 文亀, 永正, 大永, 享禄,*天文, 弘治,
 永禄, 元亀,*天正, 文禄,*慶長, 元和,

1631-1830 (26)
*寛永, 正保, 慶安, 承応, 明暦, 万治, 寛文, 延宝, 天和, 貞享,
 元禄, 宝永, 正徳,*享保, 元文, 寛保, 延享, 寛延, 宝暦, 明和,
 安永, 天明, 寛政, 享和, 文化, 文政,

1831-2030 (12)
 天保, 弘化, 嘉永, 安政, 万延, 文久, 元治, 慶応,*明治, 大正,
*昭和,*平成, ××

元号の予想(2)に続く)

2018年12月28日金曜日

プログラミング教育の欠点(1)

Juliaプログラミングの練習のため(なのか認知症予防のためなのか…)に,Bogumił KamińskiJulia Express を訳している。MITライセンスなのでわりと自由に利用できそうである。この記事には こJulia Expressから派生して修正した部分があるので,MITライセンスが適用されるものとする。

Julia Express の図1に,数値型の階層図があるので,それを再現すべく TikZ のコードを自力で書いてみた。ところで,上記で示したGit Hubのページには TeXソースが載っているので,自分で再現する必要は全くなかったのであることに,今ごろ気がついた。 しかし,それはそれで TikZ の練習になったのでよしとしよう。

#体系的な学習がなされていない例
\begin{tikzpicture}
[every node/.style={thick, minimum width=1.2cm, minimum height=0.5cm,
draw=black, top color=gray!0, bottom color=gray!15, rounded corners, align=center}]
\draw[help lines, step=0.5cm, color=gray!5] (0,0) grid (15.5,10);
\node at (5.75,9) (N) {\tt Number};
\node at (4,7.5) (L) {\tt Complex\{T:$<$Real\}};
\node at (7.5,7.5) (M) {\tt Real};
\node at (1.75,6) (H) {\tt Irrational\{sym\}};
\node at (5.75,6) (I) {\tt Rational\{T:$<$Integer\}};
\node at (9,6) (J) {\tt Integer};
\node at (14,6) (K) {\tt AbstractFloat};
\node at (6,4) (C) {\tt Bool};
\node at (8,4) (D) {\tt Signed};
\node at (10,4) (E) {\tt Unsigned};
\node at (12,4) (F) {\tt BigInt};
\node at (14,4) (G) {\tt Float16\\ \tt Float32\\ \tt Float64\\ \tt BigFloat};
\node at (8,2) (A) {\tt Int8\\ \tt Int16\\ \tt Int32\\ \tt Int64\\ \tt Int128};
\node at (10,2) (B) {\tt UInt8\\ \tt UInt16\\ \tt UInt32\\ \tt UInt64\\ \tt UInt128};
\draw (N) -- (L);
\draw (N) -- (M);
\draw (M) -- (H);
\draw (M) -- (I);
\draw (M) -- (J);
\draw (M) -- (K);
\draw (J) -- (C);
\draw (J) -- (D);
\draw (J) -- (E);
\draw (J) -- (F);
\draw (K) -- (G);
\draw (D) -- (A);
\draw (E) -- (B);
\end{tikzpicture}
背景にグリッドをおき,左下を原点としcmを単位とする座標系上に,目分量で読み取ったノードを配置したのだが,これは TikZ の階層図における木構造の概念を私がまったく理解していなかったためである。あるいは,フォントスタイルの一括指定ができていないので無駄なコードを書いている,などなど。残念!しかし,集中すれば1日でできる仕事だ。

プログラミング教育において,体系的な学習が欠落しても,別の代替方法で無理やり実現できることは普通によくあることなので,よほど注意しないといけない。この場合もだらだらした試行錯誤によって座標を調整した(もちろんその手の作業が必要な場合もあるが)。よほど十分に吟味された教材と方法と教員へのトレーニングを準備しないと,主体的というふれこみでバトンを渡された学習者が無駄な作業を繰り返し,それが習慣化されてしまう心配がある。そう,プログラミング教育は,そのほとんどの時間で論理的思考なんかを育まないのである。ゲームと同じで無限の試行錯誤が結果を導くのだ。論理的思考のかわりに獲得できるのは,ブラック企業での単純反復労働作業に適応できる忍耐力だろう。

注意点:
(1) 最初はノードの説明文の量によって複数のスタイルが必要なのかと思ったが, minimum width とか minimum height でフレキシブルに対応できた。
(2) ノードの背景に色のグラデーション=gradientをつけるのがわからなかったが,2つの色 top color とbottom color を指定して解決した。left color とright color でも可能。
(3) ノードのテキストに改行が必要な場合,\\ だけでは対応できず,tikzpictureのオプションに align=center(あるいはleft とか right とか)をつけると解決した。
(4) sibling distance に加えて level distance というものがあった。

2018年12月27日木曜日

素数鉛筆

京都大学生協限定素数価格577円で販売している素数ものさしは皆様よくご存知のことと思う。それでは素数えんぴつ(A Prime Pencil)はどうだろう。このあたりで販売しているようだ。本日twitterでWolfram Japanさんが宣伝していたのでさっそく試してみた。いや,購入したのではなくて,「Juliaでプログラミング教育をはじめよう(仮題)」の練習問題を作ったのだ。本家のほうはバリバリのMathematica関数プログラミングなので,スマートすぎておじぃさんには手に負えない。

注意点:今日も型の整合性のところで難渋した。適当な演算では自動型変換は行われないので,明示的に型を指定する必要があった。10^mが  Int128 (-2^{127} 〜 2^{127} - 1)を必要とする場面で,10^m → Int128(10)^mとすべきところに嵌まった。また,zeros()とかones() で配列を準備するところで,型指定が必要なのに気付かなかった。p = zeros(Int128,N)とか q = ones(Int,N) などとしなければならない。

結果は以下の通りで出力は省略するが,23桁には3つの素数( 96686312646216567629137, 57686312646216567629137,95918918997653319693967)があり,最大の24桁では1つの素数(357686312646216567629137)が得られた。これ以上はありません。これを鉛筆に焼いて左から削っていけばよい。そうそう,素数鉛筆に印刷されている切り捨て可能素数の定義を説明するのを忘れていた。与えられた素数の上位桁(または下位桁)から1桁づつとりのぞいた数が再び素数であり,最後に1桁の素数が残るものである。

P. S. @ksasaoさんが右から削る場合にも言及していたので,こちらも加えた。いずれも終了判定はしていないので人力でがんばってほしい。


using Primes

#左から削っていく場合の切り捨て可能素数
function pencil1(N)
  p=zeros(Int128,N)
  q=ones(Int,N)
  r=Int128(10)
  p[1]=3
  p[2]=7
  nb = 0
  nt = 2
  while max(nb,nt) < N-1
    nb=nb+1
    for j in 1:9
      k= (r^q[nb])*j+p[nb]
      if isprime(k)
        nt=nt+1
        p[nt]=k
        q[nt]=q[nb]+1
      end
    end
  end
  println(q)
  println(p)
end

#右から削っていく場合の切り捨て可能素数
function pencil2(N)
  p=zeros(Int128,N)
  q=ones(Int,N)
  r=Int128(10)
  p[1]=2
  p[2]=3
  p[3]=5
  p[4]=7
  nb = 0
  nt = 4
  while max(nb,nt) < N-1
    nb=nb+1
    for j in 1:9
      k= 10*p[nb]+j
      if isprime(k)
        nt=nt+1
        p[nt]=k
        q[nt]=q[nb]+1
      end
    end
  end
  println((q,p))

end

2018年12月26日水曜日

文学のふりかけ

齢を重ねると小説を書きたいという人が一定の割合で増えてくるような気がする。
以前,出席した同窓会でもそんな発言があってちょっとドキッとした。こんなにストレートに思いを表現しても良いのだ。さて,我が身を振り返ると,星新一賞はすでにご近所の方が獲得されてしまい,自分にはこれといった得意分野もなく,最近のSFはというと(例えば「トランスヒューマンガンマ線バースト童話集」)遠く先の方に進んでしまってとても追い付けそうにもない。

しかし,文章をあれこれ練るのは論文を書くのと同様にたいへん楽しい活動である(ということをこのブログによって再認識した)。そこで,安藤百福のように新しい方法がないかと考えたところ,第一の問題は材料である。比べるのも申し訳ないが,高村薫でも相当の取材をしてそこから文学のクッキングを始めているようだ。すでに自分の経験の中に材料があれば問題ない。そうではなくて,意気込みだけはあるが年金生活のために材料が買えない,とか,知的資産として蓄えるのを怠っていた場合になんとかできないかということ。

で,「文学のレシピ本舗(仮称)」が発売するインスタント知的食品「文学のふりかけ(2018.12.26 google未定義語)」を購入してもらう。様々なフレーバーのテキストを用意して,そこから形態素解析などで抽出した単語やセンテンスをフレーバーごとにパッケージ化する。この何種類かのスパイスを適当な割合で混ぜて,ベースとして埋め込んだページが標準で提示される。単語が薄い密度であらかじめ埋め込まれたページ群である。これらの言葉に自分のオリジナルな思考を結合し,消去し ,連想しながら言葉を書き加え,文章に編み込んでゆく。あとはシェフの腕次第。

古典フレーバーのパッケージもほしい。文楽浄瑠璃パッケージ(時代物編乾)とか文楽浄瑠璃パッケージ(世話物編坤)とか宇治拾遺物語パッケージ(仏教編空の巻)とか。というところで,形態素解析の古語版が必要だということに気がついた。そんなものがあるのか。ありました。国立国語研究所のUniDicである。商用利用は要相談だそうなので,落ち着いて試してから相談してみよう。というようなことをしている時間はもうあまりない。







2018年12月25日火曜日

クリスマス

メリー・クリスマス。

浄土真宗の檀家であるにも拘わらず,子どもの頃に通っていた金沢の若草幼稚園が基督教系だったせいもあって,クリスマスとの親和度は高かったような気がする。この幼稚園では,クリスマスの時期にキリスト生誕の劇をすることになっていた。私の妹も2,3年後に同じ幼稚園で主役のマリアさまを演じている。友達のD嶋君などは輝ける東方の三博士の1人の役であった。動物の役だと馬や牛のお面を被るため,それはそれでカッコイイのであるが,自分はその他大勢の羊飼いの役なのだ。茶色い風呂敷を頭から巻くと,あっという間に中東の荒野を彷徨う羊飼いのできあがり。マリアさまや三博士とは違い,写真撮影時には最右翼端に位置することになる。

近所に住んでいた祖母がこの幼稚園の園長先生の友達だったので,もう少し良い役が回ってきてもよさそうなものなのであるが,当時の私は引っ込み思案予備軍の幼稚園登園拒否児だったので,そうは問屋が卸さなかった。母の作ってくれたお弁当の時間や,腹巻き付きのオープン寝袋(立方体の展開図的な薄い布団のこと)によるお昼寝の時間は楽しかった。が,弱虫だったこともあり,砂場での土木建築作業や室内における体力強化のための身体大積木建設バトルは相当苦手だった。そうかといって,お絵書きの時間でも,人間の顔を描くのに肌色の絵の具が無くて泣き出す始末。三博士のD嶋君は「黄色でも大丈夫だよ」とたいへん適切なアドバイスをしてくれたのだが,それはイヤなのね。

小学校に入って1,2年生の頃,近所の羊飼い友達のM崎君と幼稚園に隣接している日本基督教団若草教会の日曜学校に通った。日曜の朝10時から始まり,牧師さんのお話と賛美歌があるのだが,手に持たされた聖書のページを指定されてもどこを見れば良いのかさっぱりわかりません。毎週毎週分かったふりをしてページを捲り続けるという困惑の時間が続くのだった。このような経験は皆さん多かれ少なかれありそうなので(そうでないのかもしれませんが…),誰もがわからない子どもの気持ちに共感してもよさそうなものである。しかし,残念なことに人間は物事が少しわかり出すと,まわりのことが見えなくなる。自分の認識座標系を相対論化することは大変困難な課題である(これも宿題)。

P. S. 賛美歌も著作権でガチガチに絞められていて,なかなかつらいものがある。

「おほかたは星の子の役聖夜劇」(伊藤トキノ 1936-)


2018年12月24日月曜日

Queen

昨日,夫婦でシネマサンシャイン大和郡山に「ボヘミアン・ラプソディ(Bohemian Rhapsody)」を観に行った。ウェブでシニアチケットを購入するのだが,トップバナーに阻害されて目的の作品にたどり着くまでのユーザフローがちょっと面倒。そんなことはあまり感じないであろう若い人にも人気だとのことで,確かにそんな客層だったかもしれない。終演後に聞こえてきた若者たちの感想もそんな風だったとのこと。

さて,クイーンである。クイーンが結成されたのは1971年だが,最初のアルバム「戦慄の女王」が出た1973年や初来日した1975年は,ちょうど自分が大学生のころで,すでに洋楽ポップスからは足を洗っていたため,リアルタイムで聴いた印象がない。勉強を教えていた中学生が好きなグループとしてベイ・シティ・ローラーズとクイーンをあげていたような気がする。同時期のロックバンドとしては好みでなかったキッスの方がヴィジュアルに目に刻まれている。

そのクイーンの音楽がいいなと思った最初のきっかけは,フレディ・マーキュリーが亡くなって15年後の2006年ごろに放映されたV6の「学校へ行こう!MAX」である。エアボーカル企画で佐賀大学の野球部が出演し「Don't Stop Me Now」や「Bicycle Race 」を歌っていて,ちょっとはまってしまった(微かな記憶だったが,インターネットでここまで辿れる)。

映画の方は,とても楽しめる音楽映画だった。自分が生で見た洋楽ポップスの主なコンサートは,1970年のフィフス・ディメンション(大阪万博),1972年のビージーズ(大阪),1979年のライブ・アンダー・ザ・スカイ(万博公園)くらいなのだが,1985年のクイーン(ウェンブリー・スタジアム)のライブ・エイドも堪能することができた。

2018年12月23日日曜日

カプレカ数

 しばらく前に,どこかで,カプレカ数(Kaprekar Number)を見かけた。Julia言語でプログラミングしようとすると,あれやこれやわかっていなくて難渋した。

 カプレカ数には複数の定義がある。(1)ある正整数の2乗を上位桁と下位桁の2数に分割して和をとったものが,もとの整数に等しいもの。分割の仕方がより一般的なものとより制限的なものの2種類がある。(2)ある正整数の桁を並べ替えてできる最大の数から最小の数を引いた(カプレラ写像した)ものがもとの整数と等しいもの。どのような3桁の数もカプレラ写像を繰り返すと0または495になる。また,同様に4桁の数は0または6174になる(西山豊 6174の不思議Mysterious Number 6174)。それ以外の桁の数では一定の範囲で反復するが収束しない場合もあるので,そこまで親切に面倒をみていないので残念な下記コードを動かす場合は注意が必要である。

 Julia は強力な型変換機能を持っているが,実数を整数化するような簡単な操作で逆につまずいた。ある実数の値の変数を Int() で整数化しようとするとエラーになる。その実数の値が整数と同じならば問題ない。例えば,x=1. ; print(Int(x)) は問題なしなのだが,x=1.5 ; print(Int(x)) は,InexactError: Int64(Int64, 1.5) となる・・・orz。整数除算の div(m,n) もちょっと見栄えがよくないかも。配列が 0 から始まらないのはまあいいか。


function kaprekar1(m)
#this is a kaprekar number http://oeis.org/A053816
#NOT the definition http://oeis.org/A006886
  m2=m^2
  n=Int(ceil(log10(m2+.1)))
  nun=zeros(Int,n)
  for k in 1:n
    nun[k]=m2 % 10
    m2=div(m2-nun[k],10)
  end
  n1=n%2
  n2=div(n,2)
  sum=nun[n-n2]*n1
  for k in 1:n2
    sum=sum*10+nun[n+1-k]+nun[n-n2+1-k-n1]
  end
  if m==sum
    println(sum)
  end
end

function kaprekar2(m)
#this is an another kaprekar number http://oeis.org/A099009
  n=Int(ceil(log10(m)))
  nun=zeros(Int,n)
  for k in 1:n
    nun[k]=m % 10
    m=div(m-nun[k],10)
  end
  min=sort(nun)
  dif=0
  for k in 1:n
    dif=dif*10+min[n-k+1]-min[k]
  end
  return dif
end

k=2 #inout data1
for i in 10^(k-1):10^k-1
  kaprekar1(i)
end

new=3833 #input data2
cnt=0
while old != new
  old=new
  new=kaprekar2(old)
  cnt=cnt+1
end
  println((cnt,new))

45
55
99
(7, 6174)


2018年12月22日土曜日

冬至

 冬至(Winter Solstice 今日までこんな単語は知らなかった)は,一年の内で最も昼の短い日。例えば,きょうこのあたりでは,日の出が7:00,日の入は16:50なので,昼は9時間50分(41%),夜は14時間10分(59%)である。冬至や夏至の前後では一日ずれると昼夜の時間が1分(0.07%)ほど変化するものと思われる。

 冬至の定義をもう少し丁寧に調べようとすると,次のように自分があまり正確には分かっていない言葉(概念)の連鎖が得られた。冬至(冬至日)→冬至点(春分点・夏至点・秋分点)→黄経270度→黄道(天頂・天底・白道)→ 定記法(二十四節気・恒気法)。でもWikipediaの網を用いることで,ある程度までは適当な精度で理解することができるように思える。

 Wikipediaに対しては,かなり有益,やや有益,中立,やや有害(あまり信用できない),かなり有害(まったく信用できない)という意見がある。利用する場面や対象によって,この価値判断スペクトルが虹色に変化する。教育や研究の場では「知識の安全性」を担保する必要があるので,否定的な考えのほうが多いかもしれない。

 「理解の精度」という概念を導入して,知識の信頼性と有用性を場面ごとに尺度変換して考えることはできないだろうか。ある知識のまわりに連結するネットワークの密度が高ければ高いほど,相互信頼性が増して理解の精度が高くなるということを定量的に扱うことができないかということ。次の夏至までの宿題にしよう(夏への扉)。

「行く水のゆくにまかせて冬至かな」(田川鳳朗 1762-1845)