Correlati, ma ciò richiede solo numeri interi positivi e non deve essere commutativo
La funzione di abbinamento Cantor è descritta in questo articolo di Wikipedia . In sostanza, si tratta di un'operazione tale che quando viene applicato a due valori X e Y, si possono ottenere i valori originali X e Y in base al risultato.
Il tuo compito è progettare due funzioni: una che esegue X, Y -> Z
e l'altra che esegue Z -> X, Y
. Ecco il trucco: X, Y -> Z
deve essere commutativo. Ciò significa che Z -> X, Y
non sarà in grado di determinare se l'input era X, Y
o Y, X
.
La definizione formale di questa sfida sarebbe:
Scegli un insieme infinito numerabile S di numeri.
Progettare due funzioni che svolgono le seguenti attività:
- Data una coppia non ordinata di valori in S, restituisce un valore in S
- Dato un valore di ritorno dalla funzione iniziale, restituisce la coppia di valori non ordinata che restituisce il numero intero di input quando passa attraverso la prima funzione. Non mi interessa il comportamento di questa funzione inversa se l'input non è un valore restituito dalla prima funzione.
Requisiti
- Il risultato dovrebbe essere identico tra le esecuzioni.
{a, a}
è una coppia non ordinata
Nota: è più probabile che la tua risposta ottenga un mio voto se fornisci una prova, ma testerò le risposte quando la raggiungerò e la voterò una volta che sono abbastanza sicuro che funzioni.
1,2
è una delle coppie, 1,3
può anche essere una potenziale coppia (entrambi usano 1
)?
f
e il suo g
sorted((x, y))
sorted(g(f(x, y)))