Der chinesische Restsatz kann in der modularen Arithmetik sehr nützlich sein.
Betrachten Sie beispielsweise die folgenden Kongruenzbeziehungen:
Für Gruppen von Kongruenzrelationen wie diese, in dem alle Basen ( 3, 5, 7in diesem Beispiel) sind Co-prime miteinander, wird es eine sein und nur ein ganze Zahl nzwischen 1und das Produkt der Basen ( 3*5*7 = 105in diesem Beispiel) , Grenzen eingeschlossen , die erfüllen die Beziehungen .
In diesem Beispiel würde die Zahl 14durch diese Formel generiert werden:
wo 2, 4, and 0sind aus dem obigen Beispiel angegeben.
70, 21, 15sind die Koeffizienten der Formel und sie sind abhängig von den Basen , 3, 5, 7.
Um die Koeffizienten der Formel ( 70, 21, 15in unserem Beispiel) für eine Reihe von Basen zu berechnen , verwenden wir das folgende Verfahren.
Für jede Zahl ain einer Reihe von Basen:
- Finden Sie das Produkt aller anderen Basen, bezeichnet als
P. - Finden Sie das erste Vielfache davon
P, das einen Rest ergibt,1wenn durch geteilta. Dies ist der Koeffizient vona.
Um beispielsweise den Koeffizienten zu berechnen, der der Basis entspricht 3, finden wir das Produkt aller anderen Basen (dh 5*7 = 35) und dann das erste Vielfache dieses Produkts, das einen Rest hinterlässt, 1wenn es durch die Basis geteilt wird.
In diesem Fall 35bleibt ein Rest von 2geteilt durch 3, 35*2 = 70bleibt aber ein Rest von 1geteilt durch 3, so 70ist der entsprechende Koeffizient für 3. In ähnlicher Weise 3*7 = 21bleibt ein Rest von 1geteilt durch 5und 3*5 = 15ein Rest von 1geteilt durch 7.
In einer Nussschale
Für jede Zahl ain einer Reihe von Zahlen:
- Finden Sie das Produkt aller anderen Zahlen, bezeichnet als
P. - Finden Sie das erste Vielfache davon
P, das einen Rest ergibt,1wenn durch geteilta. Dies ist der Koeffizient vona.
Die Herausforderung
- Die Herausforderung besteht darin, für einen Satz von zwei oder mehr Basen den Satz entsprechender Koeffizienten zu finden.
- Es ist garantiert, dass der Satz von Basen paarweise ko-primiert, und jede Basis ist garantiert größer als 1.
- Ihre Eingabe ist eine Liste von Ganzzahlen als Eingabe
[3,4,5]oder durch Leerzeichen getrennte Zeichenfolge,"3 4 5"oder wie auch immer Ihre Eingaben funktionieren. - Ihre Ausgabe sollte entweder eine Liste von Ganzzahlen oder eine durch Leerzeichen getrennte Zeichenfolge sein, die den Satz von Koeffizienten angibt.
Testfälle
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]
Vielen Dank an Leaky Nun für seine Hilfe beim Schreiben dieser Herausforderung. Wie immer, wenn das Problem unklar ist, lassen Sie es mich bitte wissen. Viel Glück und gutes Golfen!





