अवलोकन
एक प्रोग्राम लिखें जिसमें फ्रैक्टल को थोड़ा सा पैटर्न देते हुए साधारण फ्रैक्टल पैटर्न को प्रिंट किया जाता है, साथ ही फ्रैक्टल और पीढ़ियों की संख्या के प्रति-पीढ़ी स्केल कारक।
व्याख्या
यहाँ Sierpinski कालीन का ASCII प्रतिनिधित्व है :
जनरेशन 0:
#
जनरेशन 1:
# # #
# #
# # #
जनरेशन 2:
# # # # # # # # #
# # # # # #
# # # # # # # # #
# # # # # #
# # # #
# # # # # #
# # # # # # # # #
# # # # # #
# # # # # # # # #
ASCII Sierpinski कालीन का जनरेशन n + 1 एक 3x3 ग्रिड से बना है जिसमें ग्रिड की केंद्रीय तत्व गायब होने के साथ, पीढ़ी n की 8 प्रतियां हैं।
इसलिए, क्योंकि यह एक 3x3 ग्रिड का उपयोग करके परिभाषित किया गया है और प्रत्येक पीढ़ी में 3 गुना बड़ा और ऊंचाई प्राप्त करता है, हम कह सकते हैं कि इसमें 3 का स्केल कारक है।
हम Sierpinski कालीन के लिए 0 से 8, ऊपर से नीचे, बाएँ-से-दाएँ, और पीढ़ी n + 1 समाहित होने पर एक पूर्णांक के संबंधित बिट सेट करने के लिए 3x3 ग्रिड में तत्वों की संख्या के द्वारा एक बिट पैटर्न को परिभाषित कर सकते हैं। उस ग्रिड स्थिति में पीढ़ी n की प्रतिलिपि:
bit: place value: bit pattern: bit value:
0 1 2 1 2 4 1 1 1 1 2 4
3 4 5 8 16 32 1 0 1 8 0 32
6 7 8 64 128 256 1 1 1 64 128 256
integer value = 1 + 2 + 4 + 8 + 32 + 64 + 128 + 256 = 495
2 के स्केल फैक्टर के लिए, बिट पैटर्न को इस तरह व्यवस्थित किया जाएगा:
0 1
2 3
और इसी तरह।
आपका कार्य एक प्रोग्राम लिखना है जो इस रूप में थोड़ा पैटर्न स्वीकार करता है, एक स्केल फैक्टर (उदाहरण के लिए Sierpinski कारपेट के लिए 3) और एक पीढ़ी संख्या और एक ASCII भग्न को आउटपुट करता है।
इनपुट
आपके कार्यक्रम को निम्नलिखित क्रम में 3 पूर्णांक स्वीकार करना चाहिए: एक बिट पैटर्न, एक स्केल फैक्टर (2 से 5 तक, समावेशी) और एक पीढ़ी गणना (0 से 5 तक, समावेशी)।
आपको इन मूल्यों पर कोई इनपुट सत्यापन करने की आवश्यकता नहीं है और यह पूरी तरह से ठीक है यदि प्रोग्राम निर्दिष्ट सीमाओं से अधिक मान के लिए काम करता है।
आदानों को किसी भी रूप में पारित किया जा सकता है (ट्यूपल्स, अल्पविराम / अंतरिक्ष-अलग सूची, आदि)
उत्पादन
प्रोग्राम को एक फ्रैक्टल से बने #
चरित्र का उत्पादन करना चाहिए, जिसके बाद उन स्थानों में एक स्थान होता है जहां फ्रैक्टल को परिभाषित किया जाता है, डबल-स्पेस जहां यह नहीं है, और प्रत्येक पंक्ति के अंत में एक नई लाइन वर्ण, या तो उन्हें प्रिंट करना या एक स्ट्रिंग वापस करना। एक समारोह से।
उदाहरण
इनपुट:
495,3,3
आउटपुट (Sierpinski कालीन पीढ़ी 3):
# # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # #
# # # # # # # # # # # #
# # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # #
# # # # # # # # # # # #
# # # # # # # # # # # # # # # # # #
# # # # # # # # # # # #
# # # # # # # #
# # # # # # # # # # # #
# # # # # # # # # # # # # # # # # #
# # # # # # # # # # # #
# # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # #
# # # # # # # # # # # #
# # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # # # # # # # # # # #
इनपुट:
7,2,5
आउटपुट ( Sierpinski त्रिकोण ):
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # #
# # # # # # # #
# # # # # # # # # # # # # # # #
# # # # # # # #
# # # # # # # #
# # # #
# # # # # # # # # # # # # # # #
# # # # # # # #
# # # # # # # #
# # # #
# # # # # # # #
# # # #
# # # #
# #
# # # # # # # # # # # # # # # #
# # # # # # # #
# # # # # # # #
# # # #
# # # # # # # #
# # # #
# # # #
# #
# # # # # # # #
# # # #
# # # #
# #
# # # #
# #
# #
#
इनपुट:
325,3,3
आउटपुट ( कैंटर डस्ट ):
# # # # # # # #
# # # # # # # #
# # # # # # # #
# # # # # # # #
# # # # # # # #
# # # # # # # #
# # # # # # # #
# # # # # # # #
इनपुट
186,3,3
आउटपुट ( विसेक फ्रैक्टल ):
#
# # #
#
# # #
# # # # # # # # #
# # #
#
# # #
#
# # #
# # # # # # # # #
# # #
# # # # # # # # #
# # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # # # # # # #
# # #
# # # # # # # # #
# # #
#
# # #
#
# # #
# # # # # # # # #
# # #
#
# # #
#
इनपुट:
279,3,3
आउटपुट (एक विषम भग्न का उदाहरण):
# # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # # # # # # #
# # # # # # # # #
# # # # # # # # #
# # #
# # #
# # # # # # # # #
# # #
# # #
# # # # # # # # #
# # #
# # #
# # #
#
#
# # #
#
#
# # # # # # # # #
# # #
# # #
# # #
#
#
# # #
#
#
आदि।
टिप्पणियाँ:
- यह कोड-गोल्फ है इसलिए बाइट्स जीत में सबसे छोटा जवाब है
- आपका कार्यक्रम या तो एक स्टैंड-अलोन या एक फ़ंक्शन हो सकता है जिसे 3 इनपुट मापदंडों और रिटर्न (या प्रिंट) के साथ एक स्ट्रिंग कहा जाता है
- जनरेशन 0 को 0 के एक बिट पैटर्न के लिए भी
#
(एक#
स्थान के बाद) के रूप में परिभाषित किया गया है। - अंतिम पंक्ति पर एक अनुगामी न्यूलाइन वैकल्पिक है, लेकिन अनुमत है, जैसा कि प्रत्येक पंक्ति पर श्वेत-स्थान के अनुगामी की कोई भी राशि है।
279,3,3
?
"##"
गया"# "
। मुझे लगता है कि पंक्ति के अंत में एक अनुगामी स्थान आपके उदाहरणों में शामिल है, क्या इसकी आवश्यकता है? । अंतिम नियम के अनुसार, मैं इसे वैकल्पिक मानूंगा, लेकिन यह तथ्य कि आपको पीढ़ी 0 के लिए एक अनुगामी स्थान की आवश्यकता है, मुझे आश्चर्यचकित करता है। इसके अलावा, मुझे लगता है कि आपको अधिकतम व्हाट्सएप और नईलाइन्स (आपको यह बहुवचन है) की अनुमति देनी चाहिए। एक चरम उदाहरण के रूप में मैं हमेशा 5 ^ 6 = 15625 लाइनों के 2 * 5 ^ 6 स्थानों की एक सरणी के साथ शुरू कर सकता हूं फिर एस को स्थानापन्न कर सकता हूं#
। अधिकांश इनपुट मामलों में अप्रयुक्त व्हाट्सएप की एक बड़ी मात्रा है