← カタログへ戻る #177

複数手順分担コード

3人がそれぞれ前処理・本処理・逆処理を担当し合致を目指す協力プログラミング

クリア数 0 / 試行 0 ベストタイム -- 経過 0:00
入力 x 前処理 P1 本処理 P2 逆処理 P3
P1: 前処理 (forward) 入力 x → t を作る
P2: 本処理 (core) t → u を加工
P3: 逆処理 (inverse) u → y で前処理を打消
あなたは P1 前処理。 入力 x を受け取り、変数 t へ代入する式を書く。
あなたは P2 本処理。 受け取った t から u を計算する。
あなたは P3 逆処理u から最終出力 y を作り、P1 の前処理を打ち消す(可逆性)。

操作

3人協力で 1 つのプログラムを書きます。 各人の担当タブだけ編集可能。「→次のプレイヤーへ渡す」 ボタンで端末を回し、3人の式を結合してテスト実行。

使える演算: + - * / %, 関数 abs, min, max, sqrt, pow, floor, sign。 1 行 1 代入の縛りつき。

勝利条件: 全テストケース通過でクリア。 P1 と P3 の式が「打ち消し合い」になる可逆プログラムとして成立すれば最高評価。

Y Lab tieup: 可逆プログラムの 3 分割 (forward / core / inverse) は、論文 Yokoyama et al. の Janus 設計に通底する考え方。