雨の中、歩くべきか走るべきか

Share

傘を忘れた日の永遠の問い、歩くか、走るか、いやいっそ雨宿りをするのか。物理で決着をつける。


モデル

人体を直方体で近似。上面積 $A_{\text{top}}$(頭・肩)、前面積 $A_{\text{front}}$(胸・顔)。雨は鉛直一様(落下速度 $v_r$、数密度 $n$)、距離 $d$ を速度 $v$ で直線移動する。

人体の直方体モデルは、上から見た水平断面が $A_{\text{top}}$、正面から見た鉛直断面が $A_{\text{front}}$ の二面で構成される。移動方向は水平、雨は鉛直に降る。

受ける雨滴数は、上面が $n v_r A_{\text{top}} \cdot d/v$(滞在時間比例)、前面が $n A_{\text{front}} d$(速度非依存)。無次元化 $u = v/v_r$, $\rho = A_{\text{front}}/A_{\text{top}}$ で、

$$ \boxed{\hat{W}(u) = \frac{1}{u} + \rho} $$

$\hat{W}'' = 2u^{-3} > 0$(狭義凸)より恩恵は単調逓減、下限 $\rho$ に漸近。二速度間の削減率 $\Delta_\% = (u_2 - u_1)/[u_2(1 + \rho u_1)]$ は距離にも雨量にも依存しない普遍量。$\rho \approx 2$ で歩行→全力疾走($u: 0.2 \to 1.1$)は約59%削減。

向かい風 $w = v_w/v_r$ を加えると $\hat{W}(u) = (1 + \rho w)/u + \rho$。双曲線構造は不変、向かい風で速度増加の恩恵が拡大する。


雨宿り vs ダッシュ

雨が時間変動 $n(t)$ する場合、時刻 $T$ まで屋根の下で待ち $v_{\max}$ で走ると、移動時間 $\tau = d/v_{\max}$ のスケールで $n$ がほぼ一定なら $W(T) \propto n(T)$。指数減衰 $n = n_0 e^{-\mu t}$ で半減期 $k$ 回分待つと $1 - 2^{-k}$ 削減。半減期1回分(50%削減)が全力疾走(59%)とほぼ等価。

最適制御による一般化

状態 $x$(位置)、制御 $v(t) \in [0, v_{\max}]$、自由終端 $T$ の最適制御問題:

$$ \min_{v(\cdot)} \int_0^T n(t)\bigl[v_r A_{\text{top}} + A_{\text{front}} v(t)\bigr] dt, \quad \dot{x} = v,\; x(0)=0,\; x(T)=d $$

ハミルトニアンが $v$ にアフィン、共役変数 $p = \text{const}$ より、スイッチング関数の符号変化は高々1回。最適戦略はバンバン制御($t^*$ まで停止→全力走行)に限られ、最適出発時刻は

$$ \boxed{\frac{n(t^*)}{n(t^* + d/v_{\max})} = \frac{1 + \rho\,u_{\max}}{\rho\,u_{\max}}} $$

で決まる($\rho=2, u_{\max}=0.6$ で閾値 $\approx 1.83$)。指数減衰では臨界減衰率が閉じた形で得られ、それより速い減衰なら待ち、遅ければ即走る。

不確実性の下で

$W(T) = n(T) \cdot k$ が $n$ に線形なので確実性等価が厳密に成立。$n(t)$ を条件付き期待値 $\mathbb{E}[n(t) \mid \mathcal{F}_0]$ に置き換えて確定的解析をそのまま適用すればよい。$\mathbb{E}[n(T)] \geq n(0)$(マルチンゲール以上)なら待つ期待利得はゼロ以下。情報がなければ走れ。


結論

$$ \boxed{\hat{W}(u) = \frac{1}{u} + \rho} $$

  1. 一定の雨:走れ。削減率は距離・雨量に依存しない普遍量。
  2. 弱まる雨+屋根あり:半減期1回分の雨宿り $\approx$ 全力疾走。急速に弱まるなら待て。
  3. 未来不明:$W$ の線形性から確実性等価成立。弱まる根拠がなければ走れ。
傘を忘れたら、雨が弱まる根拠があるなら半減期1回分だけ待て。根拠がなければ迷わず走れ。

Read more

1Passwordを閉じるボタンが……ねえ!

1Passwordを使っていたら、いつの間にかウィンドウの 閉じる/最小化/最大化ボタンが消えていた。Ctrl+Wでウィンドウ自体は閉じられるので長らく放置していたけれど、調べてみたら原因がしょうもなかったので共有しておく。 💡結論 F11を押してみよう 症状 * ウィンドウ右上の最小化・最大化・閉じるボタンが表示されない * タイトルバーも消えている * Ctrl+W では普通に閉じられる * PC再起動、1Passwordの終了・再起動、アンインストール → 再インストール、いずれも変化なし 原因 ただフルスクリーンモードに入っていただけ。 1Passwordコミュニティの投稿「Lost window minimize buttons top rhc.」で全く同じ症状が報告されていて、コミュニティマネージャーの回答が「F11でフルスクリーンを切り替えてみて」だった。 解決手順 1. 1Passwordのウィンドウをクリックしてフォーカスを当てる 2. F11 を押す これでタイトルバーとボタン類が戻ってくる。ダメな場合は Win + ↓(ウィン

By Sakashita Yasunobu

外字と訓点を compile-time hash で解く

aozora は青空文庫の外字参照 (※[#「魚+師」、第3水準1-94-37] のような形) を約 14,000 件のテーブルで解決する。このテーブルを runtime の HashMap ではなく phf (perfect hash function) で持ち、コンパイル時に static 配列に焼き込んでいる。この記事はその選択の根拠と、JIS X 0213 → Unicode フォールバックの設計をまとめたもの。 handbook の対応章: Shift_JIS + 外字 resolver。 外字テーブルの形 外字エントリには 3 種類の解決結果があり、それぞれに対応する variant を GaijiEntry に持たせている。 static GAIJI_TABLE: phf:

By Sakashita Yasunobu

青空文庫の .txt を HTML に変換する最短手順

青空文庫 で配布されている .txt ファイルを HTML に変換したい、という用途向けの手順。Rust の知識は要らない。コマンド 1 行で済む。 1. CLI バイナリを取ってくる aozora の Releases ページ から自分の OS 向けのアーカイブを落とす。 OS アーカイブ名 Linux x86_64 aozora-vX.Y.Z-x86_64-unknown-linux-gnu.tar.gz macOS arm64 aozora-vX.Y.Z-aarch64-apple-darwin.tar.gz Windows

By Sakashita Yasunobu