mots quotidiens.
Daichi Mochihashi (持橋大地) daichi <at> ism.ac.jp by hns, version 2.10-pl1.

先月 2024年03月 来月
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

2017年09月29日(金) [n年日記]

#1 呉越同舟

前々から, マンションにはかなりの人が住んでいるはずなのに, エレベーターで 鉢合わせすることが期待よりかなり少ないのが不思議だった。
今日地下鉄に乗る時に少し考えてみて, これは確率的には確かにそうなのかも しれないと納得できた。 以下の話はネットワークのパケットの衝突の話と同じなので, 恐らく専門的な理論 があると思いますが, 簡単な議論として。

抽象的に考えると, 問題は区間 [0,1] に長さ p (<< 1) の短冊をN個落とした ときに, ある短冊がどれとも重ならない確率と等しい。 1日の時間が区間 [0,1] を, 短冊がそれぞれの住人がエレベーターを使っている時間を表している。

| □    □ □             □      |
これは, N個の短冊がすでにランダムに [0,1] 上にばらまかれている時, [0,1] 上に一様分布でピンを落とした時にどの短冊にもヒットしない確率と等価。

よって, エレベーターを使っている時間を仮に1分とすると, 1日は60分x24時間 = 1440分なので, 上の確率pは1/1440になる。実際には夜中に使う人は少ないので, 若干大き目に見積もるとp=1/1000=0.001くらい。
すると, 「N個の短冊のどれにもヒットしない」という確率は, (1-p) のN乗だから, 1-p=0.999とすれば, 計算すると

となる。今のマンションは住人は100人くらいだと思われるので, かち合う確率が 1/10程度というのは経験とも近い。 なお人口1000人のタワーマンションだと, この確率は0.368になり, 7/10は住人と遭遇するようです。
朝夕の時間に特に出入りが激しくなるので, 上の確率を2倍にして p = 1/500 としてみても, (1-p)^100 = 0.818 になり, 5回に4回は住人と衝突しない。
というわけで, また長年の疑問の一つが解決したのでした。


2007年09月29日() [n年日記]

#1 jroff

CS研に移って普段の環境が Fedora Core 6 に変わったら, いつの間にか groff が日本語に対応しているのに気付いた。
roff は LaTeX が普及する以前にUnixで広く使われていた組版システムで, 今でも man ページはこれ(のマクロ)で書かれています。 The Unix Super Textに書いてある通り, roff は普通は日本語には対応して いないので日本では流行っていませんが, 結構roffで書かれた論文や書籍は 昔は多かったようで, たとえば僕の見る所, SICP はroffで組版されているのではないかと思う。
以下, 自分用のメモ代わりも含めて。

roffはNAISTの学生だった頃から気になっていたのですが, jgroffを自分でコンパイル して入れても, うまく動かなかったりしてこれまで諦めていた。
僕は手元の環境には特に入れた覚えがないのですが, たとえば次のようなファイル test.rf

.TL
roff 文書のテスト
.AU
持橋大地
NTTコミュニケーション科学基礎研究所
.AB
This is an abstract.
We typeset this text using a traditional UNIX program
.I roff.
.AE
.NH
Introduction
.PP
ここから本文。
.SH
他の例
.DS
(define (fact n)
  (if (= n 0) 1
      (* n (fact (- n 1)))))
.DE
を用意して,
% groff -Tnippon -ms test.rf
のように実行すると, デフォルトでは端末に下のように整形されます。 素晴らしい。

roff が LaTeX と違うところは, こうして端末にテキストとして整形することが できること。かつ, -Tps オプションを使うと, 綺麗に PostScript に出力する こともできます。

% groff -Tnippon -Tps -ms test.rf > test.ps
roff.pdf [4KB] (上のtest.pdfをPDFにしたもの)。
これでわかるように, 脚注やverbatim等も含めて, 簡単に非常に綺麗なタイプセットが 得られます。

・ マクロパッケージ

上では標準的なmsマクロパッケージ *1 を使って書いていますが, roffで問題になるのは, ほとんど身の周りに解説書が ない(&知っている人もほとんどいない) ことです。
"% man 7 roff" や "% man 7 groff_man" でman形式のマニュアルが見られますが, msマクロパッケージの標準的な文書は M.E.Lesk, "Typing Documents on the UNIX System: Using the -ms Macros with Troff and Nroff" のようで, これはベル研の "Unix Tenth Edition Manual"のページ から読むことができます [ps] [pdf]
他にも探していると, 何と troff.org というサイトを発見。 http://www.troff.org/papers.html から, マニュアル類をすべて読むことができます。素晴らしすぎ。

ちょっと面白かったのは, 上のページで最後の参考文献のフォーマットが, "%A Dale Dougherty" のようにBibtexとは違う簡単な形式になっていて, 高林君の scbib とそっくりだなあ, ということ。 S式で書くのも "%A"と書くのも本質的に同じで, 結局simple is bestなのね, という気がします。

・ その他リンク:


*1: -m** の部分がマクロパッケージの名前(例えば, -manは"an"マクロパッケージ) なので, "s"というのが正確かもしれない。

2 days displayed.
タイトル一覧
カテゴリ分類
 なかのひと
Powered by hns-2.10-pl1, HyperNikkiSystem Project