バックグラウンド
用語を拡張およびキャンセルすることにより、次のアイデンティティを簡単に示すことができます。
ただし、すべての1 / n×1 /(n + 1)の四角形が単位正方形をタイリングできるかどうかは、未解決の問題です。
タスク
プログラムは、任意の便利な方法で正の整数Nを入力として受け取り、1からNまでのすべての1 / n x 1 /(n + 1)の開いた長方形を1からNまでの単位正方形にパックします。 。
長方形ごとに、次の整数を順番に生成する必要があります。
- 水平エッジが垂直エッジよりも長い場合は1、それ以外の場合は0
- 左下隅のx座標の分子と分母
- 左下隅のy座標の分子と分母
単位の正方形をとし(0, 1) x (0, 1)
、x値は左から右に、y値は下から上にあることに注意してください。
最終的に予期される出力は、任意の便利な形式(たとえば、stdoutに出力されるか、関数から返されるリストとして)で、各長方形のこれらの整数をnの昇順で連結したものです。
入力と出力の例
入力:
3
出力:
0 0 1 0 1 1 1 2 0 1 1 1 2 1 3
これは次のように解析されます。
0 (0/1, 0/1) 1 (1/2, 0/1) 1 (1/2, 1/3)
得点
これはコードゴルフの挑戦なので、バイト数が最も少ない答えが勝ちます。ただし、アルゴリズムもかなり効率的でなければなりません。N<=100
合計で約10分で実行できるはずです。
ソリューションは、すべてに対して有効なソリューションを提供する必要N<=100
がありますが、最短でなくても、証明可能な完全なアルゴリズムも歓迎します。