中国剰余定理は、剰余演算に威力を発揮することができます。
たとえば、次の一連の合同関係について考えてみます。
このような合同関係のセットの場合、すべての基数(3, 5, 7この例では)は互いに素であり、とのn間に1(3*5*7 = 105この例では)基数の積の間に唯一の整数があり、関係を満たします。 。
この例では、数値はであり14、次の式で生成されます。
ここで、2, 4, and 0上記の例で示されています。
70, 21, 15は式の係数であり、基底に依存し3, 5, 7ます。
70, 21, 15一連の基底の式の係数(この例では)を計算するには、次の手順を使用します。
a一連の基数の各数値について:
- として示される他のすべての基底の積を求めます
P。 - で割ったときに
P余りが残る最初の倍数を見つけます。これはの係数です。1aa
たとえば、base 3に対応する係数を計算するには、他のすべてのbase の積(つまり5*7 = 35)を求め、次に1baseで割ったときに余りを残すその積の最初の倍数を求めます。
この場合には、35の残りの葉2で割ったとき3、しかし35*2 = 70、葉の残りの部分1で割ったときの3ように、70に対応する係数です3。同様3*7 = 21の残りの葉1で割ったとき5と3*5 = 15の残りの葉1で割ったときに7。
一言で言えば
a一連の数値の各数値について:
- 他のすべての数値の積を求めます
P。 - で割ったときに
P余りが残る最初の倍数を見つけます。これはの係数です。1aa
チャレンジ
- 課題は、2つ以上のベースのセットの場合、対応する係数のセットを見つけることです。
- 塩基のセットはペアワイズ素数であることが保証されており、各塩基は1よりも大きいことが保証されています。
- 入力は、入力
[3,4,5]またはスペースで区切られた文字列としての整数のリストですが、入力は"3 4 5"機能します。 - 出力は、整数のリストか、係数のセットを示すスペースで区切られた文字列のいずれかである必要があります。
テストケース
input output
[3,5,7] [70,21,15]
[2,3,5] [15,10,6]
[3,4,5] [40,45,36]
[3,4] [4,9]
[2,3,5,7] [105,70,126,120]
[40,27,11] [9801,7480,6480]
[100,27,31] [61101,49600,56700]
[16,27,25,49,11] [363825,2371600,2794176,5583600,529200]
Leaky Nunがこの課題の執筆に協力してくれたことに感謝します。いつものように、問題が不明な場合はお知らせください。幸運と良いゴルフを!





