あみだくじ

韓国の사다리타기・日本のあみだくじ。参加者 N 人と結果 N 個を入力すると、ランダムに横線が引かれ、各名前がちょうど 1 つの結果につながります。名前をクリックすると経路が描かれます。

Loading…

すべての処理はブラウザ内で実行されます — ファイルや入力はサーバへ送信されません。

使い方

左に参加者を 1 行 1 名、右に結果を 1 行 1 件入力します。結果の数は参加者と同じであるべきで、多すぎる分は切り捨て、足りない分は em-dash で埋めます。参加者ラベルをクリックすると経路が上から下まで描画され、再クリックで非表示になります。**全員表示** ですべての経路を一度に色分け表示します。

仕組みとしてはしごは全単射 — 上段から下段への順列 — であり、各結果はちょうど 1 人の参加者に割り当てられます。横線はセルごとに約 45% の確率で配置され、同じ行で隣接列に 2 本続けて引かない制約があります(でないと経路が曖昧になります)。**作り直す** は参加者と結果を保ったまま横線だけ引き直します。

社内シークレットサンタの組み合わせ

入力
participants: Alice, Bob, Charlie, Dave
outcomes:     Alice, Bob, Charlie, Dave (same names, will be permuted)
出力
Alice → Charlie
Bob   → Dave
Charlie → Bob
Dave  → Alice

사다리타기・あみだくじの定番用途 — 各人を贈り物の相手に対応付けます。全単射のため自分自身に当たる(Alice が Alice を引く)場合もあり、その場合は自己対応がなくなるまで作り直すと小さい N では十分実用的です。

当番割り当て — 4 人 × 4 役割

入力
participants: Alice, Bob, Charlie, Dave
outcomes:     dishes, vacuum, trash, laundry
出力
Alice → laundry
Bob → dishes
Charlie → trash
Dave → vacuum

全単射により各当番がちょうど 1 度ずつ割り当てられ、誰も 2 役にはなりません。シェアハウスや週次ローテーションに便利です — 毎週作り直せばシャッフルできます。

よくある質問

結果は本当に一様な順列ですか?

近いですが厳密には違います。各セルは約 45% の確率で独立に横線が引かれ(隣接制約あり)、生じる順列は隣接スワップが長距離移動より起こりやすい偏りがあります。パーティ用途では知覚できない偏差で、どの順列にも非ゼロの確率はあります。厳密な一様順列が必要なときは結果リストに Fisher-Yates シャッフルを使ってください。

なぜ隣り合う横線を禁止しているのですか?

横線が同じ行で列 `c` と `c+1` に並ぶと、列 `c+1` を下りてきた人は左 (`c` へ戻る) と右 (`c+2` へ進む) のどちらを選ぶかという曖昧さが生じます。伝統的には左から処理して解決しますが、視覚的には横線を 1 本飛ばしたように見え、見ている人を混乱させます。禁止することで、各行の各列に触れる横線は最大 1 本という素直な経路が保証されます。

参加者と結果の数が違ってもよいですか?

結果が少ない場合は em-dash で埋め、多すぎる場合は切り捨てますが、はしご構造自体は N == N が必要です — 参加者を「何もなし」にはマップできません。本当に数が違うときは(参加者の方が賞品より多い等)、ルーレットの落選モードを使うか、結果リストにハズレを明示的に入れてください(「pass」「꽝」「ハズレ」など)。

사다리타기・あみだくじはどこから来たのですか?

日本の あみだくじ は仏阿弥陀(Amida)に由来します — 元は中心から放射状に線を引き、阿弥陀仏の光背のような形でした。江戸時代(17〜19 世紀)までに現代の縦線 + 横線の並列レイアウトに進化し、割り勘や当番決めに使われました。韓国の 사다리타기(直訳「はしご登り」)は日本経由で後から伝わり、修学旅行・飲み会・バラエティ番組の定番になりました。共通の原則 — 全員に同じ機会、覗き見禁止、結果ははしごが決める — をこのツールはそのまま実装します。

関連ツール