芥川龍之介が「蜘蛛の糸」を発表して百年。高二の秋の文化祭,クラスの仮装行列のテーマが 蜘蛛の糸だった。お釈迦様の極楽タワーの竹を近所から切り出し,地獄の焔と煙の絵を描いた。犍陀多に続いて蜘蛛の糸(登山部の赤いザイル)に群がる地獄の亡者だったころ。
2021年1月16日土曜日
都道府県人口当たりのCOVID-19(2)
2021年1月15日金曜日
都道府県人口当たりのCOVID-19(1)
新型コロナウイルス感染症の死亡数で,大阪府がトップに立っている。 各都道府県の人口で規格化すると1/14/2021現在では次のようになっている。
1 北海道 99(31.3%)2 大阪府 81(27.5%)
3 沖縄県 59(21.6%)
4 兵庫県 54(28.8%)
5 東京都 51(23.1%)
6 石川県 46(29.2%)
7 愛知県 40(24.9%)
8 神奈川県37(25.1%)
9 埼玉県 35(26.4%)
10 京都府 30(28.9%)
(100万人あたりの死亡数累計,全国平均は 34,カッコ内は65歳以上人口の比率)
2 沖縄県 4218(1.41%)
3 大阪府 4134(1.96%)
4 神奈川県3344(1.11%)
5 北海道 2894(3.41%)
6 愛知県 2707(1.50%)
7 埼玉県 2630(1.34%)
8 千葉県 2537(1.01%)
9 京都府 2494(1.21%)
10 福岡県 2418(1.10%)
12 奈良県 1815(1.28%)
(100万人あたりの感染数累計,全国平均は 2439,カッコ内は死亡率/感染率,全国平均は
2 石川県 4.18%
3 北海道 3.41%
4 富山県 3.39%
5 徳島県 3.31%
6 福井県 2.92%
7 山形県 2.74%
8 兵庫県 2.30%
9 福島県 2.24%
10 大阪府 1.96%
2021年1月14日木曜日
中性子寿命問題
「物質の科学2」の 演習課題に関わって,日本の加速器でもっともエネルギーの高いものは何かを調らべてみた。筑波のKEKの加速器だろうと思っていたが,このメインマシンはCP非保存検証のためのBファクトリーであって,大強度ビームを追求するものだった。このKEKBは電子8GeV,陽電子3.5GeVのコライダーでウプシロン粒子(b\bar{b})を生成して,崩壊するB中間子と反B中間子の崩壊モードを比べている。なお,増強されたSuperKEKBはルミノシティが40倍になる電子7GeV,陽電子5GeVのコライダーだ。
高エネルギー加速器研究機構(KEK)と日本原子力研究開発機構(JAEA)が茨城県大洗で共同運用しているのが,大強度陽子加速器施設(J-PARC)である。J-PARCの加速器は,線形加速器(400MeV),陽子シンクロトロン(3GeV),陽子シンクロトロン(50GeV)のメインリングからなる。50GeVのPSは今のところ30GeVで運用しているようだ。
さて,中性子寿命問題である。これまでの中性子寿命の実験的検証方法にはビーム法とボトル法の2種類があり,ビーム法では888秒,ボトル法では879秒で,9秒という有意の差があり,これが埋まっていない。前者はビームが通過しながら崩壊する際の陽子をカウントし,後者は閉じ込めた中性子の数の変化をカウントしている。もしこれが正しいのであれば,ビーム法で観測されているモード(n→p+n+ν)以外の遷移があることになる,
理論的な可能性として,ミラー中性子(mirror matter)の存在が示唆され,ミラー物質はダークマターの候補にもなっているようだがまだまだわからない。J-PARCにおけるKEKグループの実験は,第3の測定方法を定義するものであり,パルス中性子が崩壊する際の電子をカウントする。ただし,まだ実験誤差が大きすぎてこれから詰めていく段階である。
2021年1月13日水曜日
2021年1月12日火曜日
Alfred(2)
Alfred(1)からの続き
というわけで,とりあえずできたのだけれど・・・微妙に動作が思ったとおりにならない。内部で呼び出していると思われるSiri のデータに問題があるのだろうか。試行錯誤の結果とりあえず下記のやりかたでできたのだが,実際に試してみるとなんだか検索漏れがある・・・
(1) AlfredのPreferenceでWorkFlowを選択する。
(2) 画面左下の+ボタンで新しいBlankWindowを作成する。名前をつけて,説明を加え,CategoryはUncategorizedにする。Bundle IDとCreated ByとWebsiteは適当でよいのかもしれない。
(3) できた新規Workflowの画面で黒い画面を右クリック(Ctrl+クリック)して,InputsからFile Filterを選択する。
(4) keywordは コマンドをキックする短い文字列としてwith spaceにチェックしておけば良い。Placeholder titleとPlaceholder subjectも適当でよいのかもしれない。Filetypeにpdfとdjvとpublic.folderを指定したが,これは見本をdrag&dropすればよろしい。
(5) scopeには検索対象のfolderを指定するとこれでできあがり。
2021年1月11日月曜日
外国等に対する我が国の民事裁判権に関する法律
論理的には,この「外国等に対する我が国の民事裁判権に関する法律」の逆過程なので,そこで主張の妥当性が判断されるのがひとつ。さらには,国際的にはどのような原則が確立されているかということだが,「国及びその財産の裁判権からの免除に関する国際連合条約」についてという文書が外務省にある。この国連国家免除条約本体はこちら。
報道では,かつての絶対免除主義「国及びその財産については,すべて無条件に他の国の裁判所の裁判権からの免除を認めること」が,現在でも国際的な原則であるかのような印象を与える説明がなされているが,そうでもないかもしれない。なお,条約の締約国は19カ国なので,まだ発効されていない。
2021年1月10日日曜日
人工血液
新型コロナウイルス感染症の蔓延にともなって,献血機会が減少し,日本の医療活動に必要な血液が確保できないのではないかというニュースが流れていた。そこで,人工血液というのはまだ開発されていないのかどうか調べてみた。
日本血液代替物学会が存在するくらいなので,研究は進んでいると考えられる。学会誌の「人工血液」は会員以外の誰でも自由にpdfファイルで読むことができるのがありがたい。奈良県立大学の酒井宏水先生が現在の学会長だ。
人工血液の1つとして,赤血球の酸素運搬機能を代替する人工の微粒子である人工赤血球がある。日赤や医療機関で発生する期限切れ非使用赤血球(検査済み)から,酸素を結合するタンパク質ヘモグロビン(Hb)を精製分離し,これを濃度高くリポソームに封入した微粒子であり,ヘモグロビンベシクル(Hb-V)とよばれるものがその一例だ。
また,血小板輸血に関しては,室温保存による細菌繁殖に起因する感染症を防止する目的で,法制上,血小板製剤の保存期間が4日以内に限定されており,血小板輸血に対する抜本的な供給システムの構築が喫緊の課題である。このため,iPS細胞から血小板を大量に生産するための方法が研究されている。
白血球は難しいのではないかと思ったが,逆にこれは薬で代替することができて,赤血球や血小板の方が残念ながら今の医療技術では作れないので献血してほしいとのことだった。
2021年1月9日土曜日
パルスオキシメーター
ついこの間まで,パルスオキシメーターのことを「パルスオキシオメーター」 とよぶのだと勘違いしたままだった。テレビのニュースで,ようやく誤った知識が訂正された。
パルスオキシメーターは光を使って血液の酸素飽和度を測る装置である。新型コロナウィルス感染症において,無症状の段階でもその兆候を捉えるために用いられるというニュースだったような気がする。
酸素飽和度(SaO2)は,血液中のヘモグロビンが酸素と結合している割合を表す量であり,ヘモグロビンをHbと書くと,[HbO2] = HbO2 / (HbO2+Hb)として,実際には,(HbO2) = [HbO2]/ [HbO2]max で与えられる。maxは最大酸素飽和度の場合の値を意味しているので,(HbO2)の最大値は100%になる。なお,酸素飽和度には,SvO2(静脈酸素飽和度),StO2(組織酸素飽和度),SpO2(末梢酸素飽和度)があって,パルスオキシメータで測定されるのはSpO2である。
パルスオキシメータの原理については,コニカミノルタのページが詳しい(1977年に世界で最初に商品化した)。Hbは赤色光をよく吸収するが,HbO2は赤い光を透過するので血液が赤く見える。一方,HbとHbO2はともに赤外光はあまり吸収しない。そこで,赤外光IRを基準とした赤色光Rの強度,R/IRがわかれば,HbO2/Hbがわかることになる。パルスオキシメータでは脈動する血液についてのR/IRの変化成分を測定するため動脈血を見ていることに対応する。
SpO2が95%以上であれば正常,90-95%で注意,90%未満ではなんらかの処置が必要となる。ただ,新型コロナウイルス感染症の低酸素症では,よくわからないことが起きているようだ。
なお,ヒトのヘモグロビンは,ヘムとよばれる鉄原子を中心とした錯体をかこむ4ユニットから成る分子量64500のタンパク質分子である。
2021年1月8日金曜日
合衆国憲法修正第25条
アメリカ合衆国憲法修正第25条は,アメリカ合衆国大統領の承継方法や,大統領がその職務上の権限と義務を遂行することができない場合の対処法を規定している。
修正第25条[大統領の地位の継承] [1967 年成立]
第1項 大統領が免職され、死亡しまたは辞任した場合には、副大統領が大統領となる。
第2項 副大統領が欠けたときは、大統領が副大統領を指名し、指名された者は、連邦議会の両院の過半数の承認を経て、副大統領の職に就く。
第3項 大統領が、上院の臨時議長および下院の議長に対し、その職務上の権限および義務を遂行することができない旨を書面で通告したときは、その後大統領が権限および義務を遂行することができる旨を書面で通告するまで、副大統領が臨時大統領としてかかる権限および義務を遂行する。
第4項[1号] 副大統領、および行政各部の長または連邦議会が法律で定める他の機関の長のいずれかの過半数が、上院の臨時議長および下院議長に対し、大統領がその職務上の権限および義務を遂行できな い旨を書面で通告したときは、副大統領は、直ちに臨時大統領として、大統領職の権限および義務を遂行するものとする。
[2号]その後、大統領が上院の臨時議長および下院議長に対し、職務遂行不能状態は存在しない旨を書面で通告したときは、大統領はその職務上の権限および義務を回復する。但し、副大統領および行政各部の長または連邦議会が法律で定める他の機関の長のいずれかの過半数が、4 日以内に、上院の臨時議長と下院議長に対し、大統領がその職務上の権限および義務を遂行できない旨を書面で通告したときは、この限りでない。この場合には、連邦議会は、開会中でないときには48 時間以内にその目的のために集会し、問題を決定するものとする。連邦議会が、大統領が職務上の権限および義務を遂行することができない旨を通告する書面を受理してから21 日以内に、または、連邦議会が開会中でないときは、集会の要請があってから21 日以内に、両議院の3 分の2 の投票により、大統領はその職務上の権限および義務を遂行することができない旨を決議したときは、引き続き副大統領が臨時大統領としてかかる権限および義務を遂行する。 かかる決議がなされなかった場合には、大統領はその職務上の権限と義務を回復するものとする。
第2章[執行部]
第1条[大統領と副大統領、選出方法]
[第6項]大統領が罷免され、死亡し、辞職し、またはその職権および義務を遂行する能力を失ったときは、副大統領が、大統領の職務を行う。連邦議会は、大統領と副大統領がともに罷免され、死亡し、辞職し、または執務不能に陥った場合について、法律により、いかなる官吏に大統領の職務を行わせるかを定めることができる。この官吏は、執務不能の状態が解消される時または大統領が選出される時まで、大統領の職務を行う。
2021年1月7日木曜日
逆順と平方(3)
逆順と平方(2)からの続き
9桁までの範囲で考えるとしても,3億個のデータのうち条件を満足するのが高々7000個なので,ほとんど無駄な計算をしていることになる。そこで,プログラムは汚くとも,もう少し計算を簡略化できないかと考えた結果,12桁までの計算が数分程度で可能になった。2〜3桁分をまとめてループをまわしているが,この範囲でよいという証明はしたわけではなく,直感に頼っているのだった。
function reverse(n,m)
nun=zeros(Int,m)
nre=0
for k in 1:m
nun[k] = n % 10
nre = nre + nun[k]*10^(m-k)
n = div(n - nun[k],10)
end
return nre
end
function counter(n)
a = [0 1 2 3 10 11 12 13 20 21 22 23 30 31 100 101 102 103 110 111 112 113 120 121 122 123 130 131 200 201 202 203 210 211 212 213 220 221 222 223 230 231 300 301 302 303 310 311 312 313]
b = [50 4 14]
c = [10^3 10 10^2]
cnt=1
kk = c[n%3+1]
k1max = b[n%3+1]
k2max = 1 + div(n+10,14)*49
k3max = 1 + div(n+10,17)*49
k4max = 1 + div(n+10,20)*49
for k1 in 1:k1max
for k2 in 1:k2max
for k3 in 1:k3max
for k4 in 1:k4max
k=a[k1]+a[k2]*kk+a[k3]*kk*10^3+a[k4]*kk*10^6
if(k!=0)
m=Int(ceil(log10(k)+10^(-9)))
kj=BigInt(k)^2
mj=Int(ceil(log10(kj)+10^(-9)))
kr=reverse(k,m)
krj=BigInt(kr)^2
if(reverse(kj,mj)==krj)
# println(k,":",kr,":",kr^2,":",reverse(k^2,mj))
cnt=cnt+1
end
end
end
end
end
end
return cnt
end
for i in 1:12
@time println(i," : ",counter(i))
end
1 : 4
0.000491 seconds (176 allocations: 6.000 KiB)
2 : 13
0.000551 seconds (765 allocations: 22.258 KiB)
3 : 37
0.002469 seconds (3.68 k allocations: 96.281 KiB)
4 : 100
0.005823 seconds (18.99 k allocations: 466.195 KiB)
5 : 253
0.021409 seconds (81.69 k allocations: 1.886 MiB)
6 : 615
0.091992 seconds (346.74 k allocations: 7.780 MiB)
7 : 1434
0.441439 seconds (1.61 M allocations: 35.324 MiB, 11.21% gc time)
8 : 3244
1.616126 seconds (6.39 M allocations: 138.140 MiB, 11.31% gc time)
9 : 7116
6.780644 seconds (25.58 M allocations: 546.322 MiB, 13.04% gc time)
10 : 15200
28.310428 seconds (113.32 M allocations: 2.337 GiB, 13.25% gc time)
11 : 23284
108.389549 seconds (437.13 M allocations: 8.934 GiB, 13.71% gc time)
12 : 31368
417.966111 seconds (1.71 G allocations: 34.604 GiB, 14.30% gc time)
2021年1月6日水曜日
逆順と平方(2)
逆順と平方(1)からの続き
中嶋慧さんのpythonによる逆順関数がスマートだったので Juliaでも試してみた。数値を文字列に変換して,逆順にしたものをもういちど数値に戻すというものだ。プログラムとしてはスッキリしたけれど,実行時間が倍になってしまった。
function rev(n)
b = string(n)
c = b[end:-1:1]
d = parse(Int,c)
return d
end
function counter(m,j)
cnt = 1
kmax = Int(ceil(10^(m-1)*sqrt(10)))
for k in 10^(m-1)+1:kmax
kr = rev(k)
# kj = BigInt(k)^j
# krj = BigInt(kr)^j
kj = k*k
krj = kr*kr
if(rev(kj)==krj)
# if(2000<=k<=2299)
# println(k,":",kr,":",kr^j,":",rev(k^j))
# end
cnt = cnt + 1
end
end
return cnt
end
function list(l,j)
sum=1
for i in 1:l
@time sum = sum + counter(i,j)
println(i," **",j," = ",sum)
end
end
list(9,2)
0.000010 seconds (36 allocations: 1.781 KiB)
1 **2 = 4
0.000015 seconds (264 allocations: 13.062 KiB)
2 **2 = 13
0.000138 seconds (2.60 k allocations: 128.844 KiB)
3 **2 = 37
0.001734 seconds (25.96 k allocations: 1.254 MiB)
4 **2 = 100
0.016847 seconds (259.48 k allocations: 12.538 MiB)
5 **2 = 253
0.224788 seconds (2.59 M allocations: 125.376 MiB, 12.69% gc time)
6 **2 = 615
2.393325 seconds (25.95 M allocations: 1.224 GiB, 12.89% gc time)
7 **2 = 1434
26.113517 seconds (259.47 M allocations: 12.244 GiB, 11.55% gc time)
8 **2 = 3244
284.531202 seconds (2.59 G allocations: 128.882 GiB, 11.40% gc time)
9 **2 = 7116
2021年1月5日火曜日
逆順と平方(1)
中嶋慧さんが,次のようなプログラムについての話題を提供していた。ある数nの逆順に並べた数をrev(n)とする。例えば,rev(123)は321である。このとき,rev(n^2)=rev(n)^2を満たすm桁の数nは,何個あるかという問題だ。pythonでは時間がかかるので,juliaにするとよいのではないかという提案だったが,残念ながら,工夫に乏しい10^8個の計算はやたら時間を食うだけだった(追伸:条件が rev(rev(k)^2) = k^2 であると誤解していたので,その後訂正したところ,中嶋さんの結果と一致した)。
function reverse(n,m)
nun = zeros(Int,m)
nre = 0
for k in 1:m
nun[k] = n % 10
nre = nre + nun[k]*10^(m-k)
n = div(n - nun[k],10)
end
return nre
end
function counter(m)
cnt = 1
kmax = Int64(ceil(10^(m-1)*sqrt(10)))
# println(k,":",kr,":",kr^2,":",reverse(kr^2,m2),":",k^2)
# end
cnt = cnt+1
end
end
return cnt
end
function list(l)
for i in 1:l
@time sum = sum + counter(i)
end
list(9)
0.000003 seconds (6 allocations: 576 bytes)
1 : 4
0.000009 seconds (44 allocations: 4.469 KiB)
2 : 13
0.000097 seconds (434 allocations: 50.859 KiB)
3 : 37
0.000901 seconds (4.33 k allocations: 540.750 KiB)
4 : 100
0.011719 seconds (43.25 k allocations: 5.939 MiB)
5 : 253
0.145435 seconds (432.46 k allocations: 62.688 MiB, 12.05% gc time)
6 : 615
1.100731 seconds (4.32 M allocations: 692.869 MiB, 17.40% gc time)
7 : 1434
11.497505 seconds (43.25 M allocations: 7.088 GiB, 16.11% gc time)
8 : 3244
132.445766 seconds (432.46 M allocations: 77.329 GiB, 16.48% gc time)
9 : 7116
2020年12月27日日曜日
鉄犬ヘテロトピア文学賞
日経朝刊の文化欄に管啓次郎さんが,「遠吠えする鉄犬文学」として,鉄犬ヘテロトピア文学賞の話題を書いていた。まったく読んだことにない作品ばかりだった。かろうじて,第2回の候補作の「加藤直樹『九月、東京の路上で』(ころから)」だけは読んでいた。
第1回鉄犬ヘテロトピア文学賞第2回鉄犬ヘテロトピア文学賞
第3回鉄犬ヘテロトピア文学賞
第4回鉄犬ヘテロトピア文学賞
第5回鉄犬ヘテロトピア文学賞
第6回鉄犬ヘテロトピア文学賞
第7回鉄犬ヘテロトピア文学賞
2020年12月26日土曜日
レゴ(2)
「LEGO組み立て説明書」アプリをダウンロードすると(アプリ名称が「の遊び方」になるのはなぜだ),これまでの製品の詳細がわかる。また,製品についているマニュアルのpdf版もあるので便利かもしれない。
LEGO Classic 11717 1504 (2020) ブロックブロックプレート
LEGO Classic 11911 1500 (2020) アイデアパーツ〈動物セット〉
LEGO Classic 10717 1500 (2018) ブロックブロックブロック
LEGO Classic 10697 1500 (2015) アイデアパーツ〈XXL〉
LEGO Classic 10705 1000 (2016) アイデアパーツ〈XL〉
LEGO Classic 10704 900 (2017) アイデアパーツ〈スペシャルセット〉
LEGO Classic 11002 900 (2019) 作ってあそぼう
LEGO Classic 10698 790 (2015) 黄色のアイデアボックス〈スペシャル〉
LEGO Classic 10705 583 (2016) アイデアパーツ〈エクストラセット〉
LEGO Classic 10695 580 (2015) アイデアパーツ〈スペシャルセット〉
LEGO Classic 10703 502 (2017) アイデアパーツ〈建物セット〉
LEGO Classic 10698 484 (2015) 黄色のアイデアボックス〈プラス〉
LEGO Classic 11004 450 (2019) 創造力の窓
LEGO Classic 11003 451 (2019) アイデアパーツ〈目のパーツ入〉
LEGO Classic 10715 442 (2018) アイデアパーツ〈タイヤセット〉
LEGO Classic 11009 441 (2020) アイデアパーツ〈ライトセット〉
LEGO Classic 11008 270 (2020) アイデアパーツ〈お家セット〉
LEGO Classic 10712 244 (2018) アイデアパーツ〈歯車セット〉
2020年12月25日金曜日
WHOのCOVID-19データ(3)
WHOのCOVID-19データ(2)からの続き
WHOのjsonデータの冒頭部分を取り出してみた。国別に,UNIX-timeの行と地域名の行の次に10項目の数値データが並んだ配列が格納されていた。10項目の内訳は,死亡数/日,死亡数累計,1週間の死亡数,1週間の死亡数の変化分,100万人あたりの死亡数,確定感染数/日,確定感染数累計,1週間の確定感染数,1週間の確定感染数の変化分,100万人あたりの確定感染数,となっていて,これを取り出していたのだった。
{
"componentChunkName":"component---src-templates-table-tsx",
"path":"/table",
"result":
{"pageContext":
{"countryGroups":[
{
"dimension":{"name":"Country","type":"STRING","dataType":"STRING"},
"value":"US",
“data":
{"metrics":
[
{"name":"Deaths",
"type":"NUMBER",
"dataType":"NUMERIC",
"aggregateFunction":"SUM"}
,
{"name":"Cumulative Deaths",
"type":"NUMBER",
"dataType":"NUMERIC",
"aggregateFunction":"SUM"}
,
{"name":"Deaths Last 7 Days",
"type":"NUMBER",
"dataType":"NUMERIC",
"aggregateFunction":"SUM"}
,
{"name":"Deaths Last 7 Days Change",
"type":"NUMBER",
"dataType":"NUMERIC",
"aggregateFunction":"SUM"}
,
{"name":"Deaths Per Million",
"type":"NUMBER",
"dataType":"NUMERIC",
"aggregateFunction":"SUM"}
,
{"name":"Confirmed",
"type":"NUMBER",
"dataType":"NUMERIC",
"aggregateFunction":"SUM"}
,
{"name":"Cumulative Confirmed",
"type":"NUMBER",
"dataType":"NUMERIC",
"aggregateFunction":"SUM"}
,
{"name":"Cases Last 7 Days",
"type":"NUMBER",
"dataType":"NUMERIC",
"aggregateFunction":"SUM"}
,
{"name":"Cases Last 7 Days Change",
"type":"NUMBER",
"dataType":"NUMERIC",
"aggregateFunction":"SUM"}
,
{"name":"Cases Per Million",
"type":"NUMBER",
"dataType":"NUMERIC",
"aggregateFunction":"SUM"}
],
"dimensions":
[
{“name":"day", "type":"TIMESTAMP", “dataType":"STRING"},
{“name":"Region", “type":"STRING", "dataType":"STRING"}
],
"rows":
[
[1578009600000,”AMRO",0,0,0,0,0,0,0,0,0,0],
…
[1608595200000,"AMRO",1570,315318,18478,9.16,952.61,197199,17712290,1671195,13.64,53511.02]
],
"totals":[315318,42488183,2153709,15832.590000000002,128361.91999999997,17712290,1494857008,118829648,32537.839999999975,4516148.239999997]
}
},
{"dimension":
…
2020年12月24日木曜日
Alfred(1)
macOSのデスクトップツール(ランチャーアプリ)であるAlfredが超強力であるとの噂を聞きつけて,さっそくダウンロードしたものの,肝腎のメモ(Notes)が呼び出せないので速攻でアンインストールした。
しかし待てよと思い直して検索したところ,Spotlightの検索範囲に該当のファイルが存在しないと発見されないということだった。確かめてみると案の定,Spotlightからはアプリケーションフォルダが外されていた。普通はドキュメントだけ探したいからだった。
早速修正の上でAlfredを再インストールしたところ,OK。アマゾンだとかDeepLとか,いろいろと試して見る価値はあるかもしれないので,もう少し調べてみることにする。
[1]アルフレッドの使い方とおすすめワークフロー
[2]Alfred【概要・設定・使い方】〜Mac最強のランチャーアプリ
[3]Alfredアプリの設定・使い方まとめ完全版
2020年12月23日水曜日
OpenData API
だいたい,日本のIT政策やシステムはほとんどダメダメのようにみえるけれど,オープンデータAPIポータルというのはちょっと良さげなので,登録してみた。すべての行政データをカバーするのかスゴイと思っていたら,新型コロナウィルス感染症関連情報だけなのか。ちょっと残念。早速ユーザ登録してみたが,英語のアナウンスというのはまあよいとして結構スマートに標準的なユーザ登録方法が実装されている。パスワードで特殊文字を要求されたのでハイフンを使ったが,違うような雰囲気だった。ハイフンは特殊文字ではないのだろうか。
札幌市,会津若松市,群馬県,東京都,神奈川県,横浜市,福井県,三重県,神戸市,福岡市が早速対応していた。もちろん大阪や奈良はないのであった。
著作権について記述されている,利用規約の第12条は以下の通り,まあいいんじゃないの。
本サイトに掲載されている各地方公共団体が著作権を有する著作物の利用(複製、公衆送信、翻訳・変形等の翻案等)については、クリエイティブ・コモンズ・ライセンス(以下「CCライセンス」という。)の著作権を有するもの(ロゴ、シンボルマーク等を除く。)は、クリエイティブ・コモンズ・ライセンス(以下「CCライセンス」といいます。)の表示4.0 国際(CC BY 4.0)((https://creativecommons.org/licenses/by/4.0/legalcode.ja)に規定される著作権利用許諾条件を指します。)により利用できます。なお、数値データ、簡単な表・グラフ等のデータは著作権の対象ではありませんので、ライセンス欄に「CC BY」の表記がある場合でも、当該データのうち、これらのデータについてはCCライセンスの適用はなく、 自由に利用できます。
2020年12月22日火曜日
JSON
JSONは, Javascript Ibject Notation の略であり,JavaScript(ECMAScript)のデータ定義文をベースとした簡易データ定義言語である。共通データ定義言語として,XMLにかわってJSONが利用されるようになった。以下にJSONの形式をまとめる。
・オブジェクト:" "で囲まれた"キー"(文字列型)と"値"の対をコロンで結び,カンマで区切って並べたものを{}で包んだもの,階層構造が可能なので,値には,オブジェクト,配列,数値,文字列,真偽値,ヌル値がくる {"name":"koshix", "age":67}
・配列:ゼロ個以上の"" で囲まれた"値"をカンマで区切って並べたものを[]で包んだもの,オブジェクトの値がすべて値として取れるので,オブジェクトや配列の配列も可能["seiryu","suzaku","byakko","genbu"]
・数値:10進法整数,10進法浮動小数点(1.0e-10も可)
・文字列:" "で囲まれたUnicode文字列,\" (ダブルクォーテーション) \\ (バックスラッシュ) \/ (スラッシュ) \b (バックスペース) \f (フォームフィード) \n (ラインフィード) \r (キャリッジリターン)\t (タブ) \uxxxx (Unicode文字)
・真偽値:true, false(真偽を示す,必ず小文字で)
・ヌル値:null(値がないことを示す,必ず小文字で)
2020年12月21日月曜日
python3の入出力
python3の入出力周りをまとめた。
(1)標準入出力( test1.py < a > b )
#!/usr/local/bin/python3
#!/usr/local/bin/python3
#!/usr/local/bin/python3
2020年12月20日日曜日
3Dプリンタ
引き込もり生活が続いて,YouTubeが不可欠のツールになった。 時間は無限に溶かすことができる。
レゴは,YouTube動画を3本くらいみて卒業したので,次は3Dプリンタである。大阪教育大学のICT支援ルームにも導入されていた。導入企画案の作文をしたかも(しなかったかも)なので,関心・意欲・態度はあったのだが,残念なことに実行が伴わず,自分では使おうともしなかった。
ICT支援ルームのウェブページを確かめてみると,導入されている3DプリンターはUltimakerのものらしい。UltimakerというとスライサーソフトCURAなので(というか今日学んだ),筋はよかったのではないか。しかしながら,YouTubeをざっと眺めてみたところ,おすすめは,CrealityのEnder-3である。ステッピングモータの基盤を交換すると静音化もできて最強である。最初から静音基盤を使った Ender-3 V2も2万7千円で入手可能だ(あら,アマゾンでは倍の値段がついている,ひどいなぁ)。
FreeCADやFusion360などを使えば,自分でデザインした立体物をつくれる。あるいは,iPhone12 Pro やiPad ProのLiDARによる3Dスキャンデータを使うといろいろ楽しいことがまっているということなのかもしれない。
[1]iPhoneが3Dスキャナーに アプリと活用方法を徹底解説(Tsukasa-3D)[2]Creality Ender-3 V2 User's Manual
2020年12月19日土曜日
ANN
日本物理学会大阪支部の2020年度公開シンポジウム「AIで切り開く物理の世界」をZoomのウェビナーで視聴した。普段はなかなか足が重くて敬遠してしまうイベントでも,オンライン開催だと気軽に参加できるところがありがたい。橋本幸士さんの話も,牧野淳一郎さんの話も面白かった。
深層学習を関数 $y=f(x)$ だと定義して,$y$を求める順問題,$x$を求める逆問題(初期値問題),$f$を求める逆問題(システム決定問題)に分類したところや,多体系の量子力学を解くために,行列積状態,テンソルネット状態,ニューラルネット状態を用いるという整理は腑に落ちた。
原子核への応用はどうなっているのかをarxivで調べてみると,A≦4の変分モンテカルロ法をANN(Artificial Neural Network)で求めるというのが,2020年の7月に投稿されており,これを含めてIsing系でニューラルネット状態を提案したCarleoの一連の論文が非常に興味深かった。ニューラルネットを実験データと直接付き合わせるような論文は,1980年頃にはNuclear Physicsで見かけていたが,ついにここまできたか。
牧野さんがコンピュータのCPUの90%は計算に使われておらず,理論的な限界を目指した科学的な再設計が必要であると主張されていた。これはこれで面白い話だ。
2020年12月18日金曜日
ボキャブラリ
英語のボキャブラリサイズのテストがあったので,覗いてみたところ,日本語もある。ほんとかなと思って試してみると,同義語と反義語の2種類が繰り返し4択式で出てくる問題だった。英語のほうも試してみたところ,10歳児程度であった。かなり難しかったのよ。
2020年12月17日木曜日
素数の計算(4)
素数の計算(3)の続き
というわけで,JuliaのPrimes.jlでは,primes()を使って探す方が,prime()を計算するより早いということがわかってしまった。1億番目の素数を求める場合,prime()単体では,primes()を用いた場合より35倍遅い。なんだか・・・。なお,素数計数関数 $n = \pi(x)$の逆関数としては,前回のものをちょっと修整して,$x(n) = 10^{1.05 \log(n) + 1.0}$を用いた。
using Primesfunction testp(n,k)
if(k==1)
m=Int64(floor(10^(1.05*n+1.0)))
p=primes(m)
println(p[10^n])
elseif(k==2)
println(prime(10^n))
end
end
for i in 6:8
@time testp(i,1)
end
for i in 6:8
@time testp(i,2)
end
15485863
0.067474 seconds (43 allocations: 14.778 MiB)
179424673
0.915835 seconds (163 allocations: 151.275 MiB, 0.35% gc time)
2038074743
12.159200 seconds (163 allocations: 1.536 GiB, 0.10% gc time)
15485863
2.350876 seconds (2.53 M allocations: 38.664 MiB)
179424673
33.536126 seconds (29.35 M allocations: 447.880 MiB)
2038074743
426.317886 seconds (333.40 M allocations: 4.968 GiB, 0.12% gc time)
2020年12月16日水曜日
勝負の三週間
「新型コロナウイルスの感染拡大防止に向けて政府が短期間の集中した取り組みを呼びかけた「勝負の3週間」が16日最終日を迎えた」ということらしいが,感染者数も死亡者数も高止まりしている。東京に比べて大阪が若干ましに見えているけれど本当のところはどうだかわからない。吉村は和歌山県知事のメッセージもスルーしているようだし,相変わらずマスコミとの共依存でまともな対応がなされていないような気がする。とにかくデータが信頼できないというのが致命的だ。
2020年12月15日火曜日
レゴ(1)
クリスマスプレゼントにレゴをと考えて,探してみたものの,自分の考えていた昔のレゴは,LEGO CLASSICの中にも見つからなかった。単純な白,赤,黃,青,黒の5色の基本ブロックだけであらゆるものを作り出すという考えはもう古いのかもしれない。レゴ社のコマーシャルフィルムによれば,単純なものから複雑なものという戦略をやめて,最初から複雑な多様なブロックを組み合わせて,よりリアルで定まった完成品を作るという商品系列が主流になってしまった。レゴユーザーのメイキング動画をYouTubeでみているとそれなりに引き込まれてしまうので,戦略としては正しいのかもしれないが,全ての物質は素粒子から成り立っていて,世界は単純な基本法則で説明されるという世界観はもう古びてしまったのかもしれない。
2020年12月14日月曜日
素数の計算(3)
素数の計算(2)からの続き
JuliaのPrime.jlのprime()がおかしいのであれば,n番目までの素数が登場する範囲の整数の範囲がわかれば,その整数をすべてisprime()でチェックしたほうが早いのではないかという考えで,n番目の素数から整数範囲を求める方法を調べた。
素数定理によれば,素数の数$n=\pi(x)$は${\rm Li}(x)=\int_2^x \frac{1}{log t}dt$で与えられるということだ。対数積分は,Pythonのライブラリにはあるが,JuliaのSpecialFunctions.jlには入っていない。いずれにせよ近似値でよいのだから,素数定理の$\pi(x)$の表をながめて,えいやっと逆関数の近似式を求めた。
$x=\pi^{-1}(n)=10^{\dfrac{9.11*\log_{10}n+6.5}{8.5}}$
残念ながらこれで計算したprime()の代替関数はオリジナルの15倍時間がかかるという情けない結果に終わってしまった。猿の浅知恵の典型的パターンである。
using Primesfunction logint(n)
x=10.0^((9.11*log10(n)+6.5)/8.5)
m = BigInt(floor(x))
println(m)
return m
end
function test(n)
m = logint(n)
i = 0
for p in 1:m
if(isprime(p))
i = i+1
if(i == n)
println(p)
break
end
end
end
end
@time test(10^6)
@time println(prime(10^6))
15678124
15485863
32.740030 seconds (124.81 M allocations: 4.688 GiB, 12.73% gc time)
15485863
2.493369 seconds (2.53 M allocations: 38.664 MiB, 0.99% gc time)
2020年12月13日日曜日
素数の計算(2)
素数の計算(1)の続き
Juliaの素数計算が遅い原因を絞り込みたい。python3とJuliaを比べると,素数判定のisprimeや範囲指定素数のprimerangeやprimesではともに高速であるが,順序指定素数のprimeにおいて,juliaはpythonの200倍程度時間がかかっている。しかし,同じ範囲の素数は,素数判定や範囲指定素数では高速に計算できているので,juliaのprimeのコードがややこしいことになっているのが問題だと思われる。
python3では,from sympy import *
import time
start_time=time.time()
n=179424673
m=10**7
for p in range(n,n+50):
if isprime(p)==1:
print(p)
lap1_time=time.time()
print(list(primerange(n, n+50)))
lap2_time=time.time()
for i in range(m,m+4):
print(prime(i))
end_time=time.time()
print(lap1_time-start_time)
print(lap2_time-lap1_time)
print(end_time-lap2_time)
- - - - - - - - - -
179424673
179424691
179424697
179424719
[179424673, 179424691, 179424697, 179424719]
179424673
179424691
179424697
179424719
0.0050160884857177734
0.002671957015991211
0.5041019916534424
julia1.5.1では
using Primes
function test1(n)
for p in n:n+50
if(isprime(p))
println(p)
end
end
end
function test2(n)
println(primes(n,n+50))
end
function test3(n)
for p in n:n+3
println(prime(p))
end
end
@time test1(179424673)
@time test2(179424673)
@time test3(10^7)
- - - - - - - - - -
179424673
179424691
179424697
179424719
0.000310 seconds (146 allocations: 3.500 KiB)
[179424673, 179424691, 179424697, 179424719]
0.000521 seconds (207 allocations: 8.109 KiB)
179424673
179424691
179424697
179424719
128.789228 seconds (117.41 M allocations: 1.750 GiB, 0.34% gc time)
2020年12月12日土曜日
ファンドマネージャー
だまされないようにと思いながら,だまされて 一月万冊を見ていると,ときどき,気になるニュースが飛び込んでくる。今回の清水有高と安富歩の話題の終わりの方に,ファンドマネージャーの課税の問題が登場した。ああ,これが大阪を国際金融都市にという大阪維新の妄言の根拠だったのか。新自由主義ブレーンのもとで,菅政権が狙っているサッチャリズムのコアとなる政策のひとつなのかもしれない。世襲血縁にまで手を突っ込もうとしているのかどうかはまだよくわからない。
2020年12月11日金曜日
M1(4)
M1(3) からの続き
アップルイベントから1ヶ月たって,ようやくM1 Macの熱狂も収まっていた。久しぶりに大学の情報基盤センターのページをみると,「【重要】新MACの情報端末の情報提供について」というお知らせがトップにあった。まあ,基盤センターとしてはリスクを減らさないといけないので,当然といえば当然の注意喚起ではあるが,世間の評判と対比させるとなんとなく物悲しい雰囲気がただよってしまうのであった。
M1 Macの開発環境も徐々に整いつつある。MathematicaはRosetta2の対応状況を検証中らしい。homebrewは2.6.0にバージョンアップしたことにともなって,我々も,homebrew- coreとhomebrew-caskを更新させられた。奥村さんのM1 Macの記事が参考になる。
2020年12月10日木曜日
WHOのCOVID-19データ(2)
WHOのCOVID-19データ(1)からの続き
少し改良してみた。あいかわらず,汚いプログラムではある。
#!/usr/local/bin/perl
# 12/10/2020 K. Koshigiri
# usage: json.pl 2020/12/05 5
# extract 5 day data from 2020/12/05
# original data = https://covid19.who.int/page-data/table/page-data.json
use Time::Local 'timelocal';
\$tmp = "tmpx";
\$in = "whox";
\$out = "who-dat.csv";
\$jsn = "https://covid19.who.int/page-data/table/page-data.json";
(\$sec, \$min, \$hour) = (0,0,0);
(\$year, \$month, \$day) = split '/', \$ARGV[0];
\$epochtime = timelocal(\$sec, \$min, \$hour, \$day, \$month-1, \$year-1900)+32400;
system("lynx -source \$jsn | fsp -u > \$tmp");
open(OUT, ">\$in");
open(IN, "<\$tmp");
while(
s/],/],\n/g;
print OUT;
}
close(IN);
close(OUT);
open(OUT,">\$out");
print OUT "Date, Country Code, Unix Time, Region, Deaths, Cumulative Deaths, Deaths Last 7 Days, Deaths Last 7 Days Change, Deaths Per Million, Confirmed, Cumulative Confirmed, Cases Last 7 Days,Cases Last 7 Days Change, Cases Per Million\n";
for (\$i=0; \$i<\$ARGV[1]; \$i++) {
\$ut=\$epochtime+86400*\$i;
(\$sec, \$min, \$hour, \$mday, \$mon, \$year) = gmtime(\$ut);
\$year += 1900;
\$mon += 1;
print "\$ut\n";
open(IN, "<\$in");
while(
s/\]//g;
s/\[//g;
if(/Country.*"value":"(.*?)"/) {
$ct=$1;
print OUT "$year-$mon-$mday,$ct,";
}
if(/$ut/) {
print OUT;
}
}
close(IN);
}
close(OUT);
2020年12月9日水曜日
WHOのCOVID-19データ(1)
WHOがまとめている,COVID-19についての各地域の感染者数や死亡者数の経時データは以前はダッシュボードのCSVファイルとしてアクセスできたが,今は,一日分のCSVファイルしか提供されていない。経時データはグラフの形で見ることができる。しかし,JSON形式の経時データにはアクセスできるので,これから必要な情報を取り出すperlスクリプトを作った。
古いperlの知識しかないので,動作が思ったとおりではないけれど,とりあえず第1段階の結果が出た。引き続きプログラムを精査していきたいが・・・。
#!/usr/local/bin/perl# 12/10/2020 K. Koshigiri
# usage: json.pl 2020/12/05 5
# above sample extracts 5 day data from 2020/12/05
# original data = https://covid19.who.int/page-data/table/page-data.json
use Time::Local 'timelocal';
\$tmp = "tmpx";
\$in = "whox";
\$out = "who-dat.csv";
\$jsn = "https://covid19.who.int/page-data/table/page-data.json";
(\$sec, \$min, \$hour) = (0,0,0);
(\$year, \$month, \$day) = split '/', \$ARGV[0];
\$epochtime = timelocal(\$sec, \$min, \$hour, \$day, \$month-1, \$year-1900)+32400;
open(IN, "<\$tmp");
system("lynx -source \$jsn | fsp -u > \$tmp");
open(OUT, ">\$in");
while(
s/],/],\n/g;
print OUT;
}
close(OUT);
close(IN);
for (\$i=0; \$i<\$ARGV[1]; \$i++) {
\$ut=\$epochtime+86400*\$i;
print "\$ut\n";
open(IN, "<\$in");
open(OUT,">\$out");
while(
s/\]//g;
s/\[//g;
if(/Country.*"value":"(.*?)"/) {
$ct=$1;
print OUT "$ct,";
}
if(/$ut/) {
print OUT;
}
}
close(OUT);
close(IN);
}
2020年12月8日火曜日
有馬さん(2)
今日は12月8日で,このブログを開始してからちょうど2周年ということになる。
そして,8年前の2012年12月8日にも有馬さんとの接点があった。「高度専門型理系教育指導者養成プログラム~これからの中等理科教育指導者像を探る~」と題したシンポジウムが大阪教育大学天王寺キャンパスのミレニアムホールで開催され,その基調講演に有馬さんを招いたのだった。たぶん,仲矢さんが話をつけてきたのではなかったか。長尾学長とプログラム責任者の定金先生に加えて当時理事だったということで私も加わって,二部主事室で有馬先生と開催前の談話をしていた。名刺交換のときに軽く自己紹介したけれど,有馬先生は私のことを覚えていなかったと思う。
さらにさかのぼって,1996年の9月に南園先生が新大阪の大阪ガーデンパレスで開いた国際シンポジウムが,「International Symposium on Non-Nucleonic Degrees of Freedom Detected in Nuclei」であり,この基調講演にも有馬先生を招待していた。実行委員のメンバーの一人でもあったため,歩いて5分の新大阪の駅まで有馬先生を迎えに行くことになった。有馬先生はすぐに見つかり,かばんをお持ちしましょうといったのだけれど,いやいや大丈夫と断られた。ホテルまでの道筋でもそんな大した話はした記憶はない。ただ,森田研の出身であったということはなんとなく理解されていたのだと思う。
この大阪ガーデンパレスは,私立学校の共済組合の系列であり,城西国際大学に移られた森田先生がよく利用されていた。しばしばホテルに呼び出されて,その時点での研究状況等を報告してから,昼ごはんをごちそうになっていた。科研費の打ち合わせということで,謝金もたまに出ていた。
2020年12月7日月曜日
有馬さん(1)
有馬さんが亡くなった。twitterでは,毀誉褒貶が喧しい。文部科学大臣や政治家としての彼の仕事に対する批判,東大関係者や俳句関係者からの賛辞などが集まっていた。同じ原子核理論で比較的分野の重なりもあったため,いくつかの記憶がある。
有馬さんといえば,堀江・有馬の論文(Configuration Mixing and Magnetic Moments of Odd Nuclei)だ。この延長線上に,1970年代末の東大の鈴木俊夫さんらの論文「12Cの非弾性電子散乱におけるM1磁気形状因子に対するコア偏極の効果」があり,それが自分の博士論文の「A=12体系のベータ崩壊におけるコア偏極と交換流の効果」の話につながっていく。この博士論文のコピーは大坪先生からの助言で,有馬先生にも送っている。そんなわけで,阪大における堀江さんの原子核殻模型の集中講義は非常によく飲み込めた。また,鈴木らの論文をめぐる理論上の問題では,矢崎紘一さんとガチの計算のやりとりをしたのもなつかしい。向こうの論文に若干の欠陥はあったものの,その指摘の過程でのこちらの計算の意味付けにも誤解があったことを矢崎さんは鋭く見抜いたのだった。
自分が大学院に進学した1970年代の後半には,有馬・IachelloのIBM(相互作用するボゾン模型)が隆盛のピークを迎えていた。1980年に阪大で開催された物理学会では,原子核理論のシンポジウムで,有馬さん(IBM)と丸森さん(TDHF)の一騎打ちがみられた。それに比べれば,中間エネルギー核物理と核構造という一点で東大グループとは重なっていたとはいえ,原子核の弱い相互作用はマイナーな分野だった。
有馬さんが物理から離れるとともに東大の原子核理論グループ(大塚孝治さんら)もIBMを離れて,本格的な大規模殻模型の数値計算に進んでいき,その段階では我々はまったく追いつくことができなかった。1980年ごろには,殻模型の伝統のある東大でも0pシェルのcfpもおぼつかないのではと大坪さんが話していたのだけれど,それはあっという間のことだった。
2020年12月6日日曜日
はやぶさ2
はやぶさ2のサンプルリターンカプセルが,2020年12月6日にオーストラリアのウーメラ砂漠で無事に回収されたようだ。はやぶさ2本体は化学エンジン噴射プロセスTCM5により再び地球軌道を離脱した。1998KY26という小惑星に2031年7月に接近する予定である。
はやぶさ2がここまでで達成したこと(世界初)は以下の通り1.小型探査ロボットによる小天体表面の移動探査
2.複数の探査ロボットの小天体上への投下・展開
3.天体着陸精度 60 cm の実現
4.人工クレーターの作成とその過程・前後の詳細観測
5.同一天体2地点への着陸
6.地球圏外の天体の地下物質へのアクセス
7.最小・複数の小天体周回人工衛星の実現
2020年12月5日土曜日
UNIX Time
WHOのCOVID-19のデータ形式が先月の途中から変更されてしまったので,対応に苦慮しているところ。とりあえず,perlで処理するための準備をする。
#!/usr/local/bin/perl
# usage: time.pl 1607100000
# usage: time.pl 2020/12/05 21:30:00
# conversion of UNIX time & local time
use strict;
use warnings;
use Time::Local 'timelocal';
if ( @ARGV == 1 ) {
my \$unix_time = \$ARGV[0];
my (\$sec, \$min, \$hour, \$mday, \$mon, \$year);
(\$sec, \$min, \$hour, \$mday, \$mon, \$year) = gmtime(\$unix_time);
\$year += 1900;
\$mon += 1;
printf("GMT:\t%04d/%02d/%02d %02d:%02d:%02d\n", \$year ,\$mon, \$mday, \$hour, \$min, \$sec);
(\$sec, \$min, \$hour, \$mday, \$mon, \$year) = gmtime(\$unix_time);
\$year += 1900;
\$mon += 1;
\$hour +=1;
printf("CET:\t%04d/%02d/%02d %02d:%02d:%02d\n", \$year ,\$mon, \$mday, \$hour, \$min, \$sec);
(\$sec, \$min, \$hour, \$mday, \$mon, \$year) = localtime(\$unix_time);
\$year += 1900;
\$mon += 1;
printf("LOCAL:\t%04d/%02d/%02d %02d:%02d:%02d\n", \$year ,\$mon, \$mday, \$hour, \$min, \$sec);
} elsif (@ARGV == 2) {
my (\$year, \$month, \$day) = split '/', \$ARGV[0];
my (\$hour, \$min , \$sec) = split ':', \$ARGV[1];
my \$epochtime = timelocal(\$sec, \$min, \$hour, \$day, \$month-1, \$year-1900);
print \$epochtime."\n";
}
2020年12月4日金曜日
Eテレ廃止
大阪維新と同様に 菅政権のブレーンにはろくなメンバーがいないのであるが,高橋洋一がEテレ売却論をとなえて,NHKへの圧力を強めている。橋下徹が大阪府立国際児童文学館を廃止したときや,文楽協会への補助金をカットしたときにも,相当びっくりしたけれど,それに匹敵するかそれ以上の話である。SNSでの意見に同感だけれど,NHK教育テレビチャンネルがあるので,受信料を払う気になっているのだ。それがなければ,これほど偏向したNHKの報道を喜んで買う必要はない。たぶん,日本学術会議への圧力と根元は通じていて,それが新自由主義的な栄養環境下ではこのように発現するということだろう。
2020年12月3日木曜日
大阪モデル
COVID-19の大阪モデルのモデリング指標が大阪府のホームページに公開されている。第1波の段階では,それまでの安倍政権や小池知事の東京都の対応と比較して,「(相対的に)吉村知事の決断力すげー」みたいな空気が大阪マスメディアを中心として沸き起こった。ところが,その後のカッパ・イソジン騒動などでどんどん株は下落を続けた。特にひどかったのが,大阪府のコロナ感染のモデリング指標が吉村の恣意的な操作によってコロコロ変えられたことである。いまでは二度と赤信号がつかないひどい基準になっている。それもこれも「大阪市廃止特別区設置(いわゆる大阪都構想)」の住民投票のときに赤信号が灯らないようにするためだったのでなはいかと想像される。切羽詰まった状況になったので,再び恣意的な指標変更に相当する運用がされるようだ。なお,その基準というのは以下のようになっている。
(1) 新規陽性者における感染経路不明者7日間移動平均前週増加比(黄:2以上),かつ,(2) 新規陽性者における感染経路不明者数7日間移動平均(黃:10人以上/緑:10人未満で解除),(3) 7日間合計新規陽性者数[うち後半3日間](黃:120人以上かつ後半3日間で半数以上),(4) 直近1週間の人口10万人あたり新規陽性者数(緑:0.5人未満解除),(5) 患者受入重症病床使用率[重症患者数÷確保病床数](赤:70%以上 ただし「警戒(黄色)」信号が点灯した日から起算して25日以内/緑:60%未満で解除)
現時点では警戒基準(黄信号)の条件も満足していないが,解除基準も満足されていないことから,点灯した黄信号が長期に渡って継続している。このため25日以内条件は永遠にみたされず,赤信号が点灯することはない。どうして,こんなに合理性に欠ける基準を作って誰も恥じることがないのだろうか。東京都は基準とアラートが直結せず,あらかじめ恣意的な判断がはいるようになっているので,より巧妙だといえるかもしれない。
2020年12月2日水曜日
AlphaFold2(1)
twitter界隈では,AlphaFold2が騒ぎになっている。タンパク質の立体構造を求める競技でこれまでの手法から飛び抜けた成果を得る深層学習の方法が考案されたということらしいが,専門外の自乗なのでよくわからない。田口善弘さんが相当に凄いといってるのでたぶんそうなのだろうと思う。
タンパク質の立体構造というとDNAの立体構造と並んで,X線結晶解析の応用分野の花形だったような気がする。教養の化学の授業担当が,阪大の吹田にあった蛋白質研究所(1958-)助教授の芦田玉一先生(後に名大工学部)で,デュワーの「新しい化学入門」が教科書だった。この教科書は量子力学の成果をフルに生かした化学の教科書であり,物理学科の我々にはふさわしいものだったかもしれない。
五月祭のときだったろうか,何かのきっかけで,芦田先生にお願いして物理学科の数名でタンパク質研究所を見学させてもらった。たぶん,佐藤秀明くんが言い出しっぺで,みんなでそれに便乗したのではなかったか。日本で初めて構造が決定されたタンパク質であるカツオ・チトクロームCの立体構造模型を見せていただいた。秀明くんは,英語の藤井治彦先生の授業でも,ジェームズ・ワトソンの「二重らせん」をテキストにできないかという交渉をしていたのだけれど,こちらは残念ながら却下されたのであった。
2020年12月1日火曜日
Mac雑誌
アップルと私からの続き
Appleのシリコンチップ搭載Macの発表直前の11月11日に(サンフランシスコ or 日本),青木剛一(@drikin)さんと松尾公也(@mazzo)さんが,ドリキンのVLOGで,「新型Macの発表前夜に語る,元MacUser編集長と元Apple信者のAppleシリコンへの期待!(第1118話 #シネマティック対談)」という対談をしていて,いろいろ回想しながら楽しく聞いていた。
で,日本のMacの三大雑誌としてMacLife,MacPower,MacUserをあげていたが,どうも自分の記憶とずれているので,確認してみたところ,次のようであった。初期(1980年代)のMacワールドからMac+とMacLIFEはすべて買っていたと思う。そのうち,The BASICでなじみのあった技術評論社からMacJapanが発刊されたので,休刊になるまでそれを買っていたような気がするし,Software Designが1990年に創刊されているので,それに乗り換えたようにも思う。
1 Macワールド->Mac+ 1986-19912 MACLIFE BNN 1987.8-2002.1
3 MacJapan 技術評論社 1989.5-1993.5
4 MacPower アスキー 1990.2-2007.10
5 MacWorld 1991-1998.4
5 日経Mac 日経BP 1993.2-2000.1
6 MacFan マイナビ 1993.4+
7 MacUser ソフトバンク 1993.11-1998.3
8 MacPeople アスキー 1995.12-2014.11
2020年11月30日月曜日
素数の計算(1)
ソフィー・ジェルマン素数の続き
件の記事の中には,「p=999671で 2p+1=1999343,が約数となる。 2^p−1=2^99671−1 は10進法で300932桁となったが,開発用等ではないスペックのかなり低いパソコンでも2~3分で計算してくれた」とあったので追試しようとして,はまってしまった。
Mathematicaでは,このあたりのソフィー・ジェルマン素数を次のように一瞬で計算した。In[1]:= Timing[ Do[p = Prime[2^16 + i]; If[Mod[p, 4] == 3 && PrimeQ[2*p + 1], Print[p, " : ", Mod[2^p - 1, 2*p + 1]]], {i, 12900, 13000}]]そこで,10^8番目の素数をpython3で計算して判定すると,
999611 : 0
999623 : 0
999671 : 0
1000151 : 0
1000211 : 0
1000403 : 0
Out[1]= {0.007209, Null}
In[2]:= Timing[Print[p = Prime[10^8], " ", PrimeQ[p]]]
2038074743 True
Out[2]= {0.000185, Null}
from sympy import *
import time
start_time=time.time()
p=prime(10**8)
end_time=time.time()
print(p,isprime(p),end_time-start_time)
2038074743 True 2.994921922683716
同様に,10^8番目の素数をjulia 1.5で計算して判定すると,
using Primes
n=10^8
function sgp(n)
p=prime(n)
println(isprime(p)," ",p)
end
@time sgp(n)
true 2038074743
420.535971 seconds (333.45 M allocations: 4.970 GiB, 0.24% gc time)
なお,p=999671は,prime(78476)であり,この計算時間はjuliaでも0.153秒だった。それにしてもこの遅さはいったい何ということでしょう・・・?
2020年11月29日日曜日
ソフィー・ジェルマン素数
twitterでソフイー・ジェルマン素数の話を見かけた。初めてのJuliaプログラミング,ソフィー・ジェルマン素数を使ってメルセンヌ数の約数を求めてみたというMathlogの記事である。
ソフィ・ジェルマン(1776-1831)は,18世紀から19世紀のフランスの女性数学者,物理学者である。古代ローマ時代にはアレクサンドリアのヒュパティアがいたが(映画の「アレクサンドリア」で初めて知った),ソフィ・ジェルマンが近世における最初の女性数学者の魁だろうかと調べたところ,イタリアのマリア・ガエターナ・アジェーニ(1718-1799)が最初らしい。最もヨーロッパの大学で最初に教授(解剖学・物理学)になったのは,ラウラ・バッシ(1711-1778)だ。Timeline of Women in Scienceをみればさらに詳しいことがわかる。
その,ソフィー・ジェルマン素数である。2p+1が素数となる素数pのことを指す。このとき,2p+1を安全素数という。で,問題の定理は,「ソフィー・ジェルマン素数pが,p≡3(mod 4)を満たすとき,メルセンヌ数2^p-1は安全素数2p+1を約数に持つ」というもので,これをjuliaによる計算で確かめたというものだった。
2020年11月28日土曜日
学術会議のコロナフォーラム
オンラインで,日本学術会議の「新型コロナウイルス感染症コントロールに向けての学術の取り組み」が開催されている。なかなか有用な情報がコンパクトにまとめられていて,公開されている資料は参考になる。さすがにお医者さんたちは,COI(利益相反)について断ってから話し始めている。中野さんのK値は,twitter上ではみんなでよってたかってボロクソに叩いているが,今日の話を聞く限りではそこまで荒唐無稽な論を展開しているわけではない。
もっとも専門家からすれば,なんとプリミティブでナイーブなのか,ということになるのかもしれない。ただ,物理屋の議論の出発点なんていうのははたいていそんなもので,しかし,その単純化が(ごく稀に)新しいものを見つける場合もあるということもなきにしもあらずだから,大阪維新や宮沢孝幸が,政策やプロパガンダに利用(悪用)しない限りはいいのではないかしら。カッパもイソジンも被害者側なんだから。
喜連川先生の声が聞こえてくると,別のサイバーシンポジウムかと思ってしまう。そうした教育の話題やこうした医療・公衆衛生の話題など,公共性に係る課題は,総合科学技術・イノベーション会議の範疇ではない。
2020年11月27日金曜日
日本学術会議Q&A
11月26日に日本学術会議の記者会見があったようだ。野尻美穂子さんのtwitterコメントしか見ていないので,詳しい状況はわからないが2点。
(1) 第25回幹事会の記者会見の資料が公開されている。地道にこれまでの活動を説明しようとしている。内閣府特命担当大臣(科学技術政策)の井上信治はこれらを完全に無視しながら,政府機関からの離脱を迫っている。
(2) 日本学術会議に関するQ&Aが公開されている。誠実に疑問に答えているが,攻める側はむちゃくちゃなフェイク言説で負の感情を掘り起こしながら,側面や背面から攻撃を仕掛けてくるので,有効な反撃になっていない。一部(ほとんどの?)マスコミは,その側面や背面からの攻撃を煽り立てて,生贄ショーを盛り上げることを主眼としているため,残念な状況は続く。
2020年11月26日木曜日
日本国憲法の改正手続きに関する法律
日本国憲法の改正手続きに関する法律の改正案の件だ。とりあえず,衆議院憲法審査会(今203国会での第3回)での採決はなさそうだとのことだったが,維新の馬場が強行採決動議を出し,幹事会での協議に持ち込まれて散会なのか。実質審議にも入ったということでまったく予断を許さない。
審議される改正案の議案と説明資料は,2018年7月の第196国会の衆議院憲法審査会に提出されている。議案そのものは,2016年の公職選挙法改正に伴う形式的な変更であるが,より本質的な問題である広告規制がまったくかからないまま,改正手続きが整ったという名目で,憲法改正プロセスが起動してしまう危険性が大きいため,野党(準与党の維新と国民民主党を除く)はブレーキをかけている。
大阪都構想で維新が使った広告費が4億円ということだから,100億も出して電通をフル稼働させれば,簡単に憲法改正が実現してしまう国なのだろう。
2020年11月25日水曜日
M1(3)
M1(2)からの続き
日本では,COVID-19の感染拡大がいよいよ可視化されつつあって,GOTOの影響があるのかないのか,そもそも効果があるのかないのか,など喧しいが,YouTube界隈ではあいかわらずApple M1チップ搭載Macの話題が続いている。ソフトウェアのM1対応状況については,IsAppleSiliconReady のサイトが詳しい。
*WHOダッシュボードのCOVID-19データが,当日だけになった(JSONを探せ)。・AppleのFinal Cut Pro Xでは,4K120pの動画編集がぎりぎり可能である。
・Davince Resolve 17 はフリーでも使える動画編集ソフトで,軽い動画ならこれでも可。
[1]物書堂(egword M / かわせみ R)
[2]google(Chrome M / 日本語入力R)
[4]MacTeX(R)MacTeX-2021を待て http://www.tug.org/mactex/aboutarm.html
[5]Julia(R) https://github.com/JuliaLang/julia/issues/36617
[6]Mathematica(✕) https://community.wolfram.com/groups/-/m/t/2088978
[7]Office2019/365(M)https://support.microsoft.com/en-us/office/microsoft-365-and-office-2019-support-for-apple-silicon-c55b603e-14a6-4b69-bdc0-2bb4c9a36834
[8]Twitter(M)
[9]Graphic Converter(R)
[10]JEditΩ(R)
2020年11月24日火曜日
政治資金規正法
総理大臣主催の公的行事である「桜を見る会」は例年4月中旬に新宿御苑で開催されている。その前夜に,ホテルニューオータニやANAインターコンチネンタルホテル東京で,安倍晋三後援会が主催して開かれた「前夜祭」の資金の流れについて,昨年5月に国会で取り上げられたが,安倍晋三は適当な言い逃れを重ねて,有耶無耶になっていた。この度,東京地検特捜部が安倍の公設秘書から聞き取りをしているということで,検察のリークによる一部の情報が報道されている。
で,仮に安倍晋三が国会の参考人として呼ばれても,捜査中ということで全く答えないまま終止するだろうが,そのテレビ画像を忌避したい自民党は,野党の要求を拒否している。ただ,その背景において菅首相チームがどのようなスタンスで関わっているのかがよくわからないため,様々な憶測が飛び交っている。
ところで,責任の尻尾切りがどのように行われるかを確かめるため,政治資金規正法をチラっと眺めてみた。現職国会議員の資金管理団体一覧によると,安倍晋三の欄には,総務大臣届け出の晋和会だけが上がっている。一方,公益財団法人の政治資金センターによる「安倍晋三自民党総裁・衆議院議員・内閣総理大臣の2014年分政治資金収支における特徴(2017.03.09)」では,6つの政治団体があがっており,このうち晋和会は安倍晋三が代表であるが,安倍晋三後援会は配川博之が代表となっている。もう,この段階で簡単に尻尾切りができてしまいそうな感触で満ち溢れていた。
追伸:書き終えておやすみしようとしたら,ホテルニューオータニの件の領収書の宛先が,安倍晋三が代表の晋和会だったという情報が飛び込んできたが,いずれにせよ会計責任者や秘書のせいにして逃げ切るのだろう。2020年11月23日月曜日
選択的夫婦別姓制度
選択的夫婦別姓制度にはもちろん賛成だと思っていたけれど,別姓を選択した夫婦の子どもの名字はどうなるのかと考えると,自分は理解していないことがわかったので,さっそくググってみた。
サイボウズの青野慶久さんの昨年の記事がでてきた。法務省のFAQにもあるように,「平成8年の法制審議会の答申では,婚姻の際に,あらかじめ子どもが名乗るべき氏を決めておくという考え方が採用されており,子どもが複数いるときは,子どもは全員同じ氏を名乗ることとされています。」ということで,問題はなかった。
反対しているのは,日本会議などを背景とする自由民主党の右派議員だけであり,そこに悪目立ちしている極右女性議員が集まっているのもネックになっているかもしれない。
2020年11月22日日曜日
K値再々訪
阪大RCNPの中野さんがK値を提唱してから半年が経過した。大阪維新はまだこれを使っているらしいので,なんだかなあというが巷の定評である。これを予想に使おうとするからおかしいのであって,現在の感染拡大状況の指標の一つと考えれば,別に問題ないということはこれまでも繰り返し指摘してきた。とりあえず,7月1日から11月19日までのK値を眺めてみた。
アジアのK値(2020.7.1〜11.19)
香港の7月の感染拡大が特徴的に可視化されている。同様に日本や東京の7月からの第2波が見えている。そして,今第3波の兆しが出てきたが,累計の絶対値が大きくなるにつれて感度は鈍くなっている。
欧米のK値(2020.7.1〜11.19)
2020年11月21日土曜日
CFR(致命率)(4)
CFR(致命率)(3)からの続き
WHOのダッシュボードを眺めていると,やなり新規感染数のピークと死亡数のピークは1〜3週間ほどずれているので,致命率の定義を修正したバージョンを考える。「致命率*=死亡数累計(t)/新規感染数累計(t-14)」として,感染確認時に対して死亡時には2週間(14日)の遅延があると仮定した。また,英国の新規感染数累計と死亡数累計にあった不連続をWHOのデータを再確認して解消した。最近3ヶ月の定性的な結果は同じだけれど,4〜5月あたりの感染急拡大期の振る舞いは大きく変動している国もあった。なお,このように定義した致命率*の値の最新値(2020.11.19時点)を示しておく。
アジアの致命率*:
イラン 6.6%,武漢 6.6%,中国 5.2%,インドネシア 3.7%,フィリピン 2.1%,香港 2.0%,日本 1.9%,韓国 1.8%,インド 1.6%,東京 1.5%,台湾 1.2%(2020.11.19 現在)
欧米の致命率*:
メキシコ 10.6%,イタリア 6.0%,英国 4.8%,スペイン 3.2%,フランス 3.1%,ブラジル 3.0%,トルコ 3.1%,米国 2.7%,ドイツ 2.2%,ロシア2.0%(2020.11.19 現在)
2020年11月20日金曜日
CFR(致命率)(3)
CFR(致命率)(2)からの続き
およそ半年前に,COVID-19の致命率について書いた。その後のデータが蓄積してきたので改めて考えてみよう。前回は「致命率 = 死亡数累計(t)/新規感染数累計(t-7)」と定義して,2月から5月あたりの3ヶ月分くらいのデータを見ていた。今回は,大局的な振る舞いを比較するため,5月1日から11月19日までのアジアと欧米の主要国の「致命率」=死亡数累計(t)/新規感染数累計(t)とあらためて定義して,その時間変化と国別の比較について考察する。なお,データは,WHO Coronavirus Disease (COVID-19) Dashboard を用いた。また,通常のインフルエンザの致命率は0.1%未満のオーダーであることに注意する。
(1)アジアの場合