Il paradosso di Banach-Tarski afferma che, data una palla nello spazio tridimensionale, è possibile scomporre la palla in un numero finito di sottoinsiemi di punti. Questi insiemi di punti disgiunti possono quindi essere riassemblati per produrre due copie della palla iniziale. Quindi, teoricamente, avresti due palle identiche.
Il processo di riassemblaggio consiste solo nello spostare i sottogruppi di punti sopra menzionati e nel ruotarli, senza cambiare la loro forma spaziale. Questo può essere fatto con un massimo di cinque sottoinsiemi disgiunti.
Gli insiemi disgiunti non hanno elementi comuni per definizione. Dove Ae Bsono due sottoinsiemi di due punti della palla iniziale, gli elementi comuni tra Aed Bè un insieme vuoto. Questo è mostrato nella seguente equazione.

Per i set disgiunti di seguito, i membri comuni formano un set vuoto.

La sfida
Scrivi un programma che può prendere una "palla" di input ASCII e produrre una "palla" duplicata.
Ingresso
Ecco un esempio di input ball:
##########
###@%$*.&.%%!###
##!$,%&?,?*?.*@!##
##&**!,$%$@@?@*@&&##
#@&$?@!%$*%,.?@?.@&@,#
#,..,.$&*?!$$@%%,**&&#
##.!?@*.%?!*&$!%&?##
##!&?$?&.!,?!&!%##
###,@$*&@*,%*###
##########
Ogni sfera è delineato da segni di cancelletto ( #) e riempito con una delle tesi caratteri: .,?*&$@!%. Ogni input avrà 22x10 caratteri (larghezza per altezza).
Creazione di un duplicato
Innanzitutto, a ciascun punto all'interno della palla viene assegnato un punto numerato basato sul suo indice in .,?*&$@!%. Ecco l'esempio sopra, una volta numerato:
##########
###7964151998###
##86295323431478##
##5448269677374755##
#75637896492137317572#
#21121654386679924455#
##1837419384568953##
##85363518238589##
###2764574294###
##########
Quindi, ogni punto viene spostato in alto di uno (nove vanno a uno):
##########
###8175262119###
##97316434542589##
##6559371788485866##
#86748917513248428683#
#32232765497781135566#
##2948521495679164##
##96474629349691##
###3875685315###
##########
Infine, ogni nuovo valore in punti viene riconvertito nel carattere corrispondente:
##########
###!.@&,$,..%###
##%@?.$*?*&*,&!%##
##$&&%?@.@!!*!&!$$##
#!$@*!%.@&.?,*!*,!$!?#
#?,,?,@$&*%@@!..?&&$$#
##,%*!&,.*%&$@%.$*##
##%$*@*$,%?*%$%.##
###?!@&$!&?.&###
##########
Produzione
Queste due sfere vengono quindi emesse fianco a fianco, in questa forma (separate da quattro spazi agli equatori):
########## ##########
###@%$*.&.%%!### ###!.@&,$,..%###
##!$,%&?,?*?.*@!## ##%@?.$*?*&*,&!%##
##&**!,$%$@@?@*@&&## ##$&&%?@.@!!*!&!$$##
#@&$?@!%$*%,.?@?.@&@,# #!$@*!%.@&.?,*!*,!$!?#
#,..,.$&*?!$$@%%,**&&# #?,,?,@$&*%@@!..?&&$$#
##.!?@*.%?!*&$!%&?## ##,%*!&,.*%&$@%.$*##
##!&?$?&.!,?!&!%## ##%$*@*$,%?*%$%.##
###,@$*&@*,%*### ###?!@&$!&?.&###
########## ##########
Nota: lo spostamento dei valori dei punti e dei caratteri successivi è simbolico delle rotazioni eseguite per riassemblare i sottoinsiemi di punti (raggruppamenti di caratteri).