चुनौती
एक रंग रेखापुंज छवि को देखते हुए * समान चौड़ाई और ऊंचाई के साथ, आउटपुट छवि को अर्नोल्ड के बिल्ली के नक्शे के तहत बदल दिया गया । (* विवरण नीचे देखें)
परिभाषा
छवि के आकार को देखते हुए 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)
बात नीचे बाईं तरफ है या ऊपर बाईं तरफ। (या किसी अन्य कोने में, यदि यह आपकी भाषा में अधिक सुविधाजनक है।) कृपया निर्दिष्ट करें कि आप अपने प्रस्तुतिकरण में किस सम्मेलन का उपयोग करते हैं।
परीक्षण के मामलों
मैट्रिक्स रूप में ( [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)
):