Closed Apricot-S closed 3 weeks ago
v2.0.0 でのアルゴリズム変更により修正された。
cargo test --package xiangting --lib -- standard::calculate::tests::calculate_replacement_number_waiting_for_the_5th_tile_13 --exact --show-output
Compiling xiangting v2.0.0 (/workspaces/xiangting)
Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 07s
Running unittests src/lib.rs (target/debug/deps/xiangting-6e0ccd763b88be1d)
running 1 test
test standard::calculate::tests::calculate_replacement_number_waiting_for_the_5th_tile_13 ... ok
successes:
successes:
standard::calculate::tests::calculate_replacement_number_waiting_for_the_5th_tile_13
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 108 filtered out; finished in 0.01s
概要
順子候補の待ちと対子変化の牌をすべて副露牌で使い切っているとき、置換数を誤計算する 例: 12m11z 3333m 111m 222m
calculate_replacement_number
の戻り値: 2 実際の置換数: 3詳細
上記の手牌の置換数を部分置換数で計算した場合
副露で 3 面子確定しているので和了形に必要な残りブロック数は 1 面子 1 雀頭
萬子の部分置換数は
字牌の部分置換数は
よって、1 面子 1 雀頭になる手牌全体の置換数は 3 となる
再現コード
出力