綱渡り
概要
重みのセットを表す3つの1桁の正の整数の入力が与えられた場合、レバーの効果を考慮して、中央のピボットの周りでバランスが取れるように、重みが配置されたシーソーのASCII表現を出力します。
各数値には、その値に等しい重みがあります。各数値のトルクは、重量にその中心からの距離を文字で乗算したものです。シーソーのバランスを保つために、シーソーの左側のウェイトの合計トルクは、このように右側のウェイトの合計トルクと等しくなければなりません。
入力
1〜9の範囲の3つの整数。ただし、タプル、3つのコンマ区切り値など、整数を入力するのは便利です。ただし、プログラムは任意の順序で数値入力を処理できる必要があります(つまり、値がソートされることを前提としない)。重複する番号を入力できます(2,3,2など)。
入力は常に数学的に有効な出力を許可します。そうでない場合、入力は無効です。
出力
出力は、シーソーの2行のASCII表現で、重みが設定されている必要があります。最初の行には数字があり、シーソー上でバランスを取るために間隔が空いています。
距離はトルクのゼロになる、スケールの真ん中に数字を配置することはできません。ピボットの左または右を含む1〜10文字の中心範囲からの有効な距離。
数字で占められていないスペースには、18個の下線文字があります(中央のアンダースコアと各辺に10個あり、数字で占められている3つの位置を差し引いています)。最後の行には、ピボットを表すスケールの中心に揃えられた単一のキャレット文字があります。
例
入力:
4,7,2
出力:
________7___42_______
^
7 * 2 = 4 * 2 + 2 * 3
数値はどちらの側にも出力できます。たとえば、これも有効です。
_______24___7________
^
2 * 3 + 4 * 2 = 7 * 2
数字は、バランスが取れている限りはかりのどこにでも配置できます。例:
入力:
3,1,5
出力:
_____5________1__3___
^
5 * 5 = 1 * 4 + 3 * 7
または
____5________1_____3_
^
5 * 6 = 1 * 3 + 3 * 9
または
____5___________1_3__
^
5 * 6 = 1 * 6 + 3 * 8
等
プログラムは、有効な出力の1つを出力するだけです。入力が無効な場合、エラーを出力する必要はありません。
ノート
- これはコードゴルフなので、バイト単位の最短プログラムが勝ちます
- プログラムは、数値を入力として受け入れ、文字列を返すスタンドアロンまたは関数です。
- 最後の行の末尾の改行と空白はオプションです
- シーソーが何かわからない場合は、シーソーまたはシーソーとも呼ばれます。