कोड + डेटा quines
एक क्वीन के लिए सबसे सामान्य संरचना कुछ इस तरह दिखती है:
डेटा = " पूरे कार्यक्रम का एक बचा हुआ संस्करण,
इस स्ट्रिंग के साथ एक मार्कर के साथ बदल दिया "
कार्यक्रम = data.replace (
एक अभिव्यक्ति जो मार्कर का मूल्यांकन करती है लेकिन उसका उल्लेख नहीं करती है ,
बच गए (डेटा))
प्रिंट कार्यक्रम;
इस संरचना का उपयोग अधिकांश भाषाओं में (काफी भोली) रानी लिखने के लिए किया जा सकता है। हालांकि, यह स्कोरिंग सिस्टम पर काफी खराब स्कोर करता है, क्योंकि आपको प्रोग्राम की संपूर्णता को दो बार लिखना होगा। हालांकि, अधिकांश क्वीन संरचनाओं को इस एक का अनुकूलन माना जा सकता है।
इसके लिए कुछ सूक्ष्मताएँ हैं। कुछ भाषाओं में, इस ऑपरेशन को करने का सबसे कठिन हिस्सा बचने वाले कोड को लिखना है; कई भाषाओं में, इसके नाम का उल्लेख किए बिना मार्कर का उत्पादन करना मुश्किल है; और कुछ गूढ़ भाषाओं में, आपको अपने स्वयं के स्ट्रिंग स्ट्रिंग का आविष्कार करना होगा। हालांकि सभी तीन ऑपरेशन बहुत अधिक परेशानी का कारण नहीं हैं।
उदाहरण के लिए, हम एक पायथन क्वीन को स्ट्रिंग से बचने के लिए लिख सकते हैं repr
, और 2-चरित्र-अनुक्रम x"
स्ट्रिंग का उपयोग करके (जो कि के रूप में प्रतिनिधित्व करने योग्य है "x\""
, अर्थात x"
स्ट्रिंग के स्ट्रिंग प्रतिनिधित्व में अनुक्रम का उपयोग नहीं करना ): मार्कर के रूप में
d='d=x"\nprint(str.replace(d,"x\\"",repr(d)))'
print(str.replace(d,"x\"",repr(d)))