複数手順分担コード
3人がそれぞれ前処理・本処理・逆処理を担当し合致を目指す協力プログラミング
入力 x
→
前処理 P1
→
本処理 P2
→
逆処理 P3
P1: 前処理 (forward)
P2: 本処理 (core)
P3: 逆処理 (inverse)
あなたは 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 設計に通底する考え方。