চ্যালেঞ্জ
একই প্রস্থ এবং উচ্চতা, আউটপুট ইমেজ অধীনে রুপান্তরিত সঙ্গে একটি রং রাস্টার ইমেজ * প্রদত্ত আর্নল্ড এর বিড়াল মানচিত্র । (* বিশদ নীচে দেখুন)
সংজ্ঞা
চিত্রটির আকার দেওয়া N
আমরা ধরে নিয়েছি যে পিক্সেলের স্থানাঙ্কগুলি 0
এবং এর মধ্যে সংখ্যা হিসাবে দেওয়া হয় N-1
।
আর্নল্ডের বিড়ালের মানচিত্রটি তখন নিম্নলিখিত হিসাবে সংজ্ঞায়িত করা হয়:
স্থানাঙ্কে একটি পিক্সেল [x,y]
সরানো হয় [(2*x + y) mod N, (x + y) mod N]
।
এটি টরাসের উপর রৈখিক রূপান্তর ছাড়া আর কিছুই নয়: হলুদ, বেগুনি এবং সবুজ অংশটি প্রাথমিক স্কোয়ারের কারণে ফিরে আসে mod N
।
এই মানচিত্রে (আসুন এটি কল করুন f
) নিম্নলিখিত বৈশিষ্ট্য রয়েছে:
এটি বাইজিক , এর অর্থ বিপরীতমুখী: এটি ম্যাট্রিক্সের সাথে লিনিয়ার রূপান্তর
[[2,1],[1,1]]
। যেহেতু এটির নির্ধারক রয়েছে1
এবং এটিতে কেবল পূর্ণসংখ্যার এন্ট্রি রয়েছে, বিপরীতে কেবলমাত্র পূর্ণসংখ্যার এন্ট্রি থাকে এবং এটি দিয়ে দেওয়া হয়[[1,-1],[-1,2]]
, এর অর্থ এটি এটি পূর্ণসংখ্যার স্থানাঙ্কগুলিতে দ্বিপাক্ষিকও হয়।এটি চিত্রগুলির বাইজিক মানচিত্রের গোষ্ঠীর একটি টর্সিং উপাদান, এর
N x N
অর্থ আপনি যদি এটি যথেষ্ট পরিমাণে প্রয়োগ করেন তবে আপনি আসল চিত্রটি ফিরে পাবেন:f(f(...f(x)...)) = x
মানচিত্রটি নিজের পরিচয়টিতে যতবার প্রয়োগ হয়েছে তার পরিমাণের পরিমাণ কম হওয়ার নিশ্চয়তা দেওয়া হচ্ছে বা এর সমান3*N
। নীচে আপনি আর্নল্ডের বিড়ালের মানচিত্রে প্রদত্ত সংখ্যক পুনরাবৃত্ত প্রয়োগগুলির পরে একটি বিড়ালের চিত্র এবং পুনরাবৃত্ত অ্যাপ্লিকেশনটির মতো দেখতে একটি অ্যানিমেশন দেখতে পাবেন:
বিস্তারিত
আপনার প্রোগ্রামটি অগত্যা চিত্রগুলির সাথে ডিল করতে হবে না, তবে 2D-অ্যারে / ম্যাট্রিকেস, স্ট্রিং বা অনুরূপ 2D-কাঠামো গ্রহণযোগ্য।
আপনার
(0,0)
পয়েন্টটি নীচে বাম দিকে বা উপরে বাম দিকে আছে কিনা তা বিবেচ্য নয় । (বা অন্য কোনও কোণে, যদি এটি আপনার ভাষায় আরও সুবিধাজনক হয়)) দয়া করে আপনার জমা দেওয়ার ক্ষেত্রে আপনি কোন কনভেনশন ব্যবহার করেন তা নির্দিষ্ট করুন।
Testcases
ম্যাট্রিক্স আকারে ( [1,2,3,4]
শীর্ষ সারিতে রয়েছে, 1
সূচক রয়েছে (0,0)
, 2
সূচক রয়েছে (1,0)
, 5
সূচক রয়েছে (0,1)
)
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
maps to:
1 14 11 8
12 5 2 15
3 16 9 6
10 7 4 13
--------------------
1 2 3
4 5 6
7 8 9
map to:
1 8 6
9 4 2
5 3 7
চিত্র হিসাবে (নীচে বাম হয় (0,0)
):