2019年4月18日の日本経済新聞によりますと,内閣府の総合科学技術・イノベーション会議は,「人工知能(AI)など先進的な技術の教育・研究に積極的に取り組む国立大学に運営費交付金を重点的に多く配分する方針を決めた」そうです。また,先日報道されていた,「2025年までに年間で約25万人のAIを使いこなす人材を育成するための大学改革を進めていく方針も確認した」とのことです。
twitter上ではなんだかなぁ〜という声があふれていた。まったくなぁ〜である。
これに関連しそうな情報をまとめてみた。
◎数理及びデータサイエンス教育の強化に関する懇談会
大学の数理・データサイエンス教育強化方策について」の公表について(平成28年12月21日)
http://www.mext.go.jp/b_menu/shingi/chousa/koutou/080/gaiyou/1380788.htm
「数理及びデータサイエンスに係る教育強化」の拠点校の選定について(平成28年12月21日)
http://www.mext.go.jp/b_menu/shingi/chousa/koutou/080/gaiyou/1380792.htm
数理・データサイエンス教育強化拠点コンソーシアム
http://www.mi.u-tokyo.ac.jp/consortium/
北海道大学 データサイエンスセンター
https://www.mdsc.hokudai.ac.jp
東京大学 数理・情報教育センター
http://www.mi.u-tokyo.ac.jp
滋賀大学 データサイエンス教育研究センター
https://www.ds.shiga-u.ac.jp/dscenter/
京都大学 データ科学イノベーション教育研究センター
http://ds.k.kyoto-u.ac.jp
大阪大学 数理・データ科学教育研究センター
http://www-mmds.sigmath.es.osaka-u.ac.jp
九州大学 数理・データサイエンス教育研究センター
http://mdsc.kyushu-u.ac.jp
【参考】統計数理研究所
https://www.ism.ac.jp/index.html
◎大学の数理・データサイエンス教育強化方策推進検討委員会
「大学における数理・データサイエンス教育の全国展開」の協力校の選定について(平成31年1月8日)
http://www.mext.go.jp/b_menu/shingi/chousa/koutou/095/gaiyou/1412367.htm
この20校のなかで目立った動きがあるのは,神戸大学くらいであった。
神戸大学 数理・データサイエンスセンター
http://www.cmds.kobe-u.ac.jp
芥川龍之介が「蜘蛛の糸」を発表して百年。高二の秋の文化祭,クラスの仮装行列のテーマが 蜘蛛の糸だった。お釈迦様の極楽タワーの竹を近所から切り出し,地獄の焔と煙の絵を描いた。犍陀多に続いて蜘蛛の糸(登山部の赤いザイル)に群がる地獄の亡者だったころ。
2019年4月19日金曜日
2019年4月18日木曜日
超伝導と超電導
5年前の新聞記事(Wikipediaの「超伝導」にも引用済み)が,なぜか最近再びとりあげられていた。「超「電」導のひみつ(下)−理研の威光から生まれた」 (菅井保宏 言葉の談話室 朝日新聞ことばマガジン)
それによると,「超電導」という表現は,長岡半太郎の講演録(十分校正されていない)の誤植からきている可能性があるらしい。有賀暢道さんは,もう少し文献をあたってみないとわからないのではとtwitterでコメントしていた。
授業では,「電場・磁場」と「電界・磁界」とならんで,「超伝導」と「超電導」は理学コミュニティと工学コミュニティの文化の違いとして説明してきたのだが・・・
それによると,「超電導」という表現は,長岡半太郎の講演録(十分校正されていない)の誤植からきている可能性があるらしい。有賀暢道さんは,もう少し文献をあたってみないとわからないのではとtwitterでコメントしていた。
授業では,「電場・磁場」と「電界・磁界」とならんで,「超伝導」と「超電導」は理学コミュニティと工学コミュニティの文化の違いとして説明してきたのだが・・・
2019年4月17日水曜日
非常勤講師2週目
前期は「古典力学」と「科学のための数学」と「電磁気学」を担当している。初回の受講生数は結構多かった(やがて指数関数的に減少する予定)。そのうちカリキュラム改正でこれらの科目も削減されるかもしれない。一方,文部科学省は小学校の教科担任制を打ち出しているようだけれど,また,免許法をいじるのか。なんともはや・・・
2019年4月16日火曜日
田原本青垣生涯学習センター
定年を迎えると,2日目には図書館に行くことになっているようだ(「終わった人」)。近場で自習しやすいのが,田原本青垣生涯学習センター内の田原本町立図書館である。9:30の開場から16:00ごろまで偵察してきた。LANコンセント(使えるとは書いていない)と電源のある個人学習ブースが充実していた。Wifiは1回30分×1日4回まで自由に使える(TAWARAMOTO Free Wi-Fi)。
2019年4月15日月曜日
仮名手本忠臣蔵(大序から四段目まで)
月曜日に文楽劇場に行くのは初めてだった。これまでは,土曜か日祝に決まっていたが,定年を迎え曜日選択の自由度が増えた。文楽劇場開設35周年の今年は,4月,7月,11月の3公演で「仮名手本忠臣蔵」の通し狂言をセットでコンプリートする運びである。玄人筋の評判はいまいちのようだが,これはこれでありかなと思う。このパターンでもよいので,通し狂言の公演を増やしてほしい。
今日は午前の部が仮名手本忠臣蔵の大序から四段目までだった。最初の竹本碩太夫がよかった。その次が三輪太夫かな。咲太夫も声が出て元気そうだった。大序の鶴が岡兜改めの段で,上手御簾内での語りの2番目だったと思うが,落ち着いてはっきりした声を安心して聞くことができた。碩太夫は四段目の城明け渡しの段にも抜擢?されていた。この部分は,前回みたときの記憶と違った。それは,暗い門前に大星由良之助がずっとたたずんでいるというもので,別の演目の記憶と混線しているのかもしれない。
塩谷判官切腹の段の切腹作法が続く時間の緊張感がなんともいえなかった。切腹というと1967年東宝の「日本のいちばん長い日(岡本喜八)」における阿南陸軍大臣(三船敏郎)のシーンが印象深かったが,これは忠臣蔵とは関係がない。この段の床本には御台様がずっと登場しているような表現があるのだが,顔世御前の簑助は途中は舞台には出ておらず,塩谷判官が亡くなってから登場していた。今回だけの演出なのか,これが標準的な演出なのか気になっている。
今日は午前の部が仮名手本忠臣蔵の大序から四段目までだった。最初の竹本碩太夫がよかった。その次が三輪太夫かな。咲太夫も声が出て元気そうだった。大序の鶴が岡兜改めの段で,上手御簾内での語りの2番目だったと思うが,落ち着いてはっきりした声を安心して聞くことができた。碩太夫は四段目の城明け渡しの段にも抜擢?されていた。この部分は,前回みたときの記憶と違った。それは,暗い門前に大星由良之助がずっとたたずんでいるというもので,別の演目の記憶と混線しているのかもしれない。
塩谷判官切腹の段の切腹作法が続く時間の緊張感がなんともいえなかった。切腹というと1967年東宝の「日本のいちばん長い日(岡本喜八)」における阿南陸軍大臣(三船敏郎)のシーンが印象深かったが,これは忠臣蔵とは関係がない。この段の床本には御台様がずっと登場しているような表現があるのだが,顔世御前の簑助は途中は舞台には出ておらず,塩谷判官が亡くなってから登場していた。今回だけの演出なのか,これが標準的な演出なのか気になっている。
2019年4月14日日曜日
集合と位相[内田]
易しく書いてあるなあと思いながら読んでいくと3pにいきなり,788888898個の数字というのがでてきた。1億以下の自然数全体の集合をすべて列挙する形で表現した場合に登場する数字の総数である。
1桁の数から9個,2桁の数から90×2個,3桁の数から900×3個・・・8桁の数から90000000×8個などとして,9桁の1,0000,0000(1億)の9個まで加えるとこの数字が得られた。それがどうしたといわれると,そうなんだけど・・・。
2019年4月13日土曜日
セブンルール
4/9火のテレビ番組「セブンルール(カンテレ 23:00-23:30)」で北星学園余市高等学校の本間涼子先生がとりあげられていた。彼女は大阪教育大学理科教育専攻の2002年度の卒業生である。私の研究室の学生さんで,卒業論文は「Flashアニメーションを用いた物理用語集の作成」だった。毎日遅くまで相棒の冨崎君と頑張っていたのが印象深い。
番組をみた人達のネットでの評判もすごくよい。大阪教育大学の広報室にも放送があることはいちおう伝えておいたのだけど。https://tver.jp/episode/56831021 でみられるのかな。
番組をみた人達のネットでの評判もすごくよい。大阪教育大学の広報室にも放送があることはいちおう伝えておいたのだけど。https://tver.jp/episode/56831021 でみられるのかな。
2019年4月12日金曜日
2019年4月11日木曜日
ブラックホールシャドウ(1)
国立天文台によると,国際研究チームによるイベント・ホライズン・テレスコープのプロジェクトが,地球から5500万光年にあるおとめ座銀河団の楕円銀河M87にある太陽質量の65億倍の質量を持ったブラックホールによる,ブラックホールシャドウの画像撮影(イメージング)に成功したとのこと。
APEX(チリ),アルマ望遠鏡(チリ),IRAM30m望遠鏡(スペイン),ジェームズ・クラーク・マクスウェル望遠鏡(米国ハワイ),アルフォンソ・セラノ大型ミリ波望遠鏡(メキシコ),サブミリ波干渉計(米国ハワイ),サブミリ波望遠鏡(米国アリゾナ),南極点望遠鏡(南極)のデータを合成して地球サイズの口径の電波望遠鏡を実現した。
その分解能は 2 μas($2 \times 10^{-6}arcseconds$)であり,これから得られた1.3mm (230GHz)のサブミリ波における数ペタバイトのデータがドイツのマックスプランク電波天文学研究所とアメリカのマサチューセッツ工科大学ヘイスタック観測所に設置された専用のスーパーコンピュータで処理された。
日本のニュースではちょっと日本人の活躍にウェイトがかかっていた。アルファベット順の論文の著者の最初には日本人の名前があったけど・・・。画像処理についてもアメリカチームと日本チームなど4チームが独立に取り組み,従来の分析方法2チームとスパースモデリングなどの新しい分析方法2チーム(この一つが日本チーム)がコンシステントな結果を出した。複数のパターンについて平均化されたものが,今回公表されている画像のようだ。
(注1)「Event Horizon Telescopeによる 超大質量ブラックホールの 事象の地平面スケールの観測」(秋山和徳・本間希樹 天文月報第111巻第6号 358-367 2018)
(注2)「How to Take a Picture of a Blackhole」(Katie Bouman TEDxBeaconStreet 2016)
(注3)幻冬舎文庫の「重力とは何か(大栗博司)2012」の一部が公開された。なお,事象の地平線〜シュワルツシルド半径 $R$ は,ニュートン力学の脱出速度が光速 $c$ になる場合の計算と一致する。
\begin{equation}
\dfrac{m}{2}v^2 = \dfrac{GM}{R}\hspace{1cm}
\therefore R = \dfrac{2GM}{c^2}
\end{equation}
(注4)「ブラックホールはどう視えるか」(福江純 大阪教育大学)
(注5)「ブラックホールの見え方」(広江克彦 EMANの物理学 相対性理論)
引用:EHT Cllaboration の公開画像より
APEX(チリ),アルマ望遠鏡(チリ),IRAM30m望遠鏡(スペイン),ジェームズ・クラーク・マクスウェル望遠鏡(米国ハワイ),アルフォンソ・セラノ大型ミリ波望遠鏡(メキシコ),サブミリ波干渉計(米国ハワイ),サブミリ波望遠鏡(米国アリゾナ),南極点望遠鏡(南極)のデータを合成して地球サイズの口径の電波望遠鏡を実現した。
その分解能は 2 μas($2 \times 10^{-6}arcseconds$)であり,これから得られた1.3mm (230GHz)のサブミリ波における数ペタバイトのデータがドイツのマックスプランク電波天文学研究所とアメリカのマサチューセッツ工科大学ヘイスタック観測所に設置された専用のスーパーコンピュータで処理された。
日本のニュースではちょっと日本人の活躍にウェイトがかかっていた。アルファベット順の論文の著者の最初には日本人の名前があったけど・・・。画像処理についてもアメリカチームと日本チームなど4チームが独立に取り組み,従来の分析方法2チームとスパースモデリングなどの新しい分析方法2チーム(この一つが日本チーム)がコンシステントな結果を出した。複数のパターンについて平均化されたものが,今回公表されている画像のようだ。
(注1)「Event Horizon Telescopeによる 超大質量ブラックホールの 事象の地平面スケールの観測」(秋山和徳・本間希樹 天文月報第111巻第6号 358-367 2018)
(注2)「How to Take a Picture of a Blackhole」(Katie Bouman TEDxBeaconStreet 2016)
(注3)幻冬舎文庫の「重力とは何か(大栗博司)2012」の一部が公開された。なお,事象の地平線〜シュワルツシルド半径 $R$ は,ニュートン力学の脱出速度が光速 $c$ になる場合の計算と一致する。
\begin{equation}
\dfrac{m}{2}v^2 = \dfrac{GM}{R}\hspace{1cm}
\therefore R = \dfrac{2GM}{c^2}
\end{equation}
(注4)「ブラックホールはどう視えるか」(福江純 大阪教育大学)
(注5)「ブラックホールの見え方」(広江克彦 EMANの物理学 相対性理論)
2019年4月10日水曜日
非常勤講師初日出勤
以前より30分遅い出勤で,書類提出やら出勤簿押印やら。間違えてすぐにもとの研究室に足が向かう。帰りは3時間早かった。時間感覚がつかめない状態で新年度が始まった。完全リタイアーまでの過渡期。
写真:肌寒しピンボケ桜の散り初め(2019.4.10)
2019年4月9日火曜日
2019年4月8日月曜日
2019年4月7日日曜日
2019年4月6日土曜日
2019年4月5日金曜日
2019年4月4日木曜日
2019年4月3日水曜日
2019年4月2日火曜日
2019年4月1日月曜日
2019年3月31日日曜日
元号ゲーム(2)
元号ゲームの結果をながめていたら,「弘文」が目に入った。こんな元号あったんじゃないか。調べてみると天皇の名称(弘文天皇)だった。確かに,過去の元号制定の条件(昭和大礼記録)では「元号は本邦はもとより言うを俟たず、支那、朝鮮、南詔、交趾(ベトナム)等の年号、その帝王、后妃、人臣の諡号、名字等及び宮殿、土地の名称等と重複せざるものなるべきこと」となっているので,過去の天皇の名称(漢風諡号)は排除すべきだった。
明日からの旅行の準備に忙しくてもう時間がない。面倒だなと思いつつ,日本の天皇のリストでもつくっておこうとして,天皇名のCSVファイルをつくって,EXCELに読み込ませると,何と文字化け。EXCELはUNICODEのCSVファイルをちゃんと読み込んでくれないのだった。SHIFT-JISに変換するとよいのだが,面倒な話だ。ということで,ここで意欲を失ったので,今日はおしまい。というか明日発表なので,もうおしまい。
とりあえず,データだけあげておく(正しいかどうか確認していないので注意せよ)。
"1","神武","2","綏靖","3","安寧","4","懿徳","5","考昭","6","考安","7","考霊","8","考元","9","開化","10","崇神","11","垂仁","12","景行","13","成務","14","仲哀","15","応神","16","仁徳","17","履中","18","反正","19","允恭","20","安康","21","雄略","22","清寧","23","顕宗","24","仁賢","25","武烈","26","継体","27","安閑","28","宣化","29","欽明","30","敏達","31","用明","32","崇峻","33","推古","34","舒明","35","皇極","36","考徳","37","斉明","38","天智","39","弘文","40","天武","41","持統","42","文武","43","元明","44","元正","45","聖武","46","考謙","47","淳仁","48","称徳","49","光仁","50","桓武","51","平城","52","嵯峨","53","淳和","54","仁明","55","文徳","56","清和","57","陽成","58","光考","59","宇多","60","醍醐","61","朱雀","62","村上","63","冷泉","64","円融","65","花山","66","一条","67","三条","68","後一条","69","後朱雀","70","後冷泉","71","後三条","72","白河","73","堀河","74","鳥羽","75","崇徳","76","近衛","77","後白河","78","二条","79","六条","80","高倉","81","安徳","82","後鳥羽","83","土御門","84","順徳","85","仲恭","86","後堀河","87","四条","88","後嵯峨","89","後深草","90","亀山","91","後宇多","92","伏見","93","後伏見","94","後二条","95","花園","96","後醍醐","97","後村上","98","長慶","99","後亀山","100","後小松","101","称光","102","後花園","103","後土御門","104","後柏原","105","後奈良","106","正親町","107","後陽成","108","後水尾","109","明正","110","後光明","111","後西","112","霊元","113","東山","114","中御門","115","桜町","117","後桜町","118","後桃園","119","光格","120","仁考","121","孝明","122","明治","123","大正","124","昭和","125","今上",
P. S. ミカド文庫(モラロジー研究所由来)というサイトに,「日本の年号候補・未採用文字案」というページを発見した。まじめに取り組むとこういうふうになる。
P. P. S. 明日から1週間ほどBLOG投稿はお休みになると思いますのでよろしく。
明日からの旅行の準備に忙しくてもう時間がない。面倒だなと思いつつ,日本の天皇のリストでもつくっておこうとして,天皇名のCSVファイルをつくって,EXCELに読み込ませると,何と文字化け。EXCELはUNICODEのCSVファイルをちゃんと読み込んでくれないのだった。SHIFT-JISに変換するとよいのだが,面倒な話だ。ということで,ここで意欲を失ったので,今日はおしまい。というか明日発表なので,もうおしまい。
とりあえず,データだけあげておく(正しいかどうか確認していないので注意せよ)。
"1","神武","2","綏靖","3","安寧","4","懿徳","5","考昭","6","考安","7","考霊","8","考元","9","開化","10","崇神","11","垂仁","12","景行","13","成務","14","仲哀","15","応神","16","仁徳","17","履中","18","反正","19","允恭","20","安康","21","雄略","22","清寧","23","顕宗","24","仁賢","25","武烈","26","継体","27","安閑","28","宣化","29","欽明","30","敏達","31","用明","32","崇峻","33","推古","34","舒明","35","皇極","36","考徳","37","斉明","38","天智","39","弘文","40","天武","41","持統","42","文武","43","元明","44","元正","45","聖武","46","考謙","47","淳仁","48","称徳","49","光仁","50","桓武","51","平城","52","嵯峨","53","淳和","54","仁明","55","文徳","56","清和","57","陽成","58","光考","59","宇多","60","醍醐","61","朱雀","62","村上","63","冷泉","64","円融","65","花山","66","一条","67","三条","68","後一条","69","後朱雀","70","後冷泉","71","後三条","72","白河","73","堀河","74","鳥羽","75","崇徳","76","近衛","77","後白河","78","二条","79","六条","80","高倉","81","安徳","82","後鳥羽","83","土御門","84","順徳","85","仲恭","86","後堀河","87","四条","88","後嵯峨","89","後深草","90","亀山","91","後宇多","92","伏見","93","後伏見","94","後二条","95","花園","96","後醍醐","97","後村上","98","長慶","99","後亀山","100","後小松","101","称光","102","後花園","103","後土御門","104","後柏原","105","後奈良","106","正親町","107","後陽成","108","後水尾","109","明正","110","後光明","111","後西","112","霊元","113","東山","114","中御門","115","桜町","117","後桜町","118","後桃園","119","光格","120","仁考","121","孝明","122","明治","123","大正","124","昭和","125","今上",
P. S. ミカド文庫(モラロジー研究所由来)というサイトに,「日本の年号候補・未採用文字案」というページを発見した。まじめに取り組むとこういうふうになる。
P. P. S. 明日から1週間ほどBLOG投稿はお休みになると思いますのでよろしく。
2019年3月30日土曜日
元号ゲーム(1)
前回の元号予想プログラムを少しチューニングした。条件は次のとおり。
(1) これまでの日本の元号に登場した漢字の範囲で考える。ただし1文字目と2文字目は区別して考える(4文字元号は2文字元号に読み替える)。
(2) 1文字目の漢字と2文字目の漢字のそれぞれの出現確率の積で順序づける。
(3) 既存のアジア(日本,中国,朝鮮,ベトナム,台湾)の元号とそれを入れ替えたものに一致するものは排除する(例えば,「安久」は排除される)。
(4) 慶応,明治,大正,昭和,平成の各漢字は排除する。
(5) 画数の多い漢字,MTSHで始まる漢字などを排除する(「など」のところにプログラマの主観が入る)
昭和とか平成の場合を考えると,このアルゴリズムはよくないことがわかっているが,目をつぶることにしよう(そりゃ,「苦節」とか「余命」とか「結婚」とか「懲役」とか「西暦」とか「卍」とか「タピオカ」のほうがおもしろいに決まっている)。とにかくこの条件で結果抽出されたものが下記のとおり。
(250, 839, 26, 159, 17)
("弘久", 0.020164609053497942)
("永化", 0.019753086419753086)
("元化", 0.018518518518518517)
("万安", 0.016049382716049384)
("万元", 0.014814814814814815)
("文弘", 0.01316872427983539)
("弘文", 0.011522633744855968)
("万久", 0.008641975308641974)
("文万", 0.006584362139917695)
("文同", 0.006584362139917695)
("文字", 0.006584362139917695)
("永同", 0.006584362139917695)
("永字", 0.006584362139917695)
("元万", 0.006172839506172839)
("元同", 0.006172839506172839)
("元字", 0.006172839506172839)
("安化", 0.006172839506172839)
("斉永", 0.005761316872427984)
("朱永", 0.005761316872427984)
("白永", 0.005761316872427984)
("至永", 0.005761316872427984)
("斉安", 0.005349794238683128)
("昌安", 0.005349794238683128)
("朱安", 0.005349794238683128)
("白安", 0.005349794238683128)
("至安", 0.005349794238683128)
("万文", 0.0049382716049382715)
("斉元", 0.0049382716049382715)
("昌元", 0.0049382716049382715)
("朱元", 0.0049382716049382715)
("白元", 0.0049382716049382715)
("万化", 0.003703703703703704)
("弘万", 0.002880658436213992)
("弘同", 0.002880658436213992)
("弘字", 0.002880658436213992)
("斉久", 0.002880658436213992)
("昌久", 0.002880658436213992)
("朱久", 0.002880658436213992)
("白久", 0.002880658436213992)
("至久", 0.002880658436213992)
("万弘", 0.0024691358024691358)
("久化", 0.0024691358024691358)
("安万", 0.00205761316872428)
("安同", 0.00205761316872428)
("安字", 0.00205761316872428)
("久弘", 0.0016460905349794238)
("斉文", 0.0016460905349794238)
("昌文", 0.0016460905349794238)
("朱文", 0.0016460905349794238)
("白文", 0.0016460905349794238)
Juliaが使える方は,これで適当に遊んでください。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
function exch(knj)
#
# knj input kanji string with 2 char
# return exchanged string with 2 char
return knj[4]*knj[1]
end
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
#japan
g1="大化,白雉,朱鳥,大宝,慶雲,和銅,霊亀,養老,神亀,天平,感宝,勝宝,宝字,神護,景雲,宝亀,天応,延暦,大同,弘仁,天長,承和,嘉祥,仁寿,斉衡,天安,貞観,元慶,仁和,寛平,昌泰,延喜,延長,承平,天慶,天暦,天徳,応和,康保,安和,天禄,天延,貞元,天元,永観,寛和,永延,永祚,正暦,長徳,長保,寛弘,長和,寛仁,治安,万寿,長元,長暦,長久,寛徳,永承,天喜,康平,治暦,延久,承保,承暦,永保,応徳,寛治,嘉保,永長,承徳,康和,長治,嘉承,天仁,天永,永久,元永,保安,天治,大治,天承,長承,保延,永治,康治,天養,久安,仁平,久寿,保元,平治,永暦,応保,長寛,永万,仁安,嘉応,承安,安元,治承,養和,寿永,元暦,文治,建久,正治,建仁,元久,建永,承元,建暦,建保,承久,承応,元仁,嘉禄,安貞,寛喜,貞永,天福,文暦,嘉禎,暦仁,延応,仁治,寛元,宝治,建長,康元,正嘉,正元,文応,弘長,文永,建治,弘安,文永,建治,弘安,正応,永仁,正安,乾元,嘉元,徳治,延慶,応長,正和,文保,元応,元亨,正中,嘉暦,元徳,元弘,正慶,建武,延元,興国,正平,建徳,文中,天授,弘和,元中,暦応,康永,貞和,観応,文和,延文,康安,貞治,応安,永和,康暦,永徳,至徳,嘉慶,康応,明徳,応永,正長,永享,嘉吉,文安,宝徳,享徳,康正,長禄,寛正,文正,応仁,文明,長享,延徳,明応,文亀,永正,大永,享禄,天文,弘治,永禄,元亀,天正,文禄,慶長,元和,寛永,正保,慶安,承応,明暦,万治,寛文,延宝,天和,貞享,元禄,宝永,正徳,享保,元文,寛保,延享,寛延,宝暦,明和,安永,天明,寛政,享和,文化,文政,天保,弘化,嘉永,安政,万延,文久,元治,慶応,明治,大正,昭和,平成,"
#china
g2="建元,元光,元朔,元狩,元鼎,元封,太初,天漢,太始,征和,後元,始元,元鳳,元平,本始,地節,元康,神爵,五鳳,甘露,黄龍,初元,永光,建昭,竟寧,建始,河平,陽朔,鴻嘉,永始,元延,綏和,建平,太初,元将,元寿,元始,居摂,初始,始建,天鳳,地皇,更始,建武,建武,中元,永平,建初,元和,章和,永元,元興,延平,永初,元初,永寧,建光,延光,永建,陽嘉,永和,漢安,建康,永憙,本初,建和,和平,元嘉,永興,永寿,延熹,永康,建寧,熹平,光和,中平,光熹,昭寧,永漢,初平,興平,建安,延康,黄初,太和,青龍,景初,正始,嘉平,正元,甘露,景元,咸熙,章武,建興,延熙,景耀,炎興,黄武,黄龍,嘉禾,赤烏,太元,神鳳,建興,五鳳,太平,永安,元興,甘露,宝鼎,建衡,鳳凰,天冊,天璽,天紀,泰始,咸寧,太康,太熙,永熙,永平,元康,永康,永寧,太安,永安,建武,永興,光熙,永嘉,建興,建武,大興,永昌,太寧,咸和,咸康,建元,永和,升平,隆和,興寧,太和,咸安,寧康,太元,隆安,大亨,元興,義熙,元熙,桓玄,天康,永鳳,河瑞,光興,嘉平,建元,麟嘉,漢昌,光初,太和,建平,延熙,建武,太寧,青龍,永寧,永興,元璽,光寿,建熙,建初,建興,晏平,玉衡,玉恒,漢興,太和,嘉寧,建興,和平,升平,皇始,寿光,永興,甘露,建元,太安,太初,延初,元光,燕元,建興,永康,建始,延平,青龍,建平,長楽,光始,建始,燕興,更始,昌平,建明,建平,建武,中興,建平,太上,正始,太平,太興,白雀,建初,皇初,弘始,永和,建義,太初,更始,永康,建弘,永弘,龍昇,鳳翔,昌武,真興,承光,勝光,太安,麟嘉,龍飛,承康,咸寧,神鼎,太初,建和,弘昌,嘉平,庚子,建初,嘉興,永建,神璽,天璽,永安,玄始,承玄,義和,承和,承平,真興,承陽,縁禾,太縁,永初,景平,元嘉,太初,孝建,大明,永光,景和,泰始,泰豫,元徽,昇明,建元,永明,隆昌,延興,建武,永泰,永元,中興,天監,普通,大通,大通,大同,大同,太清,大宝,天正,太始,承聖,天成,紹泰,太平,天啓,大定,天保,広運,永定,天嘉,天康,光大,太建,至徳,禎明,登国,皇始,天興,天賜,永興,神瑞,泰常,始光,神䴥,延和,太延,太平,真君,正平,承平,興安,興光,太安,和平,天安,皇興,延興,承明,太和,景明,正始,永平,延昌,熙平,神亀,正光,孝昌,武泰,建義,永安,建明,普泰,中興,太昌,永興,永熙,天平,元象,興和,武定,大統,天保,乾明,皇建,太寧,河清,天統,武平,隆化,徳昌,承光,武成,保定,天和,建徳,宣政,大成,大象,大定,開皇,仁寿,大業,義寧,皇泰,武徳,貞観,永徽,顕慶,龍朔,麟徳,乾封,総章,咸亨,上元,儀鳳,調露,永隆,開耀,永淳,弘道,嗣聖,文明,光宅,垂拱,永昌,載初,神龍,景龍,唐隆,景雲,太極,延和,先天,開元,天宝,至徳,乾元,上元,宝応,広徳,永泰,大暦,建中,興元,貞元,永貞,元和,長慶,宝暦,大和,開成,会昌,大中,咸通,乾符,広明,中和,光啓,文徳,龍紀,大順,景福,乾寧,光化,天復,天祐,天授,如意,長寿,延載,証聖,天冊,万歳,万歳,登封,万歳,通天,神功,聖暦,久視,大足,長安,仁安,大興,宝暦,中興,正暦,永徳,朱雀,太始,建興,咸和,建初,承平,義熙,甘露,章和,永平,和平,建昌,延昌,延和,義和,重光,延寿,賛普,長寿,見龍,上元,元封,応道,龍興,全義,大豊,保和,天啓,建極,法尭,貞明,大同,嵯耶,中興,安国,始元,天瑞,景星,安和,貞祐,初歴,孝治,天応,尊聖,興聖,大明,鼎新,光聖,文徳,神武,文経,至治,明徳,広徳,順徳,明政,広明,明応,明統,明聖,明治,明啓,乾興,明通,正治,聖明,天明,保安,正安,正徳,保徳,明侯,上徳,広安,上明,保定,建安,天祐,上治,天授,開明,天政,文安,日新,文治,永嘉,保天,広運,永貞,大宝,龍興,盛明,建徳,利貞,盛徳,嘉会,元亨,安定,鳳歴,元寿,天開,天輔,仁寿,道隆,利正,興正,天定,彝泰,開平,乾化,鳳歴,貞明,龍徳,同光,天成,長興,応順,清泰,天福,開運,天福,乾祐,広順,顕徳,天復,天祐,武義,順義,乾貞,大和,天祚,昇元,保大,中興,交泰,天宝,宝大,宝正,龍啓,永和,通文,永隆,天徳,乾亨,白龍,大有,光天,応乾,乾和,大宝,天復,武成,永平,通正,天漢,光天,乾徳,咸康,明徳,広政,乾祐,天会,広運,応天,同慶,天尊,中興,天興,天寿,建隆,乾徳,開宝,太平,興国,雍熙,端拱,淳化,至道,咸平,景徳,大中,祥符,天禧,乾興,天聖,明道,景祐,宝元,康定,慶暦,皇祐,至和,嘉祐,治平,熙寧,元豊,元祐,紹聖,元符,建中,靖国,崇寧,大観,政和,重和,宣和,靖康,建炎,紹興,隆興,乾道,淳熙,紹熙,慶元,嘉泰,開禧,嘉定,宝慶,紹定,端平,嘉熙,淳祐,宝祐,開慶,景定,咸淳,徳祐,景炎,祥興,神冊,天賛,天顕,会同,大同,天禄,応暦,保寧,乾亨,統和,開泰,太平,景福,重熙,清寧,咸雍,太康,太安,寿昌,乾統,天慶,保大,甘露,建福,徳興,神暦,延慶,康国,咸清,紹興,崇福,天禧,収国,天輔,天会,天眷,皇統,天徳,貞元,正隆,大定,明昌,承安,泰和,大安,崇慶,至寧,貞祐,興定,元光,正大,開興,天興,顕道,開運,広運,大慶,天授,礼法,延祚,延嗣,寧国,天祐,垂聖,福聖,承道,奲都,拱化,乾道,天賜,礼盛,国慶,大安,天安,礼定,天儀,治平,天祐,民安,永安,貞観,雍寧,元徳,正徳,大徳,大慶,人慶,天盛,乾祐,天慶,応天,皇建,光定,乾定,宝義,中統,至元,元貞,大徳,至大,皇慶,延祐,至治,泰定,致和,天順,天暦,至順,元統,至元,至正,至正,宣光,天元,洪武,建文,永楽,洪熙,宣徳,正統,景泰,天順,成化,弘治,正徳,嘉靖,隆慶,万暦,泰昌,天啓,崇禎,弘光,隆武,紹武,永暦,天命,天聡,崇徳,順治,康熙,雍正,乾隆,嘉慶,道光,咸豊,祺祥,同治,光緒,保慶,宣統,民国,洪憲,大同,康徳,"
#korea
g3="永楽,延寿,建元,開国,大昌,鴻済,建福,仁平,太和,慶雲,正開,武泰,聖冊,水徳,万歳,政開,天授,光徳,天開,開国,建陽,光武,光武,隆熙,大韓,民国,"
#vietnam
g4="天徳,太平,天福,興統,応天,景瑞,順天,天成,通瑞,乾符,有道,明道,天感,聖武,崇興,大宝,龍瑞,太平,彰聖,嘉慶,龍彰,天嗣,天貺,宝象,神武,太寧,英武,昭勝,広祐,会豊,龍符,会祥,大慶,天符,睿武,天符,慶寿,天順,天彰,宝嗣,紹明,大定,政隆,宝応,天感,至宝,貞符,天資,嘉瑞,天嘉,宝祐,治平,龍応,建嘉,天彰,有道,建中,天応,政平,元豊,紹隆,宝符,紹宝,重興,興隆,大慶,開泰,開祐,紹豊,大治,大定,紹慶,隆慶,昌符,光泰,建新,聖元,紹成,開大,興慶,重光,天慶,順天,紹平,大宝,大和,延寧,天興,光順,洪徳,景統,泰貞,端慶,洪順,光紹,統元,明徳,大正,広和,永定,景暦,光宝,淳福,崇康,延成,端泰,興治,洪寧,武安,宝定,康佑,乾統,隆泰,順徳,元和,順平,天祐,正治,洪福,嘉泰,光興,慎徳,弘定,永祚,徳隆,陽和,福泰,慶徳,盛徳,永寿,万慶,景治,陽徳,徳元,永治,正和,永盛,保泰,永慶,龍徳,永佑,景興,昭統,泰徳,光中,景盛,宝興,嘉隆,明命,紹治,嗣徳,協和,建福,咸宜,同慶,成泰,維新,啓定,保大,"
#taiwan
g5="永暦,康熙,永和,雍正,乾隆,順天,天運,嘉慶,光明,道光,咸豊,祺祥,同治,光緒,永清,大靖,民国,"
#east-asia
g=g1*g2*g3*g4*g5
println((div(length(g1),3),div(length(g2),3),div(length(g3),3),div(length(g4),3),div(length(g5),3)))
m=div(length(g),3)
#
# making array of tupples with numbered era names of east asia
#
c=fill((" ",0),m)
for i=1:7:m*7
c[div(i,7)+1]=(g[i]*g[i+3],div(i,7)+1)
end
#
# the first and the second characters of the Japanese Gengo
#
n=div(length(g1),3)
a=fill(' ',n)
b=fill(' ',n)
for i=1:7:n*7
a[div(i,7)+1]=g1[i]
b[div(i,7)+1]=g1[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
mr=length(r)
#
# exclude previousely used names of era (Japan China Korea Vietnum Taiwan)
# & their exchanges
#
for i in 1:mr, j in 1:m
if r[i][1] == c[j][1] || r[i][1] == exch(c[j][1])
r[i][2]=0
end
#
# exlude recently used characters & complex characters & MTSH characters
#
if occursin(r[i][1][1],"慶応明治大正昭和平成寛嘉亀徳康暦承雉吉祥福禄寿喜建延享亨興景観祚感乾老雲霊国勝武衡護養銅授泰神政天中長禎貞宝保仁")==true ||
occursin(r[i][1][4],"慶応明治大正昭和平成寛嘉亀徳康暦承雉吉祥福禄寿喜建延享亨興景観祚感乾老雲霊国勝武衡護養銅授泰神政天中長禎貞宝保仁")==true
r[i][2]=0
end
end
#
sort!(r, by=x->x[2],rev=true)
for k in 1:50
println((r[k][1],r[k][2]))
end
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(1) これまでの日本の元号に登場した漢字の範囲で考える。ただし1文字目と2文字目は区別して考える(4文字元号は2文字元号に読み替える)。
(2) 1文字目の漢字と2文字目の漢字のそれぞれの出現確率の積で順序づける。
(3) 既存のアジア(日本,中国,朝鮮,ベトナム,台湾)の元号とそれを入れ替えたものに一致するものは排除する(例えば,「安久」は排除される)。
(4) 慶応,明治,大正,昭和,平成の各漢字は排除する。
(5) 画数の多い漢字,MTSHで始まる漢字などを排除する(「など」のところにプログラマの主観が入る)
昭和とか平成の場合を考えると,このアルゴリズムはよくないことがわかっているが,目をつぶることにしよう(そりゃ,「苦節」とか「余命」とか「結婚」とか「懲役」とか「西暦」とか「卍」とか「タピオカ」のほうがおもしろいに決まっている)。とにかくこの条件で結果抽出されたものが下記のとおり。
(250, 839, 26, 159, 17)
("弘久", 0.020164609053497942)
("永化", 0.019753086419753086)
("元化", 0.018518518518518517)
("万安", 0.016049382716049384)
("万元", 0.014814814814814815)
("文弘", 0.01316872427983539)
("弘文", 0.011522633744855968)
("万久", 0.008641975308641974)
("文万", 0.006584362139917695)
("文同", 0.006584362139917695)
("文字", 0.006584362139917695)
("永同", 0.006584362139917695)
("永字", 0.006584362139917695)
("元万", 0.006172839506172839)
("元同", 0.006172839506172839)
("元字", 0.006172839506172839)
("安化", 0.006172839506172839)
("斉永", 0.005761316872427984)
("朱永", 0.005761316872427984)
("白永", 0.005761316872427984)
("至永", 0.005761316872427984)
("斉安", 0.005349794238683128)
("昌安", 0.005349794238683128)
("朱安", 0.005349794238683128)
("白安", 0.005349794238683128)
("至安", 0.005349794238683128)
("万文", 0.0049382716049382715)
("斉元", 0.0049382716049382715)
("昌元", 0.0049382716049382715)
("朱元", 0.0049382716049382715)
("白元", 0.0049382716049382715)
("万化", 0.003703703703703704)
("弘万", 0.002880658436213992)
("弘同", 0.002880658436213992)
("弘字", 0.002880658436213992)
("斉久", 0.002880658436213992)
("昌久", 0.002880658436213992)
("朱久", 0.002880658436213992)
("白久", 0.002880658436213992)
("至久", 0.002880658436213992)
("万弘", 0.0024691358024691358)
("久化", 0.0024691358024691358)
("安万", 0.00205761316872428)
("安同", 0.00205761316872428)
("安字", 0.00205761316872428)
("久弘", 0.0016460905349794238)
("斉文", 0.0016460905349794238)
("昌文", 0.0016460905349794238)
("朱文", 0.0016460905349794238)
("白文", 0.0016460905349794238)
Juliaが使える方は,これで適当に遊んでください。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
function exch(knj)
#
# knj input kanji string with 2 char
# return exchanged string with 2 char
return knj[4]*knj[1]
end
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
#japan
g1="大化,白雉,朱鳥,大宝,慶雲,和銅,霊亀,養老,神亀,天平,感宝,勝宝,宝字,神護,景雲,宝亀,天応,延暦,大同,弘仁,天長,承和,嘉祥,仁寿,斉衡,天安,貞観,元慶,仁和,寛平,昌泰,延喜,延長,承平,天慶,天暦,天徳,応和,康保,安和,天禄,天延,貞元,天元,永観,寛和,永延,永祚,正暦,長徳,長保,寛弘,長和,寛仁,治安,万寿,長元,長暦,長久,寛徳,永承,天喜,康平,治暦,延久,承保,承暦,永保,応徳,寛治,嘉保,永長,承徳,康和,長治,嘉承,天仁,天永,永久,元永,保安,天治,大治,天承,長承,保延,永治,康治,天養,久安,仁平,久寿,保元,平治,永暦,応保,長寛,永万,仁安,嘉応,承安,安元,治承,養和,寿永,元暦,文治,建久,正治,建仁,元久,建永,承元,建暦,建保,承久,承応,元仁,嘉禄,安貞,寛喜,貞永,天福,文暦,嘉禎,暦仁,延応,仁治,寛元,宝治,建長,康元,正嘉,正元,文応,弘長,文永,建治,弘安,文永,建治,弘安,正応,永仁,正安,乾元,嘉元,徳治,延慶,応長,正和,文保,元応,元亨,正中,嘉暦,元徳,元弘,正慶,建武,延元,興国,正平,建徳,文中,天授,弘和,元中,暦応,康永,貞和,観応,文和,延文,康安,貞治,応安,永和,康暦,永徳,至徳,嘉慶,康応,明徳,応永,正長,永享,嘉吉,文安,宝徳,享徳,康正,長禄,寛正,文正,応仁,文明,長享,延徳,明応,文亀,永正,大永,享禄,天文,弘治,永禄,元亀,天正,文禄,慶長,元和,寛永,正保,慶安,承応,明暦,万治,寛文,延宝,天和,貞享,元禄,宝永,正徳,享保,元文,寛保,延享,寛延,宝暦,明和,安永,天明,寛政,享和,文化,文政,天保,弘化,嘉永,安政,万延,文久,元治,慶応,明治,大正,昭和,平成,"
#china
g2="建元,元光,元朔,元狩,元鼎,元封,太初,天漢,太始,征和,後元,始元,元鳳,元平,本始,地節,元康,神爵,五鳳,甘露,黄龍,初元,永光,建昭,竟寧,建始,河平,陽朔,鴻嘉,永始,元延,綏和,建平,太初,元将,元寿,元始,居摂,初始,始建,天鳳,地皇,更始,建武,建武,中元,永平,建初,元和,章和,永元,元興,延平,永初,元初,永寧,建光,延光,永建,陽嘉,永和,漢安,建康,永憙,本初,建和,和平,元嘉,永興,永寿,延熹,永康,建寧,熹平,光和,中平,光熹,昭寧,永漢,初平,興平,建安,延康,黄初,太和,青龍,景初,正始,嘉平,正元,甘露,景元,咸熙,章武,建興,延熙,景耀,炎興,黄武,黄龍,嘉禾,赤烏,太元,神鳳,建興,五鳳,太平,永安,元興,甘露,宝鼎,建衡,鳳凰,天冊,天璽,天紀,泰始,咸寧,太康,太熙,永熙,永平,元康,永康,永寧,太安,永安,建武,永興,光熙,永嘉,建興,建武,大興,永昌,太寧,咸和,咸康,建元,永和,升平,隆和,興寧,太和,咸安,寧康,太元,隆安,大亨,元興,義熙,元熙,桓玄,天康,永鳳,河瑞,光興,嘉平,建元,麟嘉,漢昌,光初,太和,建平,延熙,建武,太寧,青龍,永寧,永興,元璽,光寿,建熙,建初,建興,晏平,玉衡,玉恒,漢興,太和,嘉寧,建興,和平,升平,皇始,寿光,永興,甘露,建元,太安,太初,延初,元光,燕元,建興,永康,建始,延平,青龍,建平,長楽,光始,建始,燕興,更始,昌平,建明,建平,建武,中興,建平,太上,正始,太平,太興,白雀,建初,皇初,弘始,永和,建義,太初,更始,永康,建弘,永弘,龍昇,鳳翔,昌武,真興,承光,勝光,太安,麟嘉,龍飛,承康,咸寧,神鼎,太初,建和,弘昌,嘉平,庚子,建初,嘉興,永建,神璽,天璽,永安,玄始,承玄,義和,承和,承平,真興,承陽,縁禾,太縁,永初,景平,元嘉,太初,孝建,大明,永光,景和,泰始,泰豫,元徽,昇明,建元,永明,隆昌,延興,建武,永泰,永元,中興,天監,普通,大通,大通,大同,大同,太清,大宝,天正,太始,承聖,天成,紹泰,太平,天啓,大定,天保,広運,永定,天嘉,天康,光大,太建,至徳,禎明,登国,皇始,天興,天賜,永興,神瑞,泰常,始光,神䴥,延和,太延,太平,真君,正平,承平,興安,興光,太安,和平,天安,皇興,延興,承明,太和,景明,正始,永平,延昌,熙平,神亀,正光,孝昌,武泰,建義,永安,建明,普泰,中興,太昌,永興,永熙,天平,元象,興和,武定,大統,天保,乾明,皇建,太寧,河清,天統,武平,隆化,徳昌,承光,武成,保定,天和,建徳,宣政,大成,大象,大定,開皇,仁寿,大業,義寧,皇泰,武徳,貞観,永徽,顕慶,龍朔,麟徳,乾封,総章,咸亨,上元,儀鳳,調露,永隆,開耀,永淳,弘道,嗣聖,文明,光宅,垂拱,永昌,載初,神龍,景龍,唐隆,景雲,太極,延和,先天,開元,天宝,至徳,乾元,上元,宝応,広徳,永泰,大暦,建中,興元,貞元,永貞,元和,長慶,宝暦,大和,開成,会昌,大中,咸通,乾符,広明,中和,光啓,文徳,龍紀,大順,景福,乾寧,光化,天復,天祐,天授,如意,長寿,延載,証聖,天冊,万歳,万歳,登封,万歳,通天,神功,聖暦,久視,大足,長安,仁安,大興,宝暦,中興,正暦,永徳,朱雀,太始,建興,咸和,建初,承平,義熙,甘露,章和,永平,和平,建昌,延昌,延和,義和,重光,延寿,賛普,長寿,見龍,上元,元封,応道,龍興,全義,大豊,保和,天啓,建極,法尭,貞明,大同,嵯耶,中興,安国,始元,天瑞,景星,安和,貞祐,初歴,孝治,天応,尊聖,興聖,大明,鼎新,光聖,文徳,神武,文経,至治,明徳,広徳,順徳,明政,広明,明応,明統,明聖,明治,明啓,乾興,明通,正治,聖明,天明,保安,正安,正徳,保徳,明侯,上徳,広安,上明,保定,建安,天祐,上治,天授,開明,天政,文安,日新,文治,永嘉,保天,広運,永貞,大宝,龍興,盛明,建徳,利貞,盛徳,嘉会,元亨,安定,鳳歴,元寿,天開,天輔,仁寿,道隆,利正,興正,天定,彝泰,開平,乾化,鳳歴,貞明,龍徳,同光,天成,長興,応順,清泰,天福,開運,天福,乾祐,広順,顕徳,天復,天祐,武義,順義,乾貞,大和,天祚,昇元,保大,中興,交泰,天宝,宝大,宝正,龍啓,永和,通文,永隆,天徳,乾亨,白龍,大有,光天,応乾,乾和,大宝,天復,武成,永平,通正,天漢,光天,乾徳,咸康,明徳,広政,乾祐,天会,広運,応天,同慶,天尊,中興,天興,天寿,建隆,乾徳,開宝,太平,興国,雍熙,端拱,淳化,至道,咸平,景徳,大中,祥符,天禧,乾興,天聖,明道,景祐,宝元,康定,慶暦,皇祐,至和,嘉祐,治平,熙寧,元豊,元祐,紹聖,元符,建中,靖国,崇寧,大観,政和,重和,宣和,靖康,建炎,紹興,隆興,乾道,淳熙,紹熙,慶元,嘉泰,開禧,嘉定,宝慶,紹定,端平,嘉熙,淳祐,宝祐,開慶,景定,咸淳,徳祐,景炎,祥興,神冊,天賛,天顕,会同,大同,天禄,応暦,保寧,乾亨,統和,開泰,太平,景福,重熙,清寧,咸雍,太康,太安,寿昌,乾統,天慶,保大,甘露,建福,徳興,神暦,延慶,康国,咸清,紹興,崇福,天禧,収国,天輔,天会,天眷,皇統,天徳,貞元,正隆,大定,明昌,承安,泰和,大安,崇慶,至寧,貞祐,興定,元光,正大,開興,天興,顕道,開運,広運,大慶,天授,礼法,延祚,延嗣,寧国,天祐,垂聖,福聖,承道,奲都,拱化,乾道,天賜,礼盛,国慶,大安,天安,礼定,天儀,治平,天祐,民安,永安,貞観,雍寧,元徳,正徳,大徳,大慶,人慶,天盛,乾祐,天慶,応天,皇建,光定,乾定,宝義,中統,至元,元貞,大徳,至大,皇慶,延祐,至治,泰定,致和,天順,天暦,至順,元統,至元,至正,至正,宣光,天元,洪武,建文,永楽,洪熙,宣徳,正統,景泰,天順,成化,弘治,正徳,嘉靖,隆慶,万暦,泰昌,天啓,崇禎,弘光,隆武,紹武,永暦,天命,天聡,崇徳,順治,康熙,雍正,乾隆,嘉慶,道光,咸豊,祺祥,同治,光緒,保慶,宣統,民国,洪憲,大同,康徳,"
#korea
g3="永楽,延寿,建元,開国,大昌,鴻済,建福,仁平,太和,慶雲,正開,武泰,聖冊,水徳,万歳,政開,天授,光徳,天開,開国,建陽,光武,光武,隆熙,大韓,民国,"
#vietnam
g4="天徳,太平,天福,興統,応天,景瑞,順天,天成,通瑞,乾符,有道,明道,天感,聖武,崇興,大宝,龍瑞,太平,彰聖,嘉慶,龍彰,天嗣,天貺,宝象,神武,太寧,英武,昭勝,広祐,会豊,龍符,会祥,大慶,天符,睿武,天符,慶寿,天順,天彰,宝嗣,紹明,大定,政隆,宝応,天感,至宝,貞符,天資,嘉瑞,天嘉,宝祐,治平,龍応,建嘉,天彰,有道,建中,天応,政平,元豊,紹隆,宝符,紹宝,重興,興隆,大慶,開泰,開祐,紹豊,大治,大定,紹慶,隆慶,昌符,光泰,建新,聖元,紹成,開大,興慶,重光,天慶,順天,紹平,大宝,大和,延寧,天興,光順,洪徳,景統,泰貞,端慶,洪順,光紹,統元,明徳,大正,広和,永定,景暦,光宝,淳福,崇康,延成,端泰,興治,洪寧,武安,宝定,康佑,乾統,隆泰,順徳,元和,順平,天祐,正治,洪福,嘉泰,光興,慎徳,弘定,永祚,徳隆,陽和,福泰,慶徳,盛徳,永寿,万慶,景治,陽徳,徳元,永治,正和,永盛,保泰,永慶,龍徳,永佑,景興,昭統,泰徳,光中,景盛,宝興,嘉隆,明命,紹治,嗣徳,協和,建福,咸宜,同慶,成泰,維新,啓定,保大,"
#taiwan
g5="永暦,康熙,永和,雍正,乾隆,順天,天運,嘉慶,光明,道光,咸豊,祺祥,同治,光緒,永清,大靖,民国,"
#east-asia
g=g1*g2*g3*g4*g5
println((div(length(g1),3),div(length(g2),3),div(length(g3),3),div(length(g4),3),div(length(g5),3)))
m=div(length(g),3)
#
# making array of tupples with numbered era names of east asia
#
c=fill((" ",0),m)
for i=1:7:m*7
c[div(i,7)+1]=(g[i]*g[i+3],div(i,7)+1)
end
#
# the first and the second characters of the Japanese Gengo
#
n=div(length(g1),3)
a=fill(' ',n)
b=fill(' ',n)
for i=1:7:n*7
a[div(i,7)+1]=g1[i]
b[div(i,7)+1]=g1[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
mr=length(r)
#
# exclude previousely used names of era (Japan China Korea Vietnum Taiwan)
# & their exchanges
#
for i in 1:mr, j in 1:m
if r[i][1] == c[j][1] || r[i][1] == exch(c[j][1])
r[i][2]=0
end
#
# exlude recently used characters & complex characters & MTSH characters
#
if occursin(r[i][1][1],"慶応明治大正昭和平成寛嘉亀徳康暦承雉吉祥福禄寿喜建延享亨興景観祚感乾老雲霊国勝武衡護養銅授泰神政天中長禎貞宝保仁")==true ||
occursin(r[i][1][4],"慶応明治大正昭和平成寛嘉亀徳康暦承雉吉祥福禄寿喜建延享亨興景観祚感乾老雲霊国勝武衡護養銅授泰神政天中長禎貞宝保仁")==true
r[i][2]=0
end
end
#
sort!(r, by=x->x[2],rev=true)
for k in 1:50
println((r[k][1],r[k][2]))
end
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2019年3月29日金曜日
最後の出勤日
2019年3月31日を持って定年退職となるが,月末が土日なので,3月29日(金)が最後の出勤日となった。教員控室のメールボックスはすでに撤去されていた。手回しが早い。最後の出勤簿に捺印し,職員証と共済組合員証を返却し,部屋の鍵を預けた。1993年からなので,柏原キャンパスのこの部屋には26年住んでいたことになる。天王寺キャンパスでは11年か。20世紀の間は院生が同じ部屋に共存していたのだけど,21世紀にはいると別の部屋に入ってもらうようになった。どうしてだったのだろう。
写真 C1-209 2019年3月29日8:00ごろ
2019年3月28日木曜日
数学パワーが...orz
AI人材25万人育成の背景にあるのが,これなのか。
経済産業省「理数系人材の産業界での活躍に向けた意見交換会の報告書『数理資本主義の時代~数学パワーが世界を変える~』を取りまとめました」。理数系人材の産業界での活躍に向けた意見交換会の報告書が,「数理資本主義の時代〜数学パワーが世界を変える〜」として2019年3月26日に公表されている。
※1ここで言う「数学」は、純粋数学、応用数学、統計学、確率論、さらには数学的な表現を必要とする量子論、素粒子物理学、宇宙物理学なども含む広範な概念。
という注釈があるのだけれど,物理屋さんはよんでいないのかな。数学者の加藤文元さんは,参考人としてよばれて「NPO法人数理の翼」の話などしているようだけど。
キャリアパスの流れを変えるには,数理資本主義というキーワードも必要だったのだろうが,なんだか気持ち悪いし実効性もないような気がする。この際,グローバル化しきれない経済産業省と右傾化した文部科学省を統合して,経済教育開発省とすると,発展途上国に向かって逆進化の道を進んでいる我が国の未来にふさわしいのではないだろうか。なんで定年退職の最後から2番目の出勤日にこんなくだらない記事を書いているのだろうか。反省することしきりなり。
経済産業省「理数系人材の産業界での活躍に向けた意見交換会の報告書『数理資本主義の時代~数学パワーが世界を変える~』を取りまとめました」。理数系人材の産業界での活躍に向けた意見交換会の報告書が,「数理資本主義の時代〜数学パワーが世界を変える〜」として2019年3月26日に公表されている。
※1ここで言う「数学」は、純粋数学、応用数学、統計学、確率論、さらには数学的な表現を必要とする量子論、素粒子物理学、宇宙物理学なども含む広範な概念。
という注釈があるのだけれど,物理屋さんはよんでいないのかな。数学者の加藤文元さんは,参考人としてよばれて「NPO法人数理の翼」の話などしているようだけど。
キャリアパスの流れを変えるには,数理資本主義というキーワードも必要だったのだろうが,なんだか気持ち悪いし実効性もないような気がする。この際,グローバル化しきれない経済産業省と右傾化した文部科学省を統合して,経済教育開発省とすると,発展途上国に向かって逆進化の道を進んでいる我が国の未来にふさわしいのではないだろうか。なんで定年退職の最後から2番目の出勤日にこんなくだらない記事を書いているのだろうか。反省することしきりなり。
2019年3月27日水曜日
AI人材年25万人育成...orz
うーん,政府の中枢が経産省に乗っ取られると,なかなか面白い政策が次々と実行され,我が国はますますボロボロになっていくような気がガガ。Radio Ga Ga。
日本経済新聞の3月27日の夕刊によりますと,内閣府の統合イノベーション戦略推進会議が29日に公表する「AI戦略」の概要に,人工知能(AI)を使いこなす人材を25万人育てる心目標を掲げるとのこと。全大学生がAIの初等教育を受けるように大学に要請し,社会人向けの専門課程も設置するそうだ。小学校の教育課程へのプログラミング教育導入と見事に対をなしているのだった(経産省起点で文科省に手を突っ込む作戦か)。そのAI戦略の概要は次の通り。
理念:
「数理・データサイエンス・AI」はすべての国民にとって
「読み・書き・そろばん」と並ぶスキルに
主な取り組み:
・全ての大学生・高専生に初級レベルのAI教育(この対象は60万人である)
・AIと専門分野のダブルメジャーを促進
・大学に社会人専門コースを設置し,学び直しを支援
かつて,ソフトウェア技術者の不足をソフトウェア危機としてあおり,情報系のバブルをもたらしたまま,後始末におわれた経験を生かしているようには見えないのだけれども。いったいどうなっているのだろうか。必要な人材数の数量的評価も杜撰(ニュースの社会科学的な裏側)なのかもしれない。
日本経済新聞の3月27日の夕刊によりますと,内閣府の統合イノベーション戦略推進会議が29日に公表する「AI戦略」の概要に,人工知能(AI)を使いこなす人材を25万人育てる心目標を掲げるとのこと。全大学生がAIの初等教育を受けるように大学に要請し,社会人向けの専門課程も設置するそうだ。小学校の教育課程へのプログラミング教育導入と見事に対をなしているのだった(経産省起点で文科省に手を突っ込む作戦か)。そのAI戦略の概要は次の通り。
理念:
「数理・データサイエンス・AI」はすべての国民にとって
「読み・書き・そろばん」と並ぶスキルに
主な取り組み:
・全ての大学生・高専生に初級レベルのAI教育(この対象は60万人である)
・AIと専門分野のダブルメジャーを促進
・大学に社会人専門コースを設置し,学び直しを支援
かつて,ソフトウェア技術者の不足をソフトウェア危機としてあおり,情報系のバブルをもたらしたまま,後始末におわれた経験を生かしているようには見えないのだけれども。いったいどうなっているのだろうか。必要な人材数の数量的評価も杜撰(ニュースの社会科学的な裏側)なのかもしれない。
2019年3月26日火曜日
Juliaで標準入出力
今朝の日経新聞に,全国統一プログラミング王決定戦本戦の記事が載っていた。新聞に示された例題を見るとそんなに難しそうではない。自分でもできそうなレベルだ。さっそくウェブサイトを訪れると,昨年のマストドンブームでお見かけしたC++の江添亮さんに影響されてC++を勉強するためにバーチャルに通った,会津大学のAOJオンラインプログラミングチャレンジと同じようなフレーバーのサイトだった。
さっそくJuliaで挑戦してみようとしたところ,C++とかPythonはありそうだが,そもそもJuliaなんて受け付けられないのではないか。それはそれとして,Juliaで標準入力をどうするのかは今まで考えてこなかった。この機会に調べてみよう。
(1) Jupyter環境の場合
なんのことはない,readline()とすると stdin> として標準入力が要求された。めでたしめでたし。
(2) REPL環境の場合
標準入力のプロンプトは自分で設定しないと出ないのだが,入力待ちの環境中で入力と改行を繰り返せばよいだけである。入力データの型はStringになっていた。例えばMacOSXの Julia REPL環境でプログラム開発ループを実現するには,まずbashのコマンドラインでJuliaを起動し,REPL環境が立ち上がれば,julia>プロンプトに対し,
edit("/Users/xxxx/yyyy/test.jl")
include("/Users/xxxx/yyyy/test.jl")
を繰り返して,編集とプログラムの読み込みを実行すればよかった。
ここで,ユーザxxxxの作業ディレクトリyyyyにJuliaのテストプログラム test.jl を置いたものと仮定している。editでは標準に設定されているエディタが起動した(ここがまだよくわかっていない)。したがって,これ以降はエディタで編集し,includeを繰り返えせばよい。
[注]Macにインストールしたjuliaは,/Applications/Julia-1.1.app/Contents/Resources/julia/bin/julia にあった。bashでパスを有効にするには,.bashrcにパスを記述して,.bash_profileにでbash起動時に.bashrcを読み込むようにする必要がある。
cat .bash_profile
if [ -f ~/.bashrc ] ; then
. ~/.bashrc
fi
cat .bashrc
export PATH=$PATH:/Applications/Julia-1.1.app/Contents/Resources/julia/bin
(3) コマンドライン環境の場合
この場合はもう少し勉強してコンパイルできるようになってから考えよう。
P. S. At Coder のプログラム言語,Juliaは隅の方にあったけど,0.5.0なのだった...orz
参考:Juliaで競技プログラミング(AtCoder)やるときのTips(Julia 0.5.0用)
さっそくJuliaで挑戦してみようとしたところ,C++とかPythonはありそうだが,そもそもJuliaなんて受け付けられないのではないか。それはそれとして,Juliaで標準入力をどうするのかは今まで考えてこなかった。この機会に調べてみよう。
(1) Jupyter環境の場合
なんのことはない,readline()とすると stdin> として標準入力が要求された。めでたしめでたし。
(2) REPL環境の場合
標準入力のプロンプトは自分で設定しないと出ないのだが,入力待ちの環境中で入力と改行を繰り返せばよいだけである。入力データの型はStringになっていた。例えばMacOSXの Julia REPL環境でプログラム開発ループを実現するには,まずbashのコマンドラインでJuliaを起動し,REPL環境が立ち上がれば,julia>プロンプトに対し,
edit("/Users/xxxx/yyyy/test.jl")
include("/Users/xxxx/yyyy/test.jl")
を繰り返して,編集とプログラムの読み込みを実行すればよかった。
ここで,ユーザxxxxの作業ディレクトリyyyyにJuliaのテストプログラム test.jl を置いたものと仮定している。editでは標準に設定されているエディタが起動した(ここがまだよくわかっていない)。したがって,これ以降はエディタで編集し,includeを繰り返えせばよい。
[注]Macにインストールしたjuliaは,/Applications/Julia-1.1.app/Contents/Resources/julia/bin/julia にあった。bashでパスを有効にするには,.bashrcにパスを記述して,.bash_profileにでbash起動時に.bashrcを読み込むようにする必要がある。
cat .bash_profile
if [ -f ~/.bashrc ] ; then
. ~/.bashrc
fi
cat .bashrc
export PATH=$PATH:/Applications/Julia-1.1.app/Contents/Resources/julia/bin
(3) コマンドライン環境の場合
この場合はもう少し勉強してコンパイルできるようになってから考えよう。
P. S. At Coder のプログラム言語,Juliaは隅の方にあったけど,0.5.0なのだった...orz
参考:Juliaで競技プログラミング(AtCoder)やるときのTips(Julia 0.5.0用)
2019年3月25日月曜日
JupyterLab
「JupyterLabのすすめ」という記事があったので,JupyterLabをさっそくインストールしてみた。
退職後の4月から非常勤講師としてこれまでと同じような授業を担当する。とりあえず,現在使用しているコンピュータ(MacProやMacBookProなど)を明け渡さなければならないので,MacBookAirに新しい環境を構築して移動作業をしている。その結果,現在の自分の環境は,次のようになっている。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
※mbaの設定
(1) homebrewの導入
xcode-select —install (コマンドライン開発ツールの導入)
sudo xcodebuild -license
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
(2) homebrewの練習と基本環境の設定
brew update
brew upgrade
brew doctor
brew install wget
brew install nkf
brew cask reinstall xquartz
brew install lynx
brew install w3m
brew install xxxx (xxxxをインストール)以下適当に繰り返した。
(3) python3環境(jupyterを含む)の設定
brew install python3
python3 -V
Python 3.7.2
pip3 -V
pip 19.0.2 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)
python -V
Python 2.7.10
・これで,python3がインストールできた。
which python
/usr/bin/python
which python3
/usr/local/bin/python3
・pip3のアップデート方法
pip3 install --upgrade setuptools
Requirement already up-to-date:...
pip3 install --upgrade pip
Collecting pip
...
Successfully installed pip-19.0.3
・環境設定してその中で作業
python3 -m venv env
. env/bin/activate
(env) … python -V
Python 3.7.2
(env) … pip -V
pip 18.1 from /Users/admin/env/lib/python3.7/site-packages/pip (python 3.7)
(env) ... pip install --upgrade pip
(env) ... pip install --upgrade setuptools
(env) ... pip install numpy
(env) ... pip install scipy
(env) ... pip install scikit-learn
(env) ... pip install matplotlib
(env) ... pip install Pillow
(env) ... pip install sympy
(env) ... pip install jupyter
(env) ... deactivate
(4) julia環境の設定
https://julialang.org/downloads/
からダウンロードすればコマンドラインで実行可能に
echo 'export PATH=$PATH:/Applications/
Julia-1.1.app/Contents/Resources/julia/bin' >> ~/.bashrc
source ~/.bashrc
julia
julia> using Pkg
julia> Pkg.add(“IJulia”)
export PATH=$PATH:/Users/admin/env/bin
jupyter notebook
これで,jupyter が起動して,julia 1.1 が使えるようになった。
versioninfo()
using Pkg
Pkg.update()
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(5) jupyterlabの導入と起動は簡単であった。
pip3 install jupyterlab
jupyter lab
(付)JupyterLab環境での設定
Settings -> Advanced Settings Editor -> Notebook
codeCellConfigのlineNumbersをTrueにする。
Settings -> Advanced Settings Editor -> Extension Manager -> "enabled": trueにする。
退職後の4月から非常勤講師としてこれまでと同じような授業を担当する。とりあえず,現在使用しているコンピュータ(MacProやMacBookProなど)を明け渡さなければならないので,MacBookAirに新しい環境を構築して移動作業をしている。その結果,現在の自分の環境は,次のようになっている。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
※mbaの設定
(1) homebrewの導入
xcode-select —install (コマンドライン開発ツールの導入)
sudo xcodebuild -license
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
(2) homebrewの練習と基本環境の設定
brew update
brew upgrade
brew doctor
brew install wget
brew install nkf
brew cask reinstall xquartz
brew install lynx
brew install w3m
brew install xxxx (xxxxをインストール)以下適当に繰り返した。
(3) python3環境(jupyterを含む)の設定
brew install python3
python3 -V
Python 3.7.2
pip3 -V
pip 19.0.2 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)
python -V
Python 2.7.10
・これで,python3がインストールできた。
which python
/usr/bin/python
which python3
/usr/local/bin/python3
・pip3のアップデート方法
pip3 install --upgrade setuptools
Requirement already up-to-date:...
pip3 install --upgrade pip
Collecting pip
...
Successfully installed pip-19.0.3
・環境設定してその中で作業
python3 -m venv env
. env/bin/activate
(env) … python -V
Python 3.7.2
(env) … pip -V
pip 18.1 from /Users/admin/env/lib/python3.7/site-packages/pip (python 3.7)
(env) ... pip install --upgrade pip
(env) ... pip install --upgrade setuptools
(env) ... pip install numpy
(env) ... pip install scipy
(env) ... pip install scikit-learn
(env) ... pip install matplotlib
(env) ... pip install Pillow
(env) ... pip install sympy
(env) ... pip install jupyter
(env) ... deactivate
(4) julia環境の設定
https://julialang.org/downloads/
からダウンロードすればコマンドラインで実行可能に
echo 'export PATH=$PATH:/Applications/
Julia-1.1.app/Contents/Resources/julia/bin' >> ~/.bashrc
source ~/.bashrc
julia
julia> using Pkg
julia> Pkg.add(“IJulia”)
export PATH=$PATH:/Users/admin/env/bin
jupyter notebook
これで,jupyter が起動して,julia 1.1 が使えるようになった。
versioninfo()
using Pkg
Pkg.update()
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(5) jupyterlabの導入と起動は簡単であった。
pip3 install jupyterlab
jupyter lab
(付)JupyterLab環境での設定
Settings -> Advanced Settings Editor -> Notebook
codeCellConfigのlineNumbersをTrueにする。
Settings -> Advanced Settings Editor -> Extension Manager -> "enabled": trueにする。
Mathematicaノートブックを長らく使ってきたので,Jupyter Notebook(この記事もWikipedia中文はあるが日本語はない・・・)はすんなりと馴染むことができた。JupyterLabはJupyter Notebookの後継で,今後はこれに移行するのだそうだ。まだ違いがよくわからないが,Jupyter Notebook のことだってそれほどわかっていたわけではない。ぼちぼちやっていくことにしよう。
2019年3月24日日曜日
金沢泉丘高等学校のプール
大乗寺丘陵公園から円光寺の方に下り,泉丘高校に向って歩いた。前身の一中創立70周年から80周年の間で,理数科ができて2年目の1969年に入学した。1984年には新校舎が落成しており,我々の時代の旧校舎はなくなっている。正門のあたりの古い木々や碑などはそのまま残っているが,校舎も制服も生徒も変わってしまった(昔よりみなさんよくできるのである)。グラウンド横の部室裏のプールは当時のままだと思ったが,沿革によると1992年にプールが完成とあるので同じ場所で新しくしたのだろう。校庭の周辺の桜の木とか,相撲場はどうだっただろうか。
小学校5年までは泳げなかったので,水泳の授業(小学校にはまだプールがなかった)では,金沢市営の25mプールに集められた数名の泳げない組で練習していた。というか,先生はあまり教えてくれないのである。同級生の畦地勉君に浮き方をおそわって,ようやく潜った状態でばた足で前進できるようになった。
中学校の体育では25mを泳ぐことが要求された。3年間でようやく25mをなんとか泳げたがほぼ息継ぎのないクロールだったかもしれない。背泳ぎも少しできるようになった。中学の体育の先生は親切だったので,泳ぎの苦手な子に飛び込みを教えてくださった。プールサイドに腰掛けた状態から始まって,徐々に慣らして行き,最後にはスタート台から飛び込むことができるようになった。
高校の体育では200mを泳ぐことが要求された。これはちょっと難しかったので,夏休み前に10名程度泳ぎの苦手な連中がプールで特別指導された。というかここでも指導された記憶はあまりないのだが,梅雨も明けきらないやや肌寒いプールでばしゃばしゃしていた。授業本番では背泳ぎで200mをなんとか泳ぐことができた。これ以降は夏休みに市営プールに一人で通って1000mを平泳ぎで泳ぐことができるようになった。
写真 金沢泉丘高等学校のプール(2019.3.22)
中学校の体育では25mを泳ぐことが要求された。3年間でようやく25mをなんとか泳げたがほぼ息継ぎのないクロールだったかもしれない。背泳ぎも少しできるようになった。中学の体育の先生は親切だったので,泳ぎの苦手な子に飛び込みを教えてくださった。プールサイドに腰掛けた状態から始まって,徐々に慣らして行き,最後にはスタート台から飛び込むことができるようになった。
高校の体育では200mを泳ぐことが要求された。これはちょっと難しかったので,夏休み前に10名程度泳ぎの苦手な連中がプールで特別指導された。というかここでも指導された記憶はあまりないのだが,梅雨も明けきらないやや肌寒いプールでばしゃばしゃしていた。授業本番では背泳ぎで200mをなんとか泳ぐことができた。これ以降は夏休みに市営プールに一人で通って1000mを平泳ぎで泳ぐことができるようになった。
2019年3月23日土曜日
大乗寺丘陵公園
お彼岸に金沢に墓参に帰省したとき,大乗寺から岡部病院を抜けると,その横が大乗寺丘陵公園として整備されていた。泉野小学校や野田中学校のときに,毎年花見遠足やスキーに来たあたりである。丘陵公園の下あたりが,金沢泉丘高等学校時代の体育の時間のマラソンコースになっていた。ここからは,金沢平野が一望できる。まだ肌寒くて花見の季節ではなかった。
写真 大乗寺丘陵公園案内図(2019.3.22)
写真 大乗寺丘陵から金沢市街地の方向(2019.3.22)
2019年3月22日金曜日
MathJaxで数式表示(2)
MathJaxの数式表示で行番号がでないのがどうなのかを調べて試しているうちに,調子が悪くなってしまった。古い設定がどこかに残っているためなのか,Safariで数式が小さく表示される現象が生じている。再起動で回復しても,そのページを閲覧した後にはどこでも発症してしまう。どうしたものか。FirefoxやChromeでは問題ない。
今のヘッダーの設定では,標準で連番あり,"¥begin{equation*}"はだめ,"¥[ ¥]"で行番号なし,"¥tag{n}" で番号指定可になっている(¥はバックスラッシュを表す)。
\begin{equation}
\begin{aligned}
\sqrt{x}+\cos{y}\\
\dfrac{\log(x)}{e^x}
\end{aligned}
\end{equation}
\[
\sqrt{\dfrac{z^2+y^2}{x^2}}
\]
\begin{equation}
y= a x^2 + b x + c \tag{4}
\end{equation}
\begin{equation}
m \ddot{\bm{r}} = \bm{F}
\end{equation}
これで"¥bm{}"も使えるようになったのは次のヘッダーである。
参考にしたのは以下のサイトである。
・Mathjaxを使ってBloggerで数式を書く
・おもちゃ箱:Bloggerで数式を表示する
・MathJaxの使い方(黒木玄)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
<script async='async' src='https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js?config=TeX-MML-AM_CHTML' type='text/javascript'/>
<script type='text/x-mathjax-config'>
MathJax.Hub.Config({
HTML: ["input/TeX","output/HTML-CSS"],
TeX: {
Macros: {
bm: ["\\boldsymbol{#1}", 1],
argmax: ["\\mathop{\\rm arg\\,max}\\limits"],
argmin: ["\\mathop{\\rm arg\\,min}\\limits"]},
extensions: ["AMSmath.js","AMSsymbols.js"],
equationNumbers: { autoNumber: "AMS" } },
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
tex2jax: { inlineMath: [ ['$','$'], ["\\(","\\)"] ],
displayMath: [ ['$$','$$'], ["\\[","\\]"] ],
processEscapes: true },
"HTML-CSS": { availableFonts: ["TeX"],
linebreaks: { automatic: true } }
});
</script>
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
今のヘッダーの設定では,標準で連番あり,"¥begin{equation*}"はだめ,"¥[ ¥]"で行番号なし,"¥tag{n}" で番号指定可になっている(¥はバックスラッシュを表す)。
\begin{equation}
\begin{aligned}
\sqrt{x}+\cos{y}\\
\dfrac{\log(x)}{e^x}
\end{aligned}
\end{equation}
\[
\sqrt{\dfrac{z^2+y^2}{x^2}}
\]
\begin{equation}
y= a x^2 + b x + c \tag{4}
\end{equation}
\begin{equation}
m \ddot{\bm{r}} = \bm{F}
\end{equation}
これで"¥bm{}"も使えるようになったのは次のヘッダーである。
参考にしたのは以下のサイトである。
・Mathjaxを使ってBloggerで数式を書く
・おもちゃ箱:Bloggerで数式を表示する
・MathJaxの使い方(黒木玄)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
<script async='async' src='https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js?config=TeX-MML-AM_CHTML' type='text/javascript'/>
<script type='text/x-mathjax-config'>
MathJax.Hub.Config({
HTML: ["input/TeX","output/HTML-CSS"],
TeX: {
Macros: {
bm: ["\\boldsymbol{#1}", 1],
argmax: ["\\mathop{\\rm arg\\,max}\\limits"],
argmin: ["\\mathop{\\rm arg\\,min}\\limits"]},
extensions: ["AMSmath.js","AMSsymbols.js"],
equationNumbers: { autoNumber: "AMS" } },
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
tex2jax: { inlineMath: [ ['$','$'], ["\\(","\\)"] ],
displayMath: [ ['$$','$$'], ["\\[","\\]"] ],
processEscapes: true },
"HTML-CSS": { availableFonts: ["TeX"],
linebreaks: { automatic: true } }
});
</script>
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2019年3月21日木曜日
国立大学法人法と学長の任期
以下は国立大学法人法からの学長の任期に係わる部分の抜粋である。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
国立大学法人法
第十条 各国立大学法人に、役員として、その長である学長及び監事二人を置く。
2 略
第十二条 学長の任命は、国立大学法人の申出に基づいて、文部科学大臣が行う。
2 前項の申出は、第一号に掲げる委員及び第二号に掲げる委員各同数をもって構成する会議(以下「学長選考会議」という。)の選考により行うものとする。
一 第二十条第二項第三号に掲げる者(注1)の中から同条第一項に規定する経営協議会において選出された者
二 第二十一条第二項第三号又は第四号に掲げる者(注2)の中から同条第一項に規定する教育研究評議会において選出された者
3 前項各号に掲げる者のほか、学長選考会議の定めるところにより、学長又は理事を学長選考会議の委員に加えることができる。ただし、その数は、学長選考会議の委員の総数の三分の一を超えてはならない。
4 学長選考会議に議長を置き、委員の互選によってこれを定める。
5 議長は、学長選考会議を主宰する。
第十五条 学長の任期は、二年以上六年を超えない範囲内において、学長選考会議の議を経て、各国立大学法人の規則で定める。
2 略
3 略
4 役員は、再任されることができる。以下略
(注1)経営協議会構成員から,学長と学長が指名する理事及び職員を除いた「三 当該国立大学法人の役員又は職員以外の者で大学に関し広くかつ高い識見を有するもののうちから,次条第一項に規定する教育研究評議会の意見を聴いて学長が任命するもの」
(注2)教育評議会構成員から,学長と学長が指名する理事を除いた「三 学部、研究科、大学附置の研究所その他の教育研究上の重要な組織の長のうち、教育研究評議会が定める者,四 その他教育研究評議会が定めるところにより学長が指名する職員」
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
国立大学法人法
第十条 各国立大学法人に、役員として、その長である学長及び監事二人を置く。
2 略
第十二条 学長の任命は、国立大学法人の申出に基づいて、文部科学大臣が行う。
2 前項の申出は、第一号に掲げる委員及び第二号に掲げる委員各同数をもって構成する会議(以下「学長選考会議」という。)の選考により行うものとする。
一 第二十条第二項第三号に掲げる者(注1)の中から同条第一項に規定する経営協議会において選出された者
二 第二十一条第二項第三号又は第四号に掲げる者(注2)の中から同条第一項に規定する教育研究評議会において選出された者
3 前項各号に掲げる者のほか、学長選考会議の定めるところにより、学長又は理事を学長選考会議の委員に加えることができる。ただし、その数は、学長選考会議の委員の総数の三分の一を超えてはならない。
4 学長選考会議に議長を置き、委員の互選によってこれを定める。
5 議長は、学長選考会議を主宰する。
第十五条 学長の任期は、二年以上六年を超えない範囲内において、学長選考会議の議を経て、各国立大学法人の規則で定める。
2 略
3 略
4 役員は、再任されることができる。以下略
(注1)経営協議会構成員から,学長と学長が指名する理事及び職員を除いた「三 当該国立大学法人の役員又は職員以外の者で大学に関し広くかつ高い識見を有するもののうちから,次条第一項に規定する教育研究評議会の意見を聴いて学長が任命するもの」
(注2)教育評議会構成員から,学長と学長が指名する理事を除いた「三 学部、研究科、大学附置の研究所その他の教育研究上の重要な組織の長のうち、教育研究評議会が定める者,四 その他教育研究評議会が定めるところにより学長が指名する職員」
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
したがって,国立大学法人法は学長が無期限に再任されることを排除しておらず,それは各国立大学法人の学長選考に関る規程に委ねられているようにみえる。
2019年3月20日水曜日
退職挨拶の練習(2)
懺悔の時間がやってまいりました。理科教育講座の越桐です。
1982年に本学に教務員として着任して37年になります。最初の10年ほどは天王寺分校に研
究室がありました。そのころは附属学校のグラウンドの裏にあった池田宿舎に住んでいました。その当時いっしょにすんでいた方は栗林学長と赤松先生だけになりました。
小専理科の実験の授業を池田分校の物理の伊藤太郎先生とともに担当していましたが,授業は3限目からなので,昼頃に池田分校に行き,夕方前のまだ明るいうちに帰宅するという夢のような日々を過ごしていました。ごめんなさい。
先生方,職員の皆様方には長らく大変お世話になりました。大学はこれから大変な時代を迎えますが,どうかお身体にお気をつけ,皆さん力を合わせてこの難関に立ち向かっていただければと思います。本日はどうもありがとうございました。
1982年に本学に教務員として着任して37年になります。最初の10年ほどは天王寺分校に研
究室がありました。そのころは附属学校のグラウンドの裏にあった池田宿舎に住んでいました。その当時いっしょにすんでいた方は栗林学長と赤松先生だけになりました。
小専理科の実験の授業を池田分校の物理の伊藤太郎先生とともに担当していましたが,授業は3限目からなので,昼頃に池田分校に行き,夕方前のまだ明るいうちに帰宅するという夢のような日々を過ごしていました。ごめんなさい。
先生方,職員の皆様方には長らく大変お世話になりました。大学はこれから大変な時代を迎えますが,どうかお身体にお気をつけ,皆さん力を合わせてこの難関に立ち向かっていただければと思います。本日はどうもありがとうございました。
2019年3月19日火曜日
運動物体からの斜方投射
昨日届いた「大学の物理教育(2019 Vol.25 No.1)」の講義室に,茨城大学工学部の坪井一洋さんが,「質点の投射角を再考する 大学の物理教育25(2019)34-37」という記事を書いていた。とてもおもしろかったので,その計算をフォローしてみることにした。
坪井さんの記事の趣旨は次のとおりである。一様重力場での放物運動では,斜方投射の投射角を45度としたときに質点を最も遠くまで投げることができる。しかし現実の現象(ゴルフ,野球,走り幅跳び,砲丸投げ)ではそうなっていない。空気抵抗で説明できる部分もあるがそうでない部分もある。スポーツ科学では初速度の大きさはが初速角に依存するという議論もある。そこで,これをモデル化して物理教育(初等力学)の題材にしようというものである。
原点をOとする慣性系Sを考える。Sのx軸上を一様な速度$u$で正方向に運動している物体がある。この物体がS系の原点Oを通過した瞬間($t=0$)に,質量$m$の質点を,物体に固定した座標系Mからみて図のように初速度$v$,投射角$\phi$でx-y平面内に投射する。この質点には一様な重力$mg$が y 軸負方向に働いている。放物運動した質点は原点からの距離が$L$であるx軸上の点まで到達したとする。なお,S系からみた質点の速度ベクトル$\boldsymbol{w}$は図のように与えられる。
S系における原点からの距離$L$を最も大きくするにはどうすればよいか。原点における物体の初速度を$(V_x,V_y)$とすれば,高等学校の物理では次の結果を得ている。$L=\dfrac{2V_xV_y}{g}$
ところでこの$V_x$と$V_y$は今のモデルでは次のように与えられる。ただし,$0 < \phi < \pi/2$,$0 < \theta < \pi/2$とする。
\begin{equation}
\begin{aligned}
V_x = w \cos \theta = u + v \cos \phi \\
V_y = w \sin \theta = v \sin \phi
\end{aligned}
\end{equation}
つまり,$u,v$が与えられたときに,$L$を最大にする$\phi$または$\theta$を求めるのがここでの問題となる。なお,$w$は,ベクトルの図に余弦定理をあてはめた次の式に従うため,$\theta$の関数であると考えることにする($\phi$の関数とすることもできる)。
\begin{equation}
w^2+u^2-2w u \cos\theta = v^2
\end{equation}
$w$についての2次方程式を解いて具体的な$\theta$の関数形を求め,さらに$\dfrac{d w}{d \theta}$を計算しておく。
\begin{equation}
\begin{aligned}
w &= u \cos\theta + \sqrt{v^2-u^2\sin^2\theta}\\
\frac{dw}{d\theta} &= -u\sin\theta + \frac{-u^2\sin\theta \cos\theta}{\sqrt{v^2-u^2\sin^2\theta}}\\
&= -u\sin\theta \ \frac{\sqrt{v^2-u^2\sin^2\theta} + u \cos\theta }{\sqrt{v^2-u^2\sin^2\theta}}\\
&= -\frac{u\sin\theta\ w }{\sqrt{v^2-u^2\sin^2\theta}}
\end{aligned}
\end{equation}
以下では,$\gamma=\dfrac{u}{v}$とおく。
(1) $L(\phi)$を最大にする$\phi$に対する条件を求める。
\begin{equation}
L(\phi)=\frac{2\ (u+v\cos\phi)\ v\sin\phi}{g}\\
\frac{dL}{d\phi}=\frac{2v}{g}\{-v \sin^2\phi +(u + v\cos\phi) \cos\phi \}=0\\
2v \cos^2\phi +u\cos\phi -v=0\\
2 \cos^2\phi + \gamma \cos\phi + 1 = 0\\
\therefore \cos\phi = \frac{\sqrt{\gamma^2+8}-\gamma}{4}
\end{equation}
(2) $L(\theta)$を最大にする$\theta$に対する条件を求める。
\begin{equation}
L(\theta)=\frac{2\ w\cos\theta\ w\sin\theta}{g}=\frac{w^2 \sin 2\theta}{g}\\
\frac{dL}{d\theta}=\frac{2w}{g}\,\frac{d w}{d\theta}\,\sin 2\theta + \frac{2w^2}{g}\,\cos 2\theta =0\\
\frac{-u\sin\theta \ \sin 2\theta}{\sqrt{v^2-u^2\sin^2\theta}}+ \cos 2\theta =0\\
4 u^2 \sin^4\theta\,(1-\sin^2\theta) = (v^2-u^2\sin^2\theta)(1-2\sin^2\theta)^2\\
v(1-2\sin^2\theta) = u\sin\theta\\
2 \sin^2\theta + \gamma \sin\theta + 1 = 0\\
\therefore \sin \theta = \frac{\sqrt{\gamma^2+8}-\gamma}{4}
\end{equation}
従って,最大の$L$を与える$\phi$と$\theta$は,$\phi+\theta=\frac{\pi}{2}$を満足している。
坪井さんの記事の趣旨は次のとおりである。一様重力場での放物運動では,斜方投射の投射角を45度としたときに質点を最も遠くまで投げることができる。しかし現実の現象(ゴルフ,野球,走り幅跳び,砲丸投げ)ではそうなっていない。空気抵抗で説明できる部分もあるがそうでない部分もある。スポーツ科学では初速度の大きさはが初速角に依存するという議論もある。そこで,これをモデル化して物理教育(初等力学)の題材にしようというものである。
図 運動物体からの斜方投射モデル
原点をOとする慣性系Sを考える。Sのx軸上を一様な速度$u$で正方向に運動している物体がある。この物体がS系の原点Oを通過した瞬間($t=0$)に,質量$m$の質点を,物体に固定した座標系Mからみて図のように初速度$v$,投射角$\phi$でx-y平面内に投射する。この質点には一様な重力$mg$が y 軸負方向に働いている。放物運動した質点は原点からの距離が$L$であるx軸上の点まで到達したとする。なお,S系からみた質点の速度ベクトル$\boldsymbol{w}$は図のように与えられる。
S系における原点からの距離$L$を最も大きくするにはどうすればよいか。原点における物体の初速度を$(V_x,V_y)$とすれば,高等学校の物理では次の結果を得ている。$L=\dfrac{2V_xV_y}{g}$
ところでこの$V_x$と$V_y$は今のモデルでは次のように与えられる。ただし,$0 < \phi < \pi/2$,$0 < \theta < \pi/2$とする。
\begin{equation}
\begin{aligned}
V_x = w \cos \theta = u + v \cos \phi \\
V_y = w \sin \theta = v \sin \phi
\end{aligned}
\end{equation}
つまり,$u,v$が与えられたときに,$L$を最大にする$\phi$または$\theta$を求めるのがここでの問題となる。なお,$w$は,ベクトルの図に余弦定理をあてはめた次の式に従うため,$\theta$の関数であると考えることにする($\phi$の関数とすることもできる)。
\begin{equation}
w^2+u^2-2w u \cos\theta = v^2
\end{equation}
$w$についての2次方程式を解いて具体的な$\theta$の関数形を求め,さらに$\dfrac{d w}{d \theta}$を計算しておく。
\begin{equation}
\begin{aligned}
w &= u \cos\theta + \sqrt{v^2-u^2\sin^2\theta}\\
\frac{dw}{d\theta} &= -u\sin\theta + \frac{-u^2\sin\theta \cos\theta}{\sqrt{v^2-u^2\sin^2\theta}}\\
&= -u\sin\theta \ \frac{\sqrt{v^2-u^2\sin^2\theta} + u \cos\theta }{\sqrt{v^2-u^2\sin^2\theta}}\\
&= -\frac{u\sin\theta\ w }{\sqrt{v^2-u^2\sin^2\theta}}
\end{aligned}
\end{equation}
以下では,$\gamma=\dfrac{u}{v}$とおく。
(1) $L(\phi)$を最大にする$\phi$に対する条件を求める。
\begin{equation}
L(\phi)=\frac{2\ (u+v\cos\phi)\ v\sin\phi}{g}\\
\frac{dL}{d\phi}=\frac{2v}{g}\{-v \sin^2\phi +(u + v\cos\phi) \cos\phi \}=0\\
2v \cos^2\phi +u\cos\phi -v=0\\
2 \cos^2\phi + \gamma \cos\phi + 1 = 0\\
\therefore \cos\phi = \frac{\sqrt{\gamma^2+8}-\gamma}{4}
\end{equation}
(2) $L(\theta)$を最大にする$\theta$に対する条件を求める。
\begin{equation}
L(\theta)=\frac{2\ w\cos\theta\ w\sin\theta}{g}=\frac{w^2 \sin 2\theta}{g}\\
\frac{dL}{d\theta}=\frac{2w}{g}\,\frac{d w}{d\theta}\,\sin 2\theta + \frac{2w^2}{g}\,\cos 2\theta =0\\
\frac{-u\sin\theta \ \sin 2\theta}{\sqrt{v^2-u^2\sin^2\theta}}+ \cos 2\theta =0\\
4 u^2 \sin^4\theta\,(1-\sin^2\theta) = (v^2-u^2\sin^2\theta)(1-2\sin^2\theta)^2\\
v(1-2\sin^2\theta) = u\sin\theta\\
2 \sin^2\theta + \gamma \sin\theta + 1 = 0\\
\therefore \sin \theta = \frac{\sqrt{\gamma^2+8}-\gamma}{4}
\end{equation}
従って,最大の$L$を与える$\phi$と$\theta$は,$\phi+\theta=\frac{\pi}{2}$を満足している。
2019年3月18日月曜日
バラカ:桐野夏生
まわりからどんどん書店が消えていく。昔は,毎日の仕事の帰りには本屋に立ち寄って,新刊をチェックすることができたが,最近はその習慣が失われてしまった。先日,久しぶりに上本町の近鉄の書店(JUNKUDO)に立ち寄ったときに見つけたのが,桐野夏生の「バラカ(上・下)集英社文庫」だった。
桐野夏生の本は,昔「OUT」を図書館で借りて読んだ。その他にいくつか文庫本を買っていたはずだと思って調べると,昨年の部屋の片づけの際に処分していた。確か「柔らかな頬」と「グロテスク」だった。スパーク・ジョイがなかったのである。どんなストーリーだったかを思い出そうとしても印象に残っている部分がない。その点,「OUT」にははっきりした読後記憶がある。桐野夏生は1951年に金沢に生まれているけれど,3歳で引っ越しているので,自分の世界線との交わりはほとんどない。
さて,「バラカ」は,福島の原発事故が起こったもう一つの虚構の日本での出来事を描写している。部分的には納得できるのだが,全体として詰めが十分ではないと感じた。自分が期待していたのは,現実の日本を照射するもう一つの世界の精密な描写だった。著者の関心はその物語世界の中の人物造形や関係の方にあって,それはそれでおもしろかったが・・・後半はご都合主義的なまとめ方のような・・・
P. S. 作中でバラカ/おじいちゃんが愛読するのがカズオ・イシグロの「わたしを離さないで」だったので,これは読んでみようと思った。
桐野夏生の本は,昔「OUT」を図書館で借りて読んだ。その他にいくつか文庫本を買っていたはずだと思って調べると,昨年の部屋の片づけの際に処分していた。確か「柔らかな頬」と「グロテスク」だった。スパーク・ジョイがなかったのである。どんなストーリーだったかを思い出そうとしても印象に残っている部分がない。その点,「OUT」にははっきりした読後記憶がある。桐野夏生は1951年に金沢に生まれているけれど,3歳で引っ越しているので,自分の世界線との交わりはほとんどない。
さて,「バラカ」は,福島の原発事故が起こったもう一つの虚構の日本での出来事を描写している。部分的には納得できるのだが,全体として詰めが十分ではないと感じた。自分が期待していたのは,現実の日本を照射するもう一つの世界の精密な描写だった。著者の関心はその物語世界の中の人物造形や関係の方にあって,それはそれでおもしろかったが・・・後半はご都合主義的なまとめ方のような・・・
P. S. 作中でバラカ/おじいちゃんが愛読するのがカズオ・イシグロの「わたしを離さないで」だったので,これは読んでみようと思った。
2019年3月17日日曜日
素数日
ほぼ毎日(多少前後して編集しているけれど)ブログを書き始めて,今日で100記事になった。いつまで続くのだろう?何のために続けているのだろう?惰性なのだろうか?
西暦(グレゴリオ暦)のyyyy年mm月dd日を8桁の整数 yyyymmdd で表したものが素数であるものを素数日と言い習わしているようだ。あちらこちらで目にします。で,Juliaで素数日を求める関数を書いてみた。あらかじめ,Primesパッケージを読み出すので,自分の仕事はほとんどない。
using Pkg
Pkg.add("Primes")
using Primes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
function primeday(y)
u=28
if(y%4==0 && y%100!=0 || y%400==0)
u=29
end
# println(u)
mx=(31,u,31,30,31,30,31,31,30,31,30,31)
for m in 1:12, d in 1:mx[m]
if(isprime(y*10000+m*100+d))
println(y*10000+m*100+d)
end
end
end
primeday(2019)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
20190221
20190227
20190301
20190319
20190323
20190421
20190523
20190529
20190601
20190613
20190719
20190811
20190823
20190913
20191009
20191027
20191109
20191117
20191231
西暦(グレゴリオ暦)のyyyy年mm月dd日を8桁の整数 yyyymmdd で表したものが素数であるものを素数日と言い習わしているようだ。あちらこちらで目にします。で,Juliaで素数日を求める関数を書いてみた。あらかじめ,Primesパッケージを読み出すので,自分の仕事はほとんどない。
using Pkg
Pkg.add("Primes")
using Primes
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
function primeday(y)
u=28
if(y%4==0 && y%100!=0 || y%400==0)
u=29
end
# println(u)
mx=(31,u,31,30,31,30,31,31,30,31,30,31)
for m in 1:12, d in 1:mx[m]
if(isprime(y*10000+m*100+d))
println(y*10000+m*100+d)
end
end
end
primeday(2019)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
20190221
20190227
20190301
20190319
20190323
20190421
20190523
20190529
20190601
20190613
20190719
20190811
20190823
20190913
20191009
20191027
20191109
20191117
20191231
2019年3月16日土曜日
機械学習と物理
長らく物理学会には足を向けていない。今年の第74回年会は九州大学の伊都キャンパスで開催されている。ちょうど今の時間に,シンポジウム「機械学習と物理」が行われている。こんな感じ。
1(一般シンポジウム講演)はじめに
阪大理・物理,橋本幸士
2(一般シンポジウム講演)物性物理のグランドチャレンジに対する重回帰分析と機械学習
東大院工,今田正俊
3(一般シンポジウム講演)強い相互作用の最難問 — 中性子星の状態方程式
東大理・物理・原子核理論,福嶋健二
4(一般シンポジウム講演)データ駆動手法による相関物質の予測と理解
産総研 CD-FMat,三宅隆
5(一般シンポジウム講演)機械学習によるマルコフ連鎖モンテカルロ法の高速化へ向けて
理研(AIP/iTHEMS), 慶應大・数理,田中章詞
6(一般シンポジウム講演)機械学習による特徴抽出と,繰り込み群や熱力学との関係
OIST,船井正太郎
7(一般シンポジウム講演)広域撮像宇宙サーベイによるビッグデータ宇宙論
東大理・物理・宇宙理論,吉田直紀
8(一般シンポジウム講演)量子力学と機械学習の数理
東北大院情報科学,大関真之
ちなみに,昨年の2018年度日本物理学会科学セミナーのテーマも「AI(人工知能)と物理学(東京大学駒場キャンパス 数理科学研究棟 大講義室)」であった。そのプログラムは以下の通り(ちょっと被っている)。
8月11日(土・祝)10:00-16:30
1 はじめに
日本物理学会会長 川村 光
2 情報処理技術としてのAI
中島 秀之(札幌市立大学 学長)
3 思考力を競うゲームの人工知能技術発展の歴史と現状
保木 邦仁(電気通信大学大学院情報理工学研究科 准教授)
4 広域宇宙撮像データを用いたビッグデータ宇宙論
吉田 直紀(東京大学大学院理学系研究科 教授)
5 量子コンピュータが人工知能を加速する
大関 真之(東北大学大学院情報科学研究科 准教授)
6 深層学習と時空
橋本 幸士 (大阪大学大学院理学研究科 教授)
8月12日(日)10:00-16:40
7 深層学習とは何か、そしてどんなことが出来るようになっているのか
瀧 雅人(理化学研究所数理創造プログラム(iTHEMS) 上級研究員)
8 多層畳み込みニューラルネットワークで求めた量子相転移の相図
大槻 東巳(上智大学理工学部機能創造理工学科 教授)
9 人工知能と脳科学
甘利 俊一(理化学研究所脳神経科学研究センター 特別顧問)
10 量子力学の問題をニューラルネットワークで解く
斎藤 弘樹(電気通信大学大学院情報理工学研究科 教授)
11 AI は物理において何の役に立つか?
寺倉 清之(物質・材料研究機構 名誉フェロー・エグゼクティブアドバイザー)
12 おわりに
日本物理学会科学セミナー担当理事 迫田 和彰
日本物理学会誌の方でも「シリーズ 人工知能と物理学」という特集が開始され,産総研の神嶌敏弘さんの「変わりゆく機械学習と変わらない機械学習」が読める。そのうち日本物理教育学会誌にも,「機械学習と物理教育」とか「人工知能と物理教育」などの特集が組まれる時代がくるのだろうか。5年後?10年後?
参考:Quantum Machine Learning(Wikipedia)
List of Acronyms
ANN: Artificial neural network
BM: Boltzmann machine
BN: Bayesian network
CDL: Classical deep learning
CML: Classical machine learning
HMM: Hidden Markov model
HQMM: Hidden quantum Markov model
k-NN: k-nearest neighbours
NMR: Nuclear magnetic resonance
PCA: Principal component analysis
QBN: Quantum Bayesian network
QDL: Quantum deep learning
QML: Quantum machine learning
QPCA: Quantum principal component analysis
QRAM: Quantum random access memory
RAM: Random access memory
SQW: Stochastic quantum walk
SVM: Support vector machine
WNN: Weightless neural network
1(一般シンポジウム講演)はじめに
阪大理・物理,橋本幸士
2(一般シンポジウム講演)物性物理のグランドチャレンジに対する重回帰分析と機械学習
東大院工,今田正俊
3(一般シンポジウム講演)強い相互作用の最難問 — 中性子星の状態方程式
東大理・物理・原子核理論,福嶋健二
4(一般シンポジウム講演)データ駆動手法による相関物質の予測と理解
産総研 CD-FMat,三宅隆
5(一般シンポジウム講演)機械学習によるマルコフ連鎖モンテカルロ法の高速化へ向けて
理研(AIP/iTHEMS), 慶應大・数理,田中章詞
6(一般シンポジウム講演)機械学習による特徴抽出と,繰り込み群や熱力学との関係
OIST,船井正太郎
7(一般シンポジウム講演)広域撮像宇宙サーベイによるビッグデータ宇宙論
東大理・物理・宇宙理論,吉田直紀
8(一般シンポジウム講演)量子力学と機械学習の数理
東北大院情報科学,大関真之
ちなみに,昨年の2018年度日本物理学会科学セミナーのテーマも「AI(人工知能)と物理学(東京大学駒場キャンパス 数理科学研究棟 大講義室)」であった。そのプログラムは以下の通り(ちょっと被っている)。
8月11日(土・祝)10:00-16:30
1 はじめに
日本物理学会会長 川村 光
2 情報処理技術としてのAI
中島 秀之(札幌市立大学 学長)
3 思考力を競うゲームの人工知能技術発展の歴史と現状
保木 邦仁(電気通信大学大学院情報理工学研究科 准教授)
4 広域宇宙撮像データを用いたビッグデータ宇宙論
吉田 直紀(東京大学大学院理学系研究科 教授)
5 量子コンピュータが人工知能を加速する
大関 真之(東北大学大学院情報科学研究科 准教授)
6 深層学習と時空
橋本 幸士 (大阪大学大学院理学研究科 教授)
8月12日(日)10:00-16:40
7 深層学習とは何か、そしてどんなことが出来るようになっているのか
瀧 雅人(理化学研究所数理創造プログラム(iTHEMS) 上級研究員)
8 多層畳み込みニューラルネットワークで求めた量子相転移の相図
大槻 東巳(上智大学理工学部機能創造理工学科 教授)
9 人工知能と脳科学
甘利 俊一(理化学研究所脳神経科学研究センター 特別顧問)
10 量子力学の問題をニューラルネットワークで解く
斎藤 弘樹(電気通信大学大学院情報理工学研究科 教授)
11 AI は物理において何の役に立つか?
寺倉 清之(物質・材料研究機構 名誉フェロー・エグゼクティブアドバイザー)
12 おわりに
日本物理学会科学セミナー担当理事 迫田 和彰
参考:Quantum Machine Learning(Wikipedia)
List of Acronyms
ANN: Artificial neural network
BM: Boltzmann machine
BN: Bayesian network
CDL: Classical deep learning
CML: Classical machine learning
HMM: Hidden Markov model
HQMM: Hidden quantum Markov model
k-NN: k-nearest neighbours
NMR: Nuclear magnetic resonance
PCA: Principal component analysis
QBN: Quantum Bayesian network
QDL: Quantum deep learning
QML: Quantum machine learning
QPCA: Quantum principal component analysis
QRAM: Quantum random access memory
RAM: Random access memory
SQW: Stochastic quantum walk
SVM: Support vector machine
WNN: Weightless neural network
2019年3月15日金曜日
円周率の分数近似
円周率の日の余震が続いている。3月14日,Googleは円周率の計算の世界記録を更新したことを発表したとの報道があった。31.4兆桁(31,415,926,535,897桁)までの計算を111.8日(start to end で121.1日)かけて計算したそうだ。このプロジェクトを主導したのは,筑波大学出身の技術者 Emma Haruka Iwao (岩尾・エマ・はるか)さん。今年の1月には終わっていたが,このよき日に発表された。つぎに記録に挑戦するグループは,314兆桁を越えないといけないのか。
さて,だいぶ昔(2011.6.30)のWolfram Blogで,Jon McLooneが,"All Rational Approximations of Pi Are Useless"という記事を書いている。
どういうことかというと・・・円周率のよくある近似値22/7を例にとってみる。22/7 = 3.1426... は小数点以下2桁まで正しいので,小数点も含め,3 . 1 4 の4文字が表現されたことになる。このために必要な数は 2 2 / 7 の4文字である。これじゃ文字数が節約できていない。どちらを覚えてもいっしょじゃないか,ということらしい。
もっとやってみると,355/113 = 3.141592... これは小数点以下6桁すなわち8文字まで正しい円周率に対応している。一方,355/113は7文字,さきほどよりちょっとだけましだ。
McLooneの記事にあるMathematicaの関数を用いて,小数点以下50桁のπとその分数表示を求めると,
\begin{equation}
\frac{26151465932107044561886949}{8324270144388272579650158} = \\
\\
3.14159265358979323846264338327950288419716939937510...
\end{equation}
ということで共に52文字必要としている。でこぼこはあるが,おおむねこの比が1で推移することから,分数表示意味ないじゃんということになったようだ。
必要なMathematica関数は以下のようになっている。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
In[1]:= characterCount[expr_] := StringLength[
StringReplace[ToString[Unevaluated[expr], InputForm],
" " -> ""]]; SetAttribute[characterCount, HoldAll];
In[2]:= matchingCharacters[expr_, target_] :=
Ceiling[-Log10[Abs[expr - target]]] + 1
In[3]:= $MaxExtraPrecision = Infinity;
In[4]:= candidates = Table[Rationalize[Pi, 10^(-n)], {n, 1001}];
In[5]:= a = Table[candidates[[k]], {k, 1, 10}]
Out[5]= {22/7, 22/7, 201/64, 333/106, 355/113, 355/113,
75948/24175, 100798/32085, 103993/33102, 312689/99532}
In[6]:= b =
Table[characterCount[candidates[[k]]], {k, 1, 1001, 50}]
Out[6]= {4, 54, 103, 154, 203, 253, 303, 353, 404, 455, 504,
553, 603, 652, 704, 753, 803, 853, 904, 953, 1003}
In[7]:= c =
Table[matchingCharacters[candidates[[k]], Pi], {k, 1, 1001, 50}]
Out[7]= {4, 53, 103, 153, 204, 253, 303, 353, 404, 453, 503,
553, 604, 653, 704, 753, 803, 853, 903, 953, 1003}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
さて,だいぶ昔(2011.6.30)のWolfram Blogで,Jon McLooneが,"All Rational Approximations of Pi Are Useless"という記事を書いている。
どういうことかというと・・・円周率のよくある近似値22/7を例にとってみる。22/7 = 3.1426... は小数点以下2桁まで正しいので,小数点も含め,3 . 1 4 の4文字が表現されたことになる。このために必要な数は 2 2 / 7 の4文字である。これじゃ文字数が節約できていない。どちらを覚えてもいっしょじゃないか,ということらしい。
もっとやってみると,355/113 = 3.141592... これは小数点以下6桁すなわち8文字まで正しい円周率に対応している。一方,355/113は7文字,さきほどよりちょっとだけましだ。
McLooneの記事にあるMathematicaの関数を用いて,小数点以下50桁のπとその分数表示を求めると,
\begin{equation}
\frac{26151465932107044561886949}{8324270144388272579650158} = \\
\\
3.14159265358979323846264338327950288419716939937510...
\end{equation}
ということで共に52文字必要としている。でこぼこはあるが,おおむねこの比が1で推移することから,分数表示意味ないじゃんということになったようだ。
必要なMathematica関数は以下のようになっている。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
In[1]:= characterCount[expr_] := StringLength[
StringReplace[ToString[Unevaluated[expr], InputForm],
" " -> ""]]; SetAttribute[characterCount, HoldAll];
In[2]:= matchingCharacters[expr_, target_] :=
Ceiling[-Log10[Abs[expr - target]]] + 1
In[3]:= $MaxExtraPrecision = Infinity;
In[4]:= candidates = Table[Rationalize[Pi, 10^(-n)], {n, 1001}];
In[5]:= a = Table[candidates[[k]], {k, 1, 10}]
Out[5]= {22/7, 22/7, 201/64, 333/106, 355/113, 355/113,
75948/24175, 100798/32085, 103993/33102, 312689/99532}
In[6]:= b =
Table[characterCount[candidates[[k]]], {k, 1, 1001, 50}]
Out[6]= {4, 54, 103, 154, 203, 253, 303, 353, 404, 455, 504,
553, 603, 652, 704, 753, 803, 853, 904, 953, 1003}
In[7]:= c =
Table[matchingCharacters[candidates[[k]], Pi], {k, 1, 1001, 50}]
Out[7]= {4, 53, 103, 153, 204, 253, 303, 353, 404, 453, 503,
553, 604, 653, 704, 753, 803, 853, 903, 953, 1003}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2019年3月14日木曜日
ディオファントス方程式 $x^3+y^3+z^3=n$(2)
(ディオファントス方程式 $x^3+y^3+z^3=n$(1)からの続き)
というわけで,今日,3月14日は円周率の日なのかホワイトデイなのかアインシュタインの誕生日なのかホーキングの命日なのか巷では協議が続いている。
x^3+y^3+z^3=n が n=9k+4, 9k+5 では解を持たないことは簡単に示すことができる。xを9k+mとして9で割った余りをmとする。m=0,1,... 8である。このときx^3を9で割った余りは,m^3を9で割った余りになるので,(0,1,8,27,64,125,216,343,512) ≡ (0,1,8,0,1,8,0,1,8)。
そこで,この剰余(0,1,8)の3つの和のすべての組み合わせを9で割った余りの可能性を調べれば良い。(0,0,0)≡0, (0,0,1)≡1, (0,0,8)≡8, (0,1,1)≡2, (0,1,8)≡0, (0,8,8)≡7, (1,1,1)≡3, (1,1,8)≡1, (1,8,8)≡8, (8,8,8)≡6であり,ここから4と5は出てこない。
少しだけ前回のプログラムを高速化してみる。k^3の配列の次元をmとして,前回のものはO(m^3),今回のものはO(m^2)である。
(注)Juliaは0の配列添字を許さないので,この度もx,y,zから0は除いて考えている。0を含めれば,91=0^3+3^3+4^3 など簡単なものがあると思うけれど。
(注)Juliaは0の配列添字を許さないので,この度もx,y,zから0は除いて考えている。0を含めれば,91=0^3+3^3+4^3 など簡単なものがあると思うけれど。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
function pre(m,t)
for l in 1:m
t[l]=l^3
end
end
function cinv(x)
return Int(ceil(cbrt(abs(x))))
end
function dpe(n,m,t)
l=0
if(n%9 ==4 || n%9 ==5)
return (n, n%9, 0)
end
for i in 1:m
d=cinv(n-t[i])
if(n>=t[i])
for j in 1:d
k=cinv(n-t[i]-t[j])
l=l+1
if k !=0 && (t[i]+t[j]+t[k]==n || t[i]+t[j]+t[k]==-n)
return (n,l)
end
end
for j in d+1:i
k=cinv(n-t[i]-t[j])
l=l+1
if k !=0 && (t[i]+t[j]-t[k]==n || t[i]+t[j]-t[k]==-n)
return (n,l)
end
end
else
for j in d+1:i
k=cinv(t[i]-n-t[j])
l=l+1
if k !=0 && (t[i]-t[j]+t[k]==n || t[i]-t[j]+t[k]==-n)
return (n,l)
end
end
for j in 1:d
k=cinv(t[i]-n-t[j])
l=l+1
if k !=0 && (t[i]-t[j]-t[k]==n || t[i]-t[j]-t[k]==-n)
return (n,l)
end
end
end
end
return (m,l)
end
function pst(l,m,t)
for n in 1:l
println(dpe(n,m,t))
end
end
m=10000
t=ones(Int64,m)
pre(m,t)
@time pst(99,m,t)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(1, 1)
(2, 26)
(3, 1)
(4, 4, 0)
(5, 5, 0)
(6, 1)
(7, 5491)
(8, 1)
(9, 23487)
(10, 1)
(11, 4)
(12, 61)
(13, 4, 0)
(14, 5, 0)
(15, 1057)
(16, 100)
(17, 1)
(18, 4)
(19, 185)
(20, 1561)
(21, 131)
(22, 4, 0)
(23, 5, 0)
(24, 2)
(25, 2)
(26, 48674)
(27, 1)
(28, 146)
(29, 1)
(10000, 50004997)
(31, 4, 0)
(32, 5, 0)
(10000, 50004997)
(34, 10)
(35, 96)
(36, 1)
(37, 1574)
(38, 364)
(10000, 50004997)
(40, 4, 0)
(41, 5, 0)
(10000, 50004997)
(43, 2)
(44, 30)
(45, 152329)
(46, 422)
(47, 31)
(48, 6)
(49, 4, 0)
(50, 5, 0)
(51, 317009)
(10000, 50004997)
(53, 9)
(54, 70)
(55, 1)
(56, 240)
(57, 726)
(58, 4, 0)
(59, 5, 0)
(60, 9)
(61, 466761)
(62, 2)
(63, 23)
(64, 5)
(65, 6188)
(66, 5)
(67, 4, 0)
(68, 5, 0)
(69, 342)
(70, 219)
(71, 12)
(72, 50)
(73, 5)
(10000, 50004998)
(10000, 50004998)
(76, 4, 0)
(77, 5, 0)
(78, 1509)
(79, 612)
(80, 6)
(81, 3)
(82, 96)
(83, 11)
(10000, 50004994)
(85, 4, 0)
(86, 5, 0)
(87, 9120551)
(88, 13)
(89, 884141)
(90, 7)
(91, 72576)
(92, 1)
(93, 20)
(94, 4, 0)
(95, 5, 0)
(96, 239)
(97, 6)
(98, 108)
(99, 2)
14.962059 seconds (103.76 k allocations: 4.814 MiB)
function pre(m,t)
for l in 1:m
t[l]=l^3
end
end
function cinv(x)
return Int(ceil(cbrt(abs(x))))
end
function dpe(n,m,t)
l=0
if(n%9 ==4 || n%9 ==5)
return (n, n%9, 0)
end
for i in 1:m
d=cinv(n-t[i])
if(n>=t[i])
for j in 1:d
k=cinv(n-t[i]-t[j])
l=l+1
if k !=0 && (t[i]+t[j]+t[k]==n || t[i]+t[j]+t[k]==-n)
return (n,l)
end
end
for j in d+1:i
k=cinv(n-t[i]-t[j])
l=l+1
if k !=0 && (t[i]+t[j]-t[k]==n || t[i]+t[j]-t[k]==-n)
return (n,l)
end
end
else
for j in d+1:i
k=cinv(t[i]-n-t[j])
l=l+1
if k !=0 && (t[i]-t[j]+t[k]==n || t[i]-t[j]+t[k]==-n)
return (n,l)
end
end
for j in 1:d
k=cinv(t[i]-n-t[j])
l=l+1
if k !=0 && (t[i]-t[j]-t[k]==n || t[i]-t[j]-t[k]==-n)
return (n,l)
end
end
end
end
return (m,l)
end
function pst(l,m,t)
for n in 1:l
println(dpe(n,m,t))
end
end
m=10000
t=ones(Int64,m)
pre(m,t)
@time pst(99,m,t)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(1, 1)
(2, 26)
(3, 1)
(4, 4, 0)
(5, 5, 0)
(6, 1)
(7, 5491)
(8, 1)
(9, 23487)
(10, 1)
(11, 4)
(12, 61)
(13, 4, 0)
(14, 5, 0)
(15, 1057)
(16, 100)
(17, 1)
(18, 4)
(19, 185)
(20, 1561)
(21, 131)
(22, 4, 0)
(23, 5, 0)
(24, 2)
(25, 2)
(26, 48674)
(27, 1)
(28, 146)
(29, 1)
(10000, 50004997)
(31, 4, 0)
(32, 5, 0)
(10000, 50004997)
(34, 10)
(35, 96)
(36, 1)
(37, 1574)
(38, 364)
(10000, 50004997)
(40, 4, 0)
(41, 5, 0)
(10000, 50004997)
(43, 2)
(44, 30)
(45, 152329)
(46, 422)
(47, 31)
(48, 6)
(49, 4, 0)
(50, 5, 0)
(51, 317009)
(10000, 50004997)
(53, 9)
(54, 70)
(55, 1)
(56, 240)
(57, 726)
(58, 4, 0)
(59, 5, 0)
(60, 9)
(61, 466761)
(62, 2)
(63, 23)
(64, 5)
(65, 6188)
(66, 5)
(67, 4, 0)
(68, 5, 0)
(69, 342)
(70, 219)
(71, 12)
(72, 50)
(73, 5)
(10000, 50004998)
(10000, 50004998)
(76, 4, 0)
(77, 5, 0)
(78, 1509)
(79, 612)
(80, 6)
(81, 3)
(82, 96)
(83, 11)
(10000, 50004994)
(85, 4, 0)
(86, 5, 0)
(87, 9120551)
(88, 13)
(89, 884141)
(90, 7)
(91, 72576)
(92, 1)
(93, 20)
(94, 4, 0)
(95, 5, 0)
(96, 239)
(97, 6)
(98, 108)
(99, 2)
14.962059 seconds (103.76 k allocations: 4.814 MiB)
2019年3月13日水曜日
ディオファントス方程式 $x^3+y^3+z^3=n$(1)
昨日,ディオファントス方程式,$x^3+y^3+z^3=n$ の $n=33$ の解が見つかったというニュースが飛び込んできた。ここで,$n$は自然数,$x, y, z$ は整数である。例えば,$(x,y,z)=(1,1,-1)$ ならば $n=1$であり,$(x,y,z)=(7,-6,-5)$ならば $n=2$であり,$(x,y,z)=(1, 1, 1)$ならば $n=3$である。
\begin{equation}
33= (8,866,128,975,287,528)^3 \\
+(-8,778,405,442,862,239)^3 \\
+(-2,736,111,468,807,040)^3
\end{equation}
20年ほどまえの,KOYAMA, TSURUOKA & SEKIGAWA の論文では,nが1000以下では,
n= 30, 33, 42, 52, 74, 75, 110, 114, 156, 165, 195, 290, 318, 366, 390, 420, 435, 444, 452, 501, 530, 534, 564, 579, 588, 600, 606, 609, 618, 627, 633, 732, 735, 758, 767, 786, 789, 795, 830, 834, 861, 894, 903, 906, 912, 921, 933, 948, 964, 969, 975.
が未発見となっている。
簡単なJuliaのプログラムをつくってみた。$1^3$から$1000^3$までの組み合わせでつくれない2桁以下の$n$は,30,33,39,42,52,74,75,84,87の9つである。『数学者の密室(三島久典さん)』のページにはさらに詳しい情報があり,$0 \le n \le 99$, not equal 4 or 5 (mod 9) , $0 \le |x| \le |y| \le |z| \le 10^{10}$の範囲で,未解決なものはその記事の執筆時点で 33, 42, 74となっていた。
つまり,
30=(-283059965)^3+(-2218888517)^3+(2220422932)^3
33= ? → 上述のとおり解決
39=(117367)^3+(134476)^3+(-159380)^3
42= ?
52=(23961292454)^3+(60702901317)^3+(-61922712865)^3
74= ?
75=(4381159)^3+(435203083)^3+(-435203231)^3
84=(-8241191)^3+(-41531726)^3+(41639611)^3
87=(-1972)^3+(-4126)^3+(4271)^3
である。
(注)オンライン整数列大事典では,このあたり(A173515)。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
c=zeros(Int64,100)
function dpt(n,c)
a=ones(Int128,n)
for m in 1:n
a[m]=m^3
end
for i in 1:n, j in -n:n, k in j:n
if(i*j*k != 0 && j+k !=0 && i+j !=0 && i+k !=0)
b=a[i]+sign(j)*a[abs(j)]+sign(k)*a[abs(k)]
if(b>0 && b<100)
c[b]=b
end
end
end
end
for m in 10:10
println(m)
@time dft(c,100*m)
println(c,count(x->x==0,c))
end
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
10
(ディオファントス方程式 $x^3+y^3+z^3=n$(2)に続く)
\begin{equation}
33= (8,866,128,975,287,528)^3 \\
+(-8,778,405,442,862,239)^3 \\
+(-2,736,111,468,807,040)^3
\end{equation}
20年ほどまえの,KOYAMA, TSURUOKA & SEKIGAWA の論文では,nが1000以下では,
n= 30, 33, 42, 52, 74, 75, 110, 114, 156, 165, 195, 290, 318, 366, 390, 420, 435, 444, 452, 501, 530, 534, 564, 579, 588, 600, 606, 609, 618, 627, 633, 732, 735, 758, 767, 786, 789, 795, 830, 834, 861, 894, 903, 906, 912, 921, 933, 948, 964, 969, 975.
が未発見となっている。
簡単なJuliaのプログラムをつくってみた。$1^3$から$1000^3$までの組み合わせでつくれない2桁以下の$n$は,30,33,39,42,52,74,75,84,87の9つである。『数学者の密室(三島久典さん)』のページにはさらに詳しい情報があり,$0 \le n \le 99$, not equal 4 or 5 (mod 9) , $0 \le |x| \le |y| \le |z| \le 10^{10}$の範囲で,未解決なものはその記事の執筆時点で 33, 42, 74となっていた。
つまり,
30=(-283059965)^3+(-2218888517)^3+(2220422932)^3
33= ? → 上述のとおり解決
39=(117367)^3+(134476)^3+(-159380)^3
42= ?
52=(23961292454)^3+(60702901317)^3+(-61922712865)^3
74= ?
75=(4381159)^3+(435203083)^3+(-435203231)^3
84=(-8241191)^3+(-41531726)^3+(41639611)^3
87=(-1972)^3+(-4126)^3+(4271)^3
である。
(注)オンライン整数列大事典では,このあたり(A173515)。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
c=zeros(Int64,100)
function dpt(n,c)
a=ones(Int128,n)
for m in 1:n
a[m]=m^3
end
for i in 1:n, j in -n:n, k in j:n
if(i*j*k != 0 && j+k !=0 && i+j !=0 && i+k !=0)
b=a[i]+sign(j)*a[abs(j)]+sign(k)*a[abs(k)]
if(b>0 && b<100)
c[b]=b
end
end
end
end
for m in 10:10
println(m)
@time dft(c,100*m)
println(c,count(x->x==0,c))
end
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
10
8.256924 seconds (38.49 k allocations: 1.883 MiB) [1, 2, 3, 0, 0, 6, 7, 8, 9, 10, 11, 12, 0, 0, 15, 16, 17, 18, 19, 20, 21, 0, 0, 24, 25, 26, 27, 28, 29, 0, 0, 0, 0, 34, 35, 36, 37, 38, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 0, 0, 51, 0, 53, 54, 55, 56, 57, 0, 0, 60, 61, 62, 63, 64, 65, 66, 0, 0, 69, 70, 71, 72, 73, 0, 0, 0, 0, 78, 79, 80, 81, 82, 83, 0, 0, 0, 0, 88, 89, 90, 91, 92, 93, 0, 0, 96, 97, 98, 99, 0]32
(ディオファントス方程式 $x^3+y^3+z^3=n$(2)に続く)
2019年3月12日火曜日
World Wide Web
本日2019年3月12日のグーグルは,ワールド・ワイド・ウェブ(WWW)誕生30周年のデザインになっていた。ワールド・ワイド・ウェブの歴史が平成の歴史とほぼ重なっているのか。1989年の3月12日に欧州原子核研究機構(CERN=Conseil Europeen pour la Recherche Nucleaire)のティム・バーナーズ=リーが,情報管理システムの提案をしたのが出発点となっている。1990年の12月には,NeXTコンピュータ上にシステムを構築し,1991年には,世界最初のウェブサイト http://info.cern.ch/ が公開されている。
その2年後の1993年に,画像とテキストが統合されたブラウザ,NCSAモザイクが登場する。そのシステムを開発したマーク・アンドリーセンはNetscape社を立ち上げ,しばらくは,ネットスケープ・ナビゲータが標準ブラウザの位置を占めていた。まもなく,それはMicrosoftのインターネット・エクスプローラに取って代わられてしまった。
ウェブサーバのソフトとしては,ティム・バーナーズ=リーによって最初に作られたCERN-httpd,NCSAモザイクに対応した NCSA HTTPdなどがあった。20年ほど前に,最初にサーバにインストールしたのはNCSA HTTPdだったが,これが,Apache HTTP Serverに引き継がれたので切り替えた。10年前ごろには忙しくなったのか歳を取ったせいか,サーバーのお守りもできなくなってしまった。
このあたりの歴史は,TheWebKANZAKIのウェブブラウザ小史2001に詳しい。
その2年後の1993年に,画像とテキストが統合されたブラウザ,NCSAモザイクが登場する。そのシステムを開発したマーク・アンドリーセンはNetscape社を立ち上げ,しばらくは,ネットスケープ・ナビゲータが標準ブラウザの位置を占めていた。まもなく,それはMicrosoftのインターネット・エクスプローラに取って代わられてしまった。
ウェブサーバのソフトとしては,ティム・バーナーズ=リーによって最初に作られたCERN-httpd,NCSAモザイクに対応した NCSA HTTPdなどがあった。20年ほど前に,最初にサーバにインストールしたのはNCSA HTTPdだったが,これが,Apache HTTP Serverに引き継がれたので切り替えた。10年前ごろには忙しくなったのか歳を取ったせいか,サーバーのお守りもできなくなってしまった。
このあたりの歴史は,TheWebKANZAKIのウェブブラウザ小史2001に詳しい。
写真:NCSA MOSAIC beta(ウェブアーカイブから)
2019年3月11日月曜日
第二種ソフトウェア危機とマクロユーザサービス
標題の文書が発掘された。たぶん,1993年前後のものではないかと思われる。大阪大学大型計算機センターの何かによせて寄稿することを想定した文書だが(利用相談員の自己紹介かな),どこかの段階でボツになったのかもしれない。とりあえず,参考のためにテキストを起こして再現してみる。第二種というのは,研究テーマだった原子核の弱い相互作用に存在するがどうかが問題となっていたGパリティ非保存の「第二種カレント」にかけているのだが,そんなもの誰にも分からない。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
第二種ソフトウェア危機とマクロユーザサービス
−ユーザのオタク化による情報環境破壊の進行と対策−
大阪教育大学 物理学教室 越桐國雄 (メールアドレス略)
自己紹介: 私の専門分野は原子核理論(電弱相互作用と核構造)です。センターのACOSをTSSで使い始めたのは1980年ごろで,それまでは阪大核物理研究センターのTOSBACを使っていました。最近は主にワークステーションを使っています。スーパーコンピュータでUNIXが使えれば,また変わるかもしれません。相談分野は次のとおりです。
機種:ACOS,FACOM,NeXTstation,SPARCstation,Macintosh,PC-9801,FM-TOWNS.言語:FORTRAN,Mathematica.
(#ただ,どれもほとんどあてになりませんのでよろしく。)
大阪教育大の紹介: 大教大では柏原市への移転統合を機会に,情報処理センターが新たに設置されました。ホストはFACOM-M770で,ワークステーション30台,パーソナルコンピュータ50台等の構成です。各研究室からはTCP/IPで学内LANにアクセスします。N1ネットワークへは64kbpsの専用回線で接続し,SINETによる学外へのIP接続も予定しています。しかしあまりの急激な変化(これまではホスト無し,TSS端末数台とMacII40台等があっただけ)に戸惑っているような次第です。(#ほんとにもうたいへんなのです。)
センターへの希望: ダウンサイジングとネットワークング及びフリーソフトウェアの浸透により,スタッフのそろわない中小規模大学や情報系以外の研究室では,ユーザのシステム管理やソフトウェア管理の負担が年々重くなっています。また,ネットワークの発展に伴うコンピュータのメディア化が我々の情報処理能力の限界を越えて進もうとしています(ニュースとメールを読み,ファイル転送してmakeすると1日が終わってしまう!?)。こうしてあふれた情報ゴミがユーザのオタク化を促進しています。いわゆる「ソフトウェア危機」=ソフトウェア生産場面での需給ギャップに対して,これらはソフトウェア消費場面での需給ギャップといえるかもしれません。これを,「第二種ソフトウェア危機」と呼ぶことにします。第二種ソフトウェア危機は人間の基本的な欲求に密接に関係しているため,より本質的で深刻です。これを回避するための一助として,研究室,教室あるいは小規模大学のユーザグループ(=マクロユーザ)に対する適切な情報提供,事例紹介や講習等のサポートをセンターにお願いしたいと考えています。(#でも難しいですよね。中途半端な結論で終わってしまった・・・)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(注) FM-TOWNSは,日本で最初に発売されたCD-ROMドライブ付きパソコンだった。情報処理センターの副センター長だった定金晃三先生らと,これいいよね(デジタル教材メディア活用のはしりだぁ),とかいいながらネットワーク整備予算を使って一教室分導入したものである。そのうちビジネス用のPCにもCD-ROMがつくのが当たり前になってしまった。そして,これからはCD-ROMドライブが付かないのものが普通になるようだ。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
第二種ソフトウェア危機とマクロユーザサービス
−ユーザのオタク化による情報環境破壊の進行と対策−
大阪教育大学 物理学教室 越桐國雄 (メールアドレス略)
自己紹介: 私の専門分野は原子核理論(電弱相互作用と核構造)です。センターのACOSをTSSで使い始めたのは1980年ごろで,それまでは阪大核物理研究センターのTOSBACを使っていました。最近は主にワークステーションを使っています。スーパーコンピュータでUNIXが使えれば,また変わるかもしれません。相談分野は次のとおりです。
機種:ACOS,FACOM,NeXTstation,SPARCstation,Macintosh,PC-9801,FM-TOWNS.言語:FORTRAN,Mathematica.
(#ただ,どれもほとんどあてになりませんのでよろしく。)
大阪教育大の紹介: 大教大では柏原市への移転統合を機会に,情報処理センターが新たに設置されました。ホストはFACOM-M770で,ワークステーション30台,パーソナルコンピュータ50台等の構成です。各研究室からはTCP/IPで学内LANにアクセスします。N1ネットワークへは64kbpsの専用回線で接続し,SINETによる学外へのIP接続も予定しています。しかしあまりの急激な変化(これまではホスト無し,TSS端末数台とMacII40台等があっただけ)に戸惑っているような次第です。(#ほんとにもうたいへんなのです。)
センターへの希望: ダウンサイジングとネットワークング及びフリーソフトウェアの浸透により,スタッフのそろわない中小規模大学や情報系以外の研究室では,ユーザのシステム管理やソフトウェア管理の負担が年々重くなっています。また,ネットワークの発展に伴うコンピュータのメディア化が我々の情報処理能力の限界を越えて進もうとしています(ニュースとメールを読み,ファイル転送してmakeすると1日が終わってしまう!?)。こうしてあふれた情報ゴミがユーザのオタク化を促進しています。いわゆる「ソフトウェア危機」=ソフトウェア生産場面での需給ギャップに対して,これらはソフトウェア消費場面での需給ギャップといえるかもしれません。これを,「第二種ソフトウェア危機」と呼ぶことにします。第二種ソフトウェア危機は人間の基本的な欲求に密接に関係しているため,より本質的で深刻です。これを回避するための一助として,研究室,教室あるいは小規模大学のユーザグループ(=マクロユーザ)に対する適切な情報提供,事例紹介や講習等のサポートをセンターにお願いしたいと考えています。(#でも難しいですよね。中途半端な結論で終わってしまった・・・)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(注) FM-TOWNSは,日本で最初に発売されたCD-ROMドライブ付きパソコンだった。情報処理センターの副センター長だった定金晃三先生らと,これいいよね(デジタル教材メディア活用のはしりだぁ),とかいいながらネットワーク整備予算を使って一教室分導入したものである。そのうちビジネス用のPCにもCD-ROMがつくのが当たり前になってしまった。そして,これからはCD-ROMドライブが付かないのものが普通になるようだ。
2019年3月10日日曜日
JuliaのDoubleFloats
Juliaの任意精度実数としてはBigFloatがあるが,拡張精度として,DoubleFloatsのモジュールを見つけた。Double64はBigFloatより高速であるという説明があったので,ためしてみると,sqrtにバグがあって動かないような気がする。どうしたものか。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
using DoubleFloats
z=Double64(0.5)
#println((sqrt(z),cbrt(z)))
println((sin(z),cos(z),tan(z)))
#println((asin(z),acos(z),atan(z)))
println((csc(z),sec(z),cot(z)))
#println((acsc(1/z),asec(1/z),acot(1/z)))
println((sinh(z),cosh(z),tanh(z)))
#println((asinh(z),acosh(z),atanh(z)))
println((log(z),exp(z),log2(z),log10(z)))
sqrt(z)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(0.479425538604203, 0.8775825618903728, 0.5463024898437905)
(2.085829642933488, 1.139493927324549, 1.830487721712452)
(0.5210953054937474, 1.1276259652063807, 0.46211715726000974)
(-0.6931471805599453, 1.6487212707001282, -1.0, -0.3010299956639812)
UndefVarError: v not defined
Stacktrace:
[1] mul_ddfp_dd at /Users/xxxxx/.julia/packages/DoubleFloats/obU7N/src/math/ops/op_ddfp_dd.jl:16 [inlined]
[2] sqrt_dd_dd(::Tuple{Float64,Float64}) at /Users/xxxxx/.julia/packages/DoubleFloats/obU7N/src/math/ops/op_dd_dd.jl:74
[3] sqrt_db_db at /Users/koshi/.julia/packages/DoubleFloats/obU7N/src/math/ops/op_db_db.jl:26 [inlined]
[4] sqrt(::DoubleFloat{Float64}) at /Users/xxxxx/.julia/packages/DoubleFloats/obU7N/src/math/ops/arith.jl:9
[5] top-level scope at In[1]:11
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
using DoubleFloats
z=Double64(0.5)
#println((sqrt(z),cbrt(z)))
println((sin(z),cos(z),tan(z)))
#println((asin(z),acos(z),atan(z)))
println((csc(z),sec(z),cot(z)))
#println((acsc(1/z),asec(1/z),acot(1/z)))
println((sinh(z),cosh(z),tanh(z)))
#println((asinh(z),acosh(z),atanh(z)))
println((log(z),exp(z),log2(z),log10(z)))
sqrt(z)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(0.479425538604203, 0.8775825618903728, 0.5463024898437905)
(2.085829642933488, 1.139493927324549, 1.830487721712452)
(0.5210953054937474, 1.1276259652063807, 0.46211715726000974)
(-0.6931471805599453, 1.6487212707001282, -1.0, -0.3010299956639812)
UndefVarError: v not defined
Stacktrace:
[1] mul_ddfp_dd at /Users/xxxxx/.julia/packages/DoubleFloats/obU7N/src/math/ops/op_ddfp_dd.jl:16 [inlined]
[2] sqrt_dd_dd(::Tuple{Float64,Float64}) at /Users/xxxxx/.julia/packages/DoubleFloats/obU7N/src/math/ops/op_dd_dd.jl:74
[3] sqrt_db_db at /Users/koshi/.julia/packages/DoubleFloats/obU7N/src/math/ops/op_db_db.jl:26 [inlined]
[4] sqrt(::DoubleFloat{Float64}) at /Users/xxxxx/.julia/packages/DoubleFloats/obU7N/src/math/ops/arith.jl:9
[5] top-level scope at In[1]:11
2019年3月9日土曜日
Juliaの配列添字範囲
Juliaでは配列の添字が1から始まっている。Cなどでは配列の添字が0から始まっている。Fortranでは,配列の添字範囲を指定できた。そこで,Juliaでも配列の添字範囲を指定したい。
調べてみると,OffsetArrays.jl というモジュールがあった。
using Pkg
Pkg.add("OffsetArrays")
using OffsetArrays
とすればよい。
使用例は以下の通り。昔作ったFortranプログラムをJuliaにしたもの。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
setprecision(BigFloat,2^6)
o=BigFloat(0)
e=BigFloat(1)
d=BigFloat(2)
s=e/d
N = 300
fc = OffsetArray{BigFloat}(undef,-N:N);
fd = OffsetArray{BigFloat}(undef,-N:N);
fj = OffsetArray{BigFloat}(undef,-N:N);
bn = OffsetArray{BigFloat}(undef,-N:N,-N:N);
function factorials(fc,fd,fj,bn,n)
# k! = k*(k-1)*...*2*1
# fc[k] = sqrt(k!); fc[-k] = k!
# k!! = k*(k-2)*...*3*1 or k*(k-2)*...*4*2
# fd[k] = sqrt((2*k-1)!!/2^k); fd[-k] = fd[k]^2
# fj[k] = sqrt(k+1); fj[-k] = 1/sqrt(k+1)
#
fc[0]=e
fd[0]=e
fj[0]=e
for k in 1:n
kk=BigFloat(k)
fc[k]=sqrt(kk)*fc[k-1]
fc[-k]=kk*fc[-1+k]
fd[k]=sqrt(kk-s)*fd[k-1]
fd[-k]=(kk-s)*fd[-1+k]
fj[k]=sqrt(kk+e)
fj[-k]=e/sqrt(kk+e)
end
bn[0,0]=e
for k in 1:n
bn[k,0]=e
bn[0,k]=e
bn[k,k]=e
pd=e
for l in 1:div(k,2)
j=k-l
pd=pd*BigFloat(j+1)/BigFloat(l)
sd=sqrt(pd)
bn[k,l]=sd
bn[k,j]=sd
bn[l,k]=pd
bn[j,k]=pd
end
end
println(fc[n])
println(fc[-10*div(n,10)])
println((bn[45,90]))
end
@time factorials(fc,fd,fj,bn,300)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
調べてみると,OffsetArrays.jl というモジュールがあった。
using Pkg
Pkg.add("OffsetArrays")
using OffsetArrays
とすればよい。
使用例は以下の通り。昔作ったFortranプログラムをJuliaにしたもの。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
setprecision(BigFloat,2^6)
o=BigFloat(0)
e=BigFloat(1)
d=BigFloat(2)
s=e/d
N = 300
fc = OffsetArray{BigFloat}(undef,-N:N);
fd = OffsetArray{BigFloat}(undef,-N:N);
fj = OffsetArray{BigFloat}(undef,-N:N);
bn = OffsetArray{BigFloat}(undef,-N:N,-N:N);
function factorials(fc,fd,fj,bn,n)
# k! = k*(k-1)*...*2*1
# fc[k] = sqrt(k!); fc[-k] = k!
# k!! = k*(k-2)*...*3*1 or k*(k-2)*...*4*2
# fd[k] = sqrt((2*k-1)!!/2^k); fd[-k] = fd[k]^2
# fj[k] = sqrt(k+1); fj[-k] = 1/sqrt(k+1)
#
fc[0]=e
fd[0]=e
fj[0]=e
for k in 1:n
kk=BigFloat(k)
fc[k]=sqrt(kk)*fc[k-1]
fc[-k]=kk*fc[-1+k]
fd[k]=sqrt(kk-s)*fd[k-1]
fd[-k]=(kk-s)*fd[-1+k]
fj[k]=sqrt(kk+e)
fj[-k]=e/sqrt(kk+e)
end
bn[0,0]=e
for k in 1:n
bn[k,0]=e
bn[0,k]=e
bn[k,k]=e
pd=e
for l in 1:div(k,2)
j=k-l
pd=pd*BigFloat(j+1)/BigFloat(l)
sd=sqrt(pd)
bn[k,l]=sd
bn[k,j]=sd
bn[l,k]=pd
bn[j,k]=pd
end
end
println(fc[n])
println(fc[-10*div(n,10)])
println((bn[45,90]))
end
@time factorials(fc,fd,fj,bn,300)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1.74944994845934542383e+307
3.03013619603034000008e+308
1.0382742128755341137e+26
0.732669 seconds (1.29 M allocations: 58.421 MiB, 10.08% gc time)
2019年3月8日金曜日
退職挨拶の練習(1)
理科教育講座の越桐です。1982年に本学に着任してこの3月末で37年になります。
本学に在席していた時間を2つに分けると,20世紀が19年,21世紀が18年ということで,20世紀のほうが長い旧世紀型人間のひとりなので,最近の社会や大学の変化の速さにはとてもついていけない今日この頃です。
さて,退職の挨拶とは,これまで言えなかったことを告白する懺悔の時間のようなものなので,1つだけ紹介させてください。昔の天王寺分校にはデータステーションという,情報処理センターの前身がありました。雨の日には雨漏りするのでコンピュータにシートをかけていました。2階の私の研究室から徒歩30秒ところです。
インターネットの普及の直前の1991年に,本学ははじめてインターネットにつながりました。当時,キャンパスネットワークはないので,利用するにはデータステーションまで行って,コンピュータを使う必要がありました。
そこで,データステーションの垣本先生と結託して,キャンパスネットワークの実験をしようということで,日本橋(にっぽんばし)までいって,私費で10BASE2のケーブルを30メートル買い,研究室のNeXTステーションにヤミで接続したのは私です。ごめんなさい。これが,本学におけるキャンパスLANのはしりでした。
今では無線LANがどこでも使える夢の世界が実現したのですが,いいのか悪いのか・・・
そんなわけで,先生方,職員の皆様方には長らく大変お世話になりました。大学はこれから大変な時代を迎えますが,どうかお身体にお気をつけ,皆さん仲たがいせずにこの難関に立ち向かっていただければと思います。本日はどうもありがとうございました。
本学に在席していた時間を2つに分けると,20世紀が19年,21世紀が18年ということで,20世紀のほうが長い旧世紀型人間のひとりなので,最近の社会や大学の変化の速さにはとてもついていけない今日この頃です。
さて,退職の挨拶とは,これまで言えなかったことを告白する懺悔の時間のようなものなので,1つだけ紹介させてください。昔の天王寺分校にはデータステーションという,情報処理センターの前身がありました。雨の日には雨漏りするのでコンピュータにシートをかけていました。2階の私の研究室から徒歩30秒ところです。
インターネットの普及の直前の1991年に,本学ははじめてインターネットにつながりました。当時,キャンパスネットワークはないので,利用するにはデータステーションまで行って,コンピュータを使う必要がありました。
そこで,データステーションの垣本先生と結託して,キャンパスネットワークの実験をしようということで,日本橋(にっぽんばし)までいって,私費で10BASE2のケーブルを30メートル買い,研究室のNeXTステーションにヤミで接続したのは私です。ごめんなさい。これが,本学におけるキャンパスLANのはしりでした。
今では無線LANがどこでも使える夢の世界が実現したのですが,いいのか悪いのか・・・
そんなわけで,先生方,職員の皆様方には長らく大変お世話になりました。大学はこれから大変な時代を迎えますが,どうかお身体にお気をつけ,皆さん仲たがいせずにこの難関に立ち向かっていただければと思います。本日はどうもありがとうございました。
登録:
投稿 (Atom)