सादा अंग्रेजी में एक Quine लिखें


41

एक क्वीन लिखें जिसमें सिंगल स्पेस द्वारा अलग किए गए वास्तविक अंग्रेजी शब्द हों। एक "शब्द" को एक स्ट्रिंग के रूप में परिभाषित किया जाता है जिसमें केवल लोअरकेस और अपरकेस अक्षर होते हैं ( /[a-zA-Z]+/रेगेक्स में)। "वास्तविक" होने के लिए आपके शब्द को आधिकारिक स्क्रैबल शब्दकोश से पहचाना जाना चाहिए ।

मैं स्क्रैबल शब्दकोश का उपयोग कर रहा हूं क्योंकि यह जो है उस पर एक निश्चित उत्तर देता है और मान्य नहीं है। एक सामान्य शब्दकोश के साथ बहुत सारे ग्रे क्षेत्र हैं। ध्यान दें कि "ए" और "आई" ("क्वीन" का उल्लेख नहीं करना) वैध स्क्रैबल शब्द नहीं हैं।

चूँकि केवल अक्षरों और रिक्त स्थान का उपयोग करते हुए एक क्वीन लिखना अधिकांश प्रोग्रामिंग भाषाओं में असंभव के करीब है, आपके पास अपनी पसंद के चरित्र के साथ शब्दों के बीच एकल रिक्त स्थान को बदलने का विकल्प है। आपके पास वर्णों को पहले शब्द के सामने और अंतिम शब्द के अंत में जोड़ने का विकल्प है। ये जोड़े गए अक्षर (az, AZ) को छोड़कर कुछ भी (newlines और गैर- ASCII सहित ) हो सकते हैं । हालांकि उन्हें जोड़ने के लिए जुर्माना है (स्कोरिंग देखें)।

विवरण

  • हमेशा की तरह, quines अपने स्वयं के सोर्स कोड को पढ़ या एक्सेस नहीं कर सकते हैं। (मैं कहूंगा कि HQ9 + का Q कमांड इसका उल्लंघन करता है।)
  • आउटपुट को स्टडआउट या एक समान विकल्प पर जाना चाहिए। कोई इनपुट नहीं है।
  • शब्दों को सही ढंग से पूंजीकृत करने की आवश्यकता नहीं है। उनके पास कहीं भी कैप और लोअरकेस हो सकते हैं। शब्दों के अनुक्रम को कोई अर्थ देने की आवश्यकता नहीं है।
  • आपके प्रोग्राम में 3 बार से अधिक किसी शब्द का उपयोग नहीं किया जा सकता है। भिन्न रूप से पूंजीकृत शब्द अभी भी एक ही शब्द हैं (जैसे 'DOG', 'कुत्ता', और 'dOg' सभी एक ही शब्द हैं)।
  • PHP या HTML जैसी भाषाओं का उपयोग करना जो सिर्फ अपनी सामग्री को कैट आउट कर सकते हैं, एक तुच्छ खामियों के रूप में माना जाता है और इसकी अनुमति नहीं है।
  • कार्यक्रम में कम से कम एक शब्द होना चाहिए।

स्कोरिंग

आपका अंक आपके कार्यक्रम में "वास्तविक शब्दों" की संख्या है और साथ ही ये दंड भी:

  • प्रत्येक स्थान के लिए +1 जिसे दूसरे वर्ण से बदल दिया गया था
  • n n पहले शब्द से पहले जोड़े गए प्रत्येक n वर्णों के लिए (हाँ, यह n से शक्ति n तक है)
  • अंतिम शब्दों के बाद आपके द्वारा जोड़े गए प्रत्येक n वर्णों के लिए n n

उदाहरण के लिए, कार्यक्रम

We all LIKE PROgraMmING

4 स्कोर करेगा क्योंकि इसमें 4 शब्द हैं; कोई वर्ण जोड़ा नहीं गया और न ही कोई स्थान बदला गया। यह निश्चित रूप से उत्पादन होगा We all LIKE PROgraMmING

कार्यक्रम

!We@all LIKE#PROgraMmING- =

स्कोर 4 + 2 + 1 + 27 = 34 होगा; शब्दों के लिए 4, बदले हुए स्थान के लिए 2, !सामने के लिए 1 और - =अंत में 27 के लिए । यह निश्चित रूप से उत्पादन होगा !We@all LIKE#PROgraMmING- =

सबसे कम स्कोर जीतता है। टाईब्रेकर सबसे कम दंड बिंदुओं के साथ उत्तर में जाता है। यदि अभी भी सबसे अधिक वोट की गई उत्तर जीत टाई है।


1
क्या वह शब्दकोश सूची के रूप में भी मौजूद है? व्यक्तिगत रूप से प्रत्येक शब्द की जांच करने की तुलना में ब्राउज़ करने के लिए यह बहुत अधिक उपयोगी होगा।
मार्टिन एंडर

16
शेक्सपियर किसी को भी?
dwana


1
@JanDvorak मुझे ऐसा नहीं लगता ... इस तथ्य कि मैं ऐसा कुछ नहीं लिख सकता, जिससे अन्य लोगों को इसे एक बुरे प्रश्न के रूप में नहीं देखना चाहिए, यह एक वैध है, हालांकि बहुत कठिन, चुनौती है, है ना?
रॉलकॉर्क

7
मुझे अभी भी शेक्सपियर के समाधान में दिलचस्पी है।
जॉन ड्वोरक

जवाबों:


25

Golfscript, 8 शब्द + 8 प्रतीक = 20 16 (3?)

{four"words.written~twice"four}words.written~twice

शब्द सिर्फ एक भराव हैं, कोर एक छोटा क्वीन कोर है:

{".~"}.~

एक फ़ंक्शन को डुप्लिकेट करता है और मूल्यांकन करता है जो केवल खुद को डुप्लिकेट करने और मूल्यांकन करने के लिए निर्देशों को जोड़ता है। जब कोई फ़ंक्शन प्रिंट होता है, तो यह स्वचालित रूप से कड़ा हो जाता है। यह सबसे छोटी रानी है जो कुछ करती है

या हम सिर्फ एक फ़ंक्शन शाब्दिक का उपयोग कर सकते हैं जिसका कभी मूल्यांकन नहीं किया जाता है। लेकिन ऐसा लगता है कि धोखा ...

{whatever}

आपको समवशरण की आवश्यकता नहीं है। {a`b"x.y~z"c}x.y~z
डेनिस

@ डेनिस मुझे उस मामले में निरीक्षण की भी आवश्यकता नहीं है। धन्यवाद! मुझे ऐसा लगता है कि मुझे ओपी से कुछ पूछने की जरूरत है ...
जॉन ड्वोरक

8
@ Cephalopod मैं अपना खुद का सोर्स कोड नहीं पढ़ता। मैं सिर्फ स्टैक पर एक फ़ंक्शन को आगे बढ़ा रहा हूं और रनटाइम मेरे लिए प्रिंट करता है, इस तथ्य से अनजान है कि मेरे स्रोत कोड की संपूर्णता एक फ़ंक्शन शाब्दिक है।
जॉन ड्वोरक

1
मुझे लगता है कि {whatever}बहुत-से-तुच्छ नियम का उल्लंघन होगा ("PHP या HTML जैसी भाषाओं का उपयोग करना जो अपनी सामग्री को केवल बाहर निकाल सकते हैं, एक तुच्छ दोष माना जाता है और इसकी अनुमति नहीं है।")
क्लाउडीयू

1
@ कोलियु भाषा का नियम है, समाधान नहीं। इसीलिए मैंने पूछा।
जॉन ड्वोरक

54

> <> , 25 शब्द + (22 + 1 + 1 1 ) अतिरिक्त = 57 49

हे भगवान, मेरा दिमाग।

'brr3deep*clap6beep+orb5flap*leap4deep+clap5beep5flap*leap9deep9clap*beep+flap0placed apple alp0leap=clip?lob8blip*flip0clip.

चूंकि नियम कहते हैं कि "कोई इनपुट नहीं है।", इस कार्यक्रम को काम करने के लिए आपको एक खाली फ़ाइल में पाइप करना होगा।

ओह और हाँ, brrएक वैध स्क्रैबल शब्द है, जैसे हैं tsktskऔर pfft

व्याख्या

सबसे पहले, निम्नलिखित शब्द नो-ऑप्स हैं:

deep clap beep flap leap clip blip flip

इसकी दो वजहें हैं:

  • abcdeflपुश संख्या (10, 11, 12, 13, 14, 15 और स्टैक की लंबाई क्रमशः)। इसके अलावा, iईओएफ मिलने पर -1 धक्का देता है, यह देखते हुए कि कोई इनपुट नहीं है।
  • pआदेश तीन वर्ण पॉप v,y,xऔर स्थानों vकी स्थिति में x,y

हां,> <> आपको मक्खी पर स्रोत कोड को संशोधित करने देता है! हम वास्तव में इसका उपयोग नहीं करते हैं, क्योंकि हमें केवल pपॉपिंग की आवश्यकता है ।

अगर हमें इन नो-ऑप्स से छुटकारा मिलता है, तो हम प्राप्त करते हैं:

'brr3*6+orb5*4+55*99*+0placed apple alp0=?lob8*0.

इसी प्रकार, laced appका हिस्सा placed appleहै और e alpका हिस्सा apple alpभी नहीं-ऑप्स रहे हैं, और rrके brrबस दो बार ढेर उलट जाता है, जो हम भी निकाल सकते हैं:

'b3*6+orb5*4+55*99*+0pl0=?lob8*0.

अंत में, ऐसा कुछ जो एक नियमित> <> कार्यक्रम जैसा दिखता है! इस मानक का उपयोग करने का विचार है> <> quine, जो इस तरह काम करता है:

  • आरंभिक 'स्ट्रिंग पार्सिंग शुरू होती है, जब तक हम दूसरे को हिट नहीं करते, तब तक मिलने वाले प्रत्येक चार्ट को धकेलते हैं'
  • हम लाइन के अंत तक चार्ज़ को आगे बढ़ाते रहते हैं, जिस बिंदु पर हम निर्देश सूचक को प्रारंभ में लपेटते हैं (क्योंकि> <> टॉरॉयडल है)
  • हम 'फिर से प्रारंभिक भूमि पर आते हैं , और स्ट्रिंग पार्सिंग को रोकते हैं । इसका नतीजा यह हुआ कि हमने 'स्टैक पर कार्यक्रम (प्रारंभिक को छोड़कर ) में हर एक चार को धक्का दिया ।

तब निम्न होता है:

b3*6+o                Print the initial ' quote (ASCII 39)
r                     Reverse the stack
b5*4+                 Push a ';' (ASCII 59)
55*99*+0p             Replace the 'l' of 'lob' with ';'

(print loop)
l0=?;                 If the stack is empty, terminate. Otherwise...
o                     Print the top of the stack
b8*0.                 Jump back to the beginning of the loop

"आपके कार्यक्रम में कोई भी शब्द 3 बार से अधिक उपयोग नहीं किया जा सकता है। अलग-अलग पूंजीकृत शब्द अभी भी एक ही शब्द हैं (उदाहरण के लिए 'DOG', 'कुत्ता' और 'dOg' सभी एक ही शब्द हैं)।" वैसे भी तुम मुझसे अपवित्र हो जाओ, सर।
रॉलर्क

@ चाप मैं बहुत सारे शब्द जोड़ रहा था मैं पूरी तरह से उस नियम के बारे में भूल गया! अब निश्चित है, हालांकि मैं उपयोग करने से बचना चाहता था i
Sp3000

1
टीआईएल "पा", "ला" और "बी" स्क्रैबल में मान्य शब्द हैं
जॉन ड्वोरक

20
आपके कार्यक्रम को जोर से पढ़कर मुझे लगता है कि पंच कार्ड कंप्यूटर की तरह लग रहा होगा।
केल्विन के शौक

10
मुझे लगता है कि आपने R2D2 के ऑपरेटिंग सिस्टम के स्रोत से उस प्रोग्राम को चुरा लिया है।
को वामावर्तियों को

21

चिकन , 1 शब्द

मैं आम तौर पर एसोलैंग्स में नहीं हूं, लेकिन यह एक इसके लिए एकदम सही लग रहा था। मुझे लगता है कि यह एक सच्ची रानी है:

chicken

स्टैक पर 1 चिकन धक्का देता है। तब स्टैक प्रदर्शित किया जाता है।


1
यह (और जूलिया उत्तर) सीमा तुच्छ अमान्य है। आप उन्हें यहां रख सकते हैं लेकिन स्वीकार करने पर कोई वादा नहीं करते।
केल्विन के शौक

@ केल्विन हॉबीज फेयरनेस के हित में मैं खुशी से इसे डिलीट कर दूंगा अगर आपको लगता है कि यह बहुत ही कमजोर है - आपका कॉल। मैं एक अप्प्लीस्क्रिप्ट समाधान पर काम कर रहा था, लेकिन "कोई शब्द 3 बार से अधिक इस्तेमाल नहीं किया जा सकता" नियम से निराश हो गया, जो इसे विशेष रूप से कठिन लगता है। इसलिए मैं इसके बजाय सस्ते चाल के लिए चला गया :-)
डिजिटल ट्रामा

@ केल्विन के शौक: मैं जूलिया प्रस्तुत करने वाला लेखक हूं। अगर आपको लगता है कि यह बहुत सीमा रेखा है, तो मैं अपने पोस्ट को हटाने पर DigitalTrauma की भावना को कम करता हूं। मैंने आर। भी किया है।
एलेक्स ए।

@ एलेक्स और डीटी: यह आप लोगों पर निर्भर है। मैं शायद या तो जवाब स्वीकार नहीं करूंगा, लेकिन मैं उन्हें यहाँ होने से बुरा नहीं मानता। मैं अभी भी थोड़े आर उत्तर पर फटा हुआ हूँ, हालांकि यह विचार बहुत हद तक जूलिया एक जैसा है ...
केल्विन के

12

आर, 2 शब्द + 1 प्रतिस्थापन + 1¹ अनुगामी = 4

जिन वस्तुओं को कुछ भी नहीं सौंपा गया है, वे केवल stdout में मुद्रित की जाती हैं। चूंकि एक अभिव्यक्ति एक वस्तु है, निम्नलिखित कोड खुद को प्रिंट करता है:

expression(puppy)

पिछला सबमिशन, 5 अंक:

function(hello)hello

तुम मेरे चीटी 3-बिंदु समाधान से प्रेरित थे, क्या तुम नहीं थे? ;-)
जॉन ड्वोरक

1
@JDDvorak: मैंने वास्तव में यह नहीं देखा कि इससे पहले कि मैंने यह पोस्ट किया है, लेकिन यह अब प्रेरणा का पूर्वव्यापी स्रोत है।
एलेक्स ए।

12

पायथन 2, 58 = 37 शब्द + 21 विराम चिह्न

programming=puzzle=hash and'fear=coerce and"programming=puzzle=hash and%rif reload else fire;exec prog"or English;ramming=None or"ramming"if license else pirate;print fear%puzzle+ramming'if reload else fire;exec programming

कुछ नई खबरों के साथ:

programming=puzzle=hash and'fear=coerce and"programming=puzzle=hash
and%rif reload else fire;exec prog"or English;ramming=None or
"ramming"if license else pirate;print fear%puzzle+ramming'
if reload else fire;exec programming

प्रति शब्द प्रतिबंध के तीन उपयोगों ने इसे लिखना मुश्किल बना दिया था। मैं 3 से अधिक बार सभी कोड के साथ स्ट्रिंग का उपयोग करना चाहता था, और प्रत्येक स्ट्रिंग को if else and orऑपरेटरों के साथ अछूता रहना पड़ता था, जिसकी मुझे केवल सीमित आपूर्ति थी।


@ user23013 ओह्स, इसे एक यादृच्छिक पहचानकर्ता के साथ बदलना भूल गया।
feersum

7

जूलिया, 1 शब्द + 1¹ पूर्ववर्ती = 2

जूलिया में ऐसी वस्तुएँ होती हैं जिन्हें प्रतीक कहा जाता है जो एक पूर्ववर्ती का उपयोग करके परिभाषित की जाती हैं :। मेरे आर समाधान की तरह, यह प्रस्तुत होने पर सिर्फ प्रिंट करता है।

:puppy

5

डॉस कमांड लाइन, 10

& was unexpected at this time.

त्रुटि quine, प्रतिबंधित नहीं लगता है


1
यह कोड कोड के किसी भी भाग को "एनकोड" नहीं करता है। एक Quine के लिए हमारी परिभाषा देखें
MilkyWay90

@ MilkyWay90 परिभाषा का उपयोग &पूरे कोड को एन्कोड करता है और आउटपुट को रोक देता है
l4m2

ओह, क्या आप उत्तर को संपादित कर सकते हैं ताकि मैं अपने डाउनवोट को हटा सकूं
मिल्कीवेय

1
दिलचस्प खामियों का जवाब ... &एक शब्द है, हालांकि?
रेडवॉल्फ कार्यक्रम

@RedwolfPrograms नहीं, बल्कि & दो प्रतीक हैं। 5 (शब्द) + 1 (अनुगामी) + 2 ^ 2 अग्रणी = 10.
ड्रेको

3

रूनिक एनकाउंटर , स्कोर 4 + 3 + 1 1 +1 1 = 9

"hOt3OX4NOt+kNOt@

इसे ऑनलाइन आज़माएं!

शब्द: hot ox not knot(४)
प्रतिस्थापन: 3 4 +(३)
पहले: "(१)
बाद: @(१)

सभी वर्ण GNOQWghtxzरोनिक (और साथ ही स्थान और अवधि, लेकिन अधिक स्थान स्कोर करने में मदद नहीं करते हैं) से अधिक नहीं हैं। कार्यक्षमता के लिए आवश्यक Xऔर सहित k, यह निम्नलिखित उपलब्ध शब्द सूची देता है:

5 Letter Word(s)
  thong
4 Letter Word(s)
  gong goth gowk gown hogg hong honk howk knot know nogg nowt tong town wonk wont zonk
3 Letter Word(s)
  got gox hog hon hot how nog noh not now nth own tho tog ton tow two who wok won wot
2 Letter Word(s)
  go ho no oh on ow ox to wo

मैंने चेरी को उस स्थान की जरूरतों के आधार पर चुना जो उसमें जा रहा था और यह ध्वनि को मज़ेदार बना रहा था।

सभी एनओपी वर्णों को हटाने से निम्नलिखित क्वीन प्राप्त होती है:

"3X4+k@

इसे ऑनलाइन आज़माएं!


0

है ना? - 1 शब्द + 1 ** 1/1 ^ 1 = 1 वर्ण शब्द के बाद = 2 कुल स्कोर।

Ouch!

Ouch! हुह में एक वैध रानी है?

इसे ऐसे चलाएं pythuhn.py Ouch!, और Ouch!वर्तमान निर्देशिका में एक फ़ाइल नहीं हो सकती है ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.