Ispirato (con la spiegazione rubata da) questo
sfondo
Supponi di avere due elenchi A = [a_1, a_2, ..., a_n]e B = [b_1, b_2, ..., b_n]di numeri interi. Diciamo che Aè potenzialmente divisibile per Bse esiste una permutazione Bche rende a_idivisibile b_iper tutti i. Il problema è quindi: è possibile riordinare (cioè permutare) in Bmodo che a_isia divisibile b_iper tutti i? Ad esempio, se hai
A = [6, 12, 8]
B = [3, 4, 6]
Poi la risposta sarebbe True, come Beventuale ricambio di essere B = [3, 6, 4]e allora avremmo che a_1 / b_1 = 2, a_2 / b_2 = 2e a_3 / b_3 = 2, che sono tutti numeri interi, quindi Aè potenzialmente-divisibile per B.
Come esempio che dovrebbe essere prodotto False, potremmo avere:
A = [10, 12, 6, 5, 21, 25]
B = [2, 7, 5, 3, 12, 3]
Il motivo Falseè che non possiamo riordinare Bdato che sono presenti 25 e 5 A, ma l'unico divisore in Bsarebbe 5, quindi uno verrebbe lasciato fuori.
Il tuo compito
Il tuo compito è, ovviamente, determinare se due liste (fornite come input) sono potenzialmente divisibili. È possibile accettare input in qualsiasi modo accettato, come per l'output.
I duplicati negli elenchi sono una possibilità e le uniche restrizioni di dimensione sugli interi sono la tua lingua. Tutti i numeri interi in entrambi gli elenchi saranno maggiori di 0 ed entrambi gli elenchi avranno le stesse dimensioni.
Come per tutti i problemi di decisione, i valori di output devono essere 2 valori distinti che rappresentano vero e falso.
Questo è un code-golf quindi vince il codice più corto!
Casi test
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