Banach – Tarski บุคคลที่ผิดธรรมดากล่าวว่าได้รับลูกบอลในพื้นที่ 3 มิติคุณสามารถย่อยสลายลูกบอลเป็นจำนวนจุดย่อยที่แน่นอน ชุดจุดที่แยกออกจากกันเหล่านี้สามารถประกอบขึ้นใหม่เพื่อผลิตลูกบอลเริ่มต้นสองชุด ในทางทฤษฎีแล้วคุณมีลูกบอลสองลูกที่เหมือนกัน
กระบวนการประกอบใหม่ประกอบด้วยการเคลื่อนย้ายเซ็ตย่อยของจุดดังกล่าวและหมุนมันในขณะที่ไม่เปลี่ยนรูปร่างพิเศษ ซึ่งสามารถทำได้ด้วยชุดย่อยที่แยกออกเพียงห้าชุด
ชุดที่แยกจากกันไม่มีองค์ประกอบทั่วไปตามคำนิยาม ที่ใดA
และB
เป็นสองจุดย่อยของลูกบอลเริ่มต้นองค์ประกอบทั่วไประหว่างA
และB
เป็นชุดที่ว่างเปล่า นี่แสดงในสมการต่อไปนี้
สำหรับชุดที่แยกออกจากกันด้านล่างสมาชิกทั่วไปจะสร้างชุดว่าง
ความท้าทาย
เขียนโปรแกรมที่สามารถรับ ASCII "บอล" และส่งออก "บอล" ซ้ำ
อินพุต
นี่คือตัวอย่างอินพุตบอล:
##########
###@%$*.&.%%!###
##!$,%&?,?*?.*@!##
##&**!,$%$@@?@*@&&##
#@&$?@!%$*%,.?@?.@&@,#
#,..,.$&*?!$$@%%,**&&#
##.!?@*.%?!*&$!%&?##
##!&?$?&.!,?!&!%##
###,@$*&@*,%*###
##########
แต่ละทรงกลมที่ระบุไว้โดยสัญญาณปอนด์ ( #
) และเต็มไปด้วยตัวอักษรใด ๆ .,?*&$@!%
วิทยานิพนธ์: ทุกอินพุตจะเป็นอักขระ 22x10 (ความกว้างความสูง)
การสร้างซ้ำ
.,?*&$@!%
ครั้งแรกจุดภายในลูกแต่ละคนจะได้รับจุดเลขบนพื้นฐานของดัชนีใน นี่คือตัวอย่างข้างต้นเมื่อได้หมายเลขแล้ว:
##########
###7964151998###
##86295323431478##
##5448269677374755##
#75637896492137317572#
#21121654386679924455#
##1837419384568953##
##85363518238589##
###2764574294###
##########
จากนั้นแต่ละจุดจะเลื่อนขึ้นหนึ่ง (เก้าไปเป็นหนึ่ง):
##########
###8175262119###
##97316434542589##
##6559371788485866##
#86748917513248428683#
#32232765497781135566#
##2948521495679164##
##96474629349691##
###3875685315###
##########
ในที่สุดค่าจุดใหม่แต่ละค่าจะถูกแปลงกลับไปเป็นอักขระที่เกี่ยวข้อง:
##########
###!.@&,$,..%###
##%@?.$*?*&*,&!%##
##$&&%?@.@!!*!&!$$##
#!$@*!%.@&.?,*!*,!$!?#
#?,,?,@$&*%@@!..?&&$$#
##,%*!&,.*%&$@%.$*##
##%$*@*$,%?*%$%.##
###?!@&$!&?.&###
##########
เอาท์พุต
ลูกบอลสองลูกนี้จะถูกเอาท์พุทแบบเคียงข้างกันในรูปแบบนี้ (คั่นด้วยช่องว่างสี่จุดที่เส้นศูนย์สูตร):
########## ##########
###@%$*.&.%%!### ###!.@&,$,..%###
##!$,%&?,?*?.*@!## ##%@?.$*?*&*,&!%##
##&**!,$%$@@?@*@&&## ##$&&%?@.@!!*!&!$$##
#@&$?@!%$*%,.?@?.@&@,# #!$@*!%.@&.?,*!*,!$!?#
#,..,.$&*?!$$@%%,**&&# #?,,?,@$&*%@@!..?&&$$#
##.!?@*.%?!*&$!%&?## ##,%*!&,.*%&$@%.$*##
##!&?$?&.!,?!&!%## ##%$*@*$,%?*%$%.##
###,@$*&@*,%*### ###?!@&$!&?.&###
########## ##########
หมายเหตุ: การเลื่อนค่าจุดและอักขระในภายหลังเป็นสัญลักษณ์ของการหมุนที่ดำเนินการเพื่อประกอบชุดย่อยของจุดอีกครั้ง (การจัดกลุ่มอักขระ)