Inspiriert (mit der gestohlenen Erklärung) davon
Hintergrund
Angenommen, Sie haben zwei Listen A = [a_1, a_2, ..., a_n]
und B = [b_1, b_2, ..., b_n]
ganze Zahlen. Wir sagen, es A
ist potentiell teilbar durch, B
wenn es eine Permutation gibt B
, die es für alle a_i
teilbar macht . Das Problem ist dann: Ist es möglich, neu zu ordnen (dh zu permutieren), so dass es für alle teilbar ist ? Zum Beispiel, wenn Sie habenb_i
i
B
a_i
b_i
i
A = [6, 12, 8]
B = [3, 4, 6]
Dann wäre die Antwort True
, wie B
neu geordnet werden kann zu sein , B = [3, 6, 4]
und dann würden wir das haben a_1 / b_1 = 2
, a_2 / b_2 = 2
und a_3 / b_3 = 2
, von denen alle ganze Zahlen sind, so A
ist potentiell teilbar durch B
.
Als ein Beispiel, das ausgegeben werden sollte False
, könnten wir haben:
A = [10, 12, 6, 5, 21, 25]
B = [2, 7, 5, 3, 12, 3]
Der Grund dafür ist, False
dass wir die Reihenfolge nicht ändern können, B
da 25 und 5 eingegeben A
wurden, der einzige Teiler B
jedoch 5 wäre, sodass einer weggelassen würde.
Deine Aufgabe
Ihre Aufgabe ist es natürlich, festzustellen, ob zwei Listen (als Eingabe angegeben) möglicherweise teilbar sind. Sie können Eingaben auf jede akzeptierte Art und Weise vornehmen, wie dies auch bei Ausgaben der Fall ist.
Duplikate in den Listen sind möglich, und die einzigen Größenbeschränkungen für die Ganzzahlen sind Ihre Sprache. Alle Ganzzahlen in beiden Listen sind größer als 0 und beide Listen sind gleich groß.
Wie bei allen Entscheidungsproblemen müssen die Ausgabewerte 2 verschiedene Werte sein, die wahr und falsch darstellen.
Dies ist ein Code-Golf, also gewinnt der kürzeste Code!
Testfälle
Input, input => output
[6, 12, 8], [3, 4, 6] => True
[10, 5, 7], [1, 5, 100] => False
[14, 10053, 6, 9] [1,1,1,1] => True
[12] [7] => False
[0, 6, 19, 1, 3] [2, 3, 4, 5, 6] => undefined