Scusa se il titolo è confuso, ma ecco un esempio per illustrare ciò che sto cercando di realizzare.
Vorrei creare un "checksum" o un raggruppamento di ID di sequenze di numeri simili, in modo che quando si confronta una sequenza con un'altra, si possa vedere se sono simili o meno. Le sequenze "simili" qui sono sequenze che vengono spostate a destra o a sinistra, ma mantengono il loro schema. Questa è una sequenza simile:
[ 1, 4, 5, 6 ]
[ 4, 5, 6, 1 ]
[ 5, 6, 1, 4 ]
[ 6, 1, 4, 5 ]
Come puoi vedere in ogni serie di numeri, la sequenza viene spostata a sinistra. Quindi in questo esempio:
sumof([ 1, 4, 5, 6 ]) == sumof([ 4, 5, 6, 1 ]);
Ma
sumof([ 1, 4, 4, 6 ]) != sumof([ 4, 5, 6, 1 ]);
Un altro modo per dirlo è:
$checksum == sumof([ 1, 4, 5, 6 ]) == sumof([ 4, 5, 6, 1 ]) == sumof([ 5, 6, 1, 4 ]) == sumof([ 6, 1, 4, 5 ])
Vorrei che la funzione sumof () crei un valore alfanumerico della somma / somma di controllo della sequenza (preferibilmente un numero intero, ma può contenere anche caratteri). Come gli hash, voglio che questo valore sia abbastanza robusto da prevenire qualsiasi collisione con sequenze non corrispondenti.
Spero di averlo descritto abbastanza bene. Se hai bisogno di chiarimenti, chiedi nei commenti.