ときどきの雑記帖 RE* (新南口)
The Fifth Element
魔改造の夜
月イチ放送の5月分がそろそろだよな。 と確認。 4月分の再放送もあるのね。
値上げ
Software Designが来月号から値上げだそうで。 仕方のないこととは言えさらに買いにくくなるわねえ。
玉座
ネタまみれ!? 『北斗の拳』原画展で聖帝サウザー様の玉座をお造りするクラファン実施 | マグミクス
丸善
久しぶりに丸の内オアゾの丸善に行ってきた。 地下にあったハンズビーがなくなっていて驚いたけど (まあハンズ自体がアレだしねえ) エスカレーター前にあった案内をよく見たら 2021年7月に営業終了とあって二度びっくり。 2021年8月以降でも3回くらいってたはずだけど 気がついてなかった?
丸の内オアゾ ❬千代田区丸の内1-6-4❭ | 「ビル/施設」カテゴリー | 丸の内スタイル
「株式会社東急ハンズ」は、2021 年 7 月 15 日(木)に「ハンズ ビー 丸の内オアゾ店」を閉店しました。
30周年だそうで。
Happy 30th Birthday, PDF! : r/programming
統計で騙されない10の方法
という本を読んでいるのだけど、「あれ?」と思う記述が二つほど (読み進めたらさらにでてくるかも)。
p.86
ティーンエイジャーが毎年20%の確率で出産するのだとしたら、 18歳の少女はほぼ全員が子持ちだ (子持ちではない18歳よりも、子持ちの18歳の方が何倍も多いことになる)。
irb(main):031:0> conf.echo = ni
irb(main):034:0> Array.new(6*1000){rand}
.each_slice(6)
.collect{|ar| ar.filter{|e|e<0.2}}
.group_by{|e|e.length}
.sort
.each{|ar| puts "#{ar[0]},#{ar[1].count}"}
0,211
1,372
2,273
3,104
4,34
5,6
p.87脚注
国によっては、世論調査で毎年ティーンエイジャーの女の子の50%が出産していることになっていたが、 もしそうだとしたら、若い女性は大抵成人時に子どもが3人いる。
irb(main):003:0> Array.new(7*1000){rand}
.each_slice(7)
.collect{|ar| ar.filter{|e|e<0.5}}
.group_by{|e|e.length}
.sort
.each{|ar| puts "#{ar[0]},#{ar[1].count}"}
0,7
1,51
2,152
3,286
4,272
5,164
6,62
7,6
Rでもやってみようかと思ったけど やり方がよくわからん😓
> array(rbinom(70000,1,0.2),c(7,10000)) -> y
> colSums(y)
[1] 1 1 0 1 0 0 1 1 2 4 1 1 0 2 1 2 0 2 0 2 1 1 1 3 2 3 1 1 2 2 2 3 3 2 0 0 1 2 2 1 0 1 1 2 3 2 1 0 1 0 3 4 1 0 1
...
[9956] 0 4 1 0 2 0 4 2 2 1 2 2 2 2 0 1 2 0 0 3 1 2 3 0 3 2 1 1 1 1 0 2 1 2 2 2 1 1 1 1 3 3 0 1 1
> mean(colSums(y))
[1] 1.4127
>
> array(rbinom(70000,1,0.5),c(7,10000)) -> z
> mean(colSums(z))
[1] 3.4973
> sum(colSums(z)==0)
[1] 82
> sum(colSums(y)==0)
[1] 2072
新刊近刊
変数変換型数値計算法
5/18新刊
— 書泉_MATH (@rikoushonotana) May 18, 2023
『変数変換型数値計算法』田中 健一郎/岡山 友昭・著7920円(岩波書店)
数値計算法を変数変換と組み合わせて高精度化する「変数変換型数値計算法」について、応用を含め詳述。
書泉オンライン⇩https://t.co/OjyRPjLwh6 pic.twitter.com/Tz4ADOmrLr
面白そうな本だけど値段が…
プログラミング文体練習
出版社: オライリー・ジャパン (2023/6/14)
原著はこれかな? O’Reillyのではないオライリーの本。ですか。
うぃきぺに著者のエントリがあった。 Cristina Lopes - Wikipedia
Ask IWATA
丸善の洋書コーナーで見かけた。 英訳されてたんだねえ。
とAmazonで調べたらスペイン語版もあってびっくり。
awk
このへんの「からくり」は gawkのメーリングリストでのやりとりでも言及されていたので 興味のある向きは以下略。
これ
- Incorrect output with OFMT="%.15e"
- Re: Incorrect output with OFMT="%.15e"
- Re: Incorrect output with OFMT="%.15e"
- Re: Incorrect output with OFMT="%.15e"
- Re: Incorrect output with OFMT="%.15e"
- Re: Incorrect output with OFMT="%.15e"
This makes sense for most use cases. For example, foo[1] is really foo[“1”]; a %e conversion in CONVFMT would really cause confusion if the integral conversion rule were not in place.
だけでは説明不足な気がしたので、gawkのマニュアルから紹介。
@cindex dark corner @subentry @code{CONVFMT} variable
Strange results can occur if you set @code{CONVFMT} to a string that doesn’t tell @code{sprintf()} how to format floating-point numbers in a useful way. For example, if you forget the @samp{%} in the format, @command{awk} converts all numbers to the same constant string.As a special case, if a number is an integer, then the result of converting it to a string is @emph{always} an integer, no matter what the value of @code{CONVFMT} may be. Given the following code fragment:
@cindex subscripts in arrays @subentry numbers as
@cindex @code{CONVFMT} variable @subentry array subscripts and
An important aspect to remember about arrays is that @emph{array subscripts are always strings}. When a numeric value is used as a subscript, it is converted to a string value before being used for subscripting (@pxref{Conversion}). This means that the value of the predefined variable @code{CONVFMT} can affect how your program accesses elements of an array. For example:
awkの配列は連想配列しかなくて、a[1]
のようなものも
1
を文字列化してハッシュ関数にかけ、その結果をもとにアクセスしている。
このとき、文字列化にはCONVFMT(古くはOFMT)を使うのだけど
整数のつもりが指数表記になってしまって
面倒があったということなんだろうねえ。
a[1]="hello"
CONVFMT="%f"
print a[1] #何が出る?
で、整数の文字列化は今のようになっていると。
MID$
switch
CPL
Dart 3
break不要のswitch文・式 (#4460236) | Dart 3リリース、ぬるぽエラーを根絶することが可能に | スラド
FORTRAN Compiler on IBM 704
ADPLUS OCT 200000000000 ADDITION SIGN -ARITHMETIC. 4F10389
ADSTAR OCT -140000000000 MULTIPLICATION SIGN -ARITHMETIC. 4F10399
MS010 CAL ADPLUS SET OP TO ADDITION 4F13478
*
MS030 SLW E+1 X 4F13479
MS213 SXD ABAR,4 4F13587
TRA MS010 4F13588
MS221 SXD ABAR,4 4F13594
TRA MS020 4F13595
SLN 1 TURN = OR ) LITE ON. 4F13674
TRA MS010 GO SCAN NEXT ELEMENT. 4F13675
CM4104 SXD NBAR,B 4F13960
CM4105 *** MS010,0 4F13961 TXL/TXH (via LATX[LH])
*
MS020 CAL ADSTAR 4F13962
TRA MS030 4F13963
E+1にはADPLUSかADSTARのいずれかが入るっぽい。 そのEはというと
E BSS 14 WORKING STORAGE USED BY SS000. 4F10277
G BSS 2 4F10286
E( BCD 1100000 -ARITHMETIC. 4F10379
I( BCD 1200000 -ARITHMETIC. 4F10380
A( BCD 1300000 -ARITHMETIC. 4F10381
P( BCD 1400000 -ARITHMETIC. 4F10382
O( BCD 1600000 -ARITHMETIC. 4F10383
X( BCD 1700000 -ARITHMETIC. 4F10384
と14ワードあるのだけど、ソースを見ると
E+14
やE+15
でアクセスしてたりしていて
??となるのだけど、
STZ E+15,4 SET ADDEND = 0. 4F11088
のようにインデックスレジスター付きのアクセスなので うまいこと14ワードに収まるようになっているのだろう。
14ワードの内訳がよくわからんのだけど
>grep -e "^.\{10\} E[+ ]" fort1.asm
ED2 PAX E+4,4 DIMENSION COUNT, AND 4F10914
CLA E+4 MOVE SUBSCRIPT 1 4F11212
STO E+4 INTO E+4. 4F11216
CAL E+4 COMBINE SUBSCRIPTS 1 AND 2, AND 4F11276
CAL E+4 TAKE SUBSCRIPT, AND 4F11294
STO E+4 E+4 = 1ST SUBSCRIPT VARIABLE, 4F11910
E+4(5ワード目)には添え字の次元の情報があるらしい。
When the FreeBSD kernel boots in Firecracker (1 CPU, 128 MB RAM), it now spends 7% of its time running a bubblesort on its SYSINITs.
— Colin Percival (@cperciva) May 19, 2023
O(N^2) can bite hard when you're sorting over a thousand items. Time to replace the bubblesort with something faster.
TAPLとドラゴンブックを持っていったのに布教できなかったのは反省
— kaneko.y (@spikeolaf) May 18, 2023