चुनौती
इनपुट के रूप में एक स्ट्रिंग को देखते हुए, फूरियर प्रोग्राम को नीचे गिरा दिया जाता है जो उस स्ट्रिंग को आउटपुट करता है।
फूरियर में एक स्ट्रिंग को आउटपुट करने का कोई आसान तरीका नहीं है: आपको प्रत्येक चरित्र कोड और आउटपुट के माध्यम से जाना होगा।
फूरियर
भाषा एक संचायक पर आधारित होती है, जो एक वैश्विक चर है जिसे प्रोग्राम की शुरुआत में 0 से शुरू किया जाता है। यह भाषा में लगभग हर ऑपरेटर द्वारा उपयोग किया जाता है। केवल कुछ संचायक के मूल्य को नहीं बदलते हैं।
चरित्र बाहर
a
संचायक के मान को ASCII कोड के रूप में लेता है और वर्ण को आउटपुट करता है। संचायक का मान नहीं बदलता है।
यदि संचायक 255 से अधिक है, तो प्रोग्राम एक त्रुटि लौटाएगा। इसी तरह अगर संचायक 0 से कम है।
नंबर बाहर
o
संचायक के मूल्य को आउटपुट करता है। संचायक का मान नहीं बदलता है।
बढ़ना
^
संचायक को एक से बढ़ाएं।
कमी
v
संचायक को एक से घटाएं।
जोड़ना
+x
संचायक को संचयकर्ता के मान से और x के मान को सेट करता है।
घटाना
-x
संचायक को x के मान को संचायक के मान पर सेट करता है।
गुणा
*x
संचायक के मान को x के मान से गुणा करने पर संचायक को सेट करता है।
फूट डालो
/x
संचायक को x के मान से विभाजित संचायक के मान में सेट करता है। (ध्यान दें कि यह पूर्णांक विभाजन है, इसलिए 1/6
परिणाम 0
)
संख्या
n
संचायक को पूर्णांक n पर सेट करें।
ध्यान दें
यहाँ, x
और n
से किसी भी पूर्णांक हो सकती 0
करने के लिए 2^32-1
समावेशी।
अधिक जानकारी
आपको केवल ऊपर वर्णित ऑपरेटरों का उपयोग करना होगा। इसलिए यदि आपका आउटपुट फ़ॉयर प्रोग्राम अमान्य है, तो यह निम्नलिखित में से किसी का भी उपयोग करता है (ध्यान दें कि बाउंटी के लिए निम्नलिखित ऑपरेटरों को अनुमति दी गई है):
- बार-बार लूप
- यदि कथन
- चर
- बिना सोचे समझे
- modulo
- उपयोगकर्ता का निवेश
- ऑपरेटरों से अधिक / कम
- समानता ऑपरेटरों
- साफ़ स्क्रीन
- समय विलंब
- दिनांक कार्य
आपका कार्यक्रम या तो एक पूर्ण कार्यक्रम या फ़ंक्शन हो सकता है, एसटीडीआईएन के माध्यम से इनपुट में ले रहा है, एक फ़ाइल या फ़ंक्शन तर्क। आप इंटरनेट से सीधे इनपुट भी ले सकते हैं।
ध्यान दें कि यदि vv
आपके कोड में कोई है, तो आपको इसे बदल देना चाहिए -2
। उसी के लिए जाता है ^^
, इसके साथ बदल रहा है +2
।
उदाहरण
यदि इनपुट है 7n
, तो अपेक्षित कार्यक्रम है:
55a110a
लेकिन आप एक बाइट के साथ बचा सकते हैं
55a*2a
दूसरा तरीका है
7o110a
नंबर का उपयोग करना।
इसी प्रकार यदि इनपुट है Hello
, तो अपेक्षित कार्यक्रम है:
72a101a108a108a111a
आप इसे 3 बाइट्स से बंद कर सकते हैं (क्योंकि आउटपुट संचयक को नहीं बदलता है):
72a101a108aa111a
लेकिन रुकिए, हम 2 बाइट्स बचाते हुए अतिरिक्त ऑपरेटर का उपयोग कर सकते हैं:
72a101a+7aa+3a
का प्रारूपण
क्योंकि मैं मार्टिन बंटनर के स्टैक स्निपेट लीडरबोर्ड का उपयोग कर रहा हूं, कृपया आप इस तरह शीर्षक को प्रारूपित कर सकते हैं:
# <Language name>, <length of total output> bytes
फिर, आप शीर्षक के नीचे अपनी इच्छा के अनुसार कुछ भी रख सकते हैं।
जीतना
आपको इस पाठ फ़ाइल और इस पाठ फ़ाइल को आउटपुट करने के लिए फ़ॉयर प्रोग्राम (आपके कोड द्वारा निर्मित) की लंबाई पोस्ट करनी चाहिए । आपका स्कोर बाइट्स में दोनों फूरियर प्रोग्रामों की संयुक्त लंबाई है (गैर- ASCII वर्ण फ़ॉयर में उपयोग नहीं किए जाते हैं, इसलिए यह वास्तव में कोई फर्क नहीं पड़ता है)।
सबसे कम स्कोर वाला व्यक्ति जीतता है। यदि कोई टाई है, तो बाइट्स में सबसे छोटा प्रोग्राम जीत जाता है।
इनाम
यह 500 प्रतिनिधि इनाम एक नए उत्तर के लिए है जो फूरियर के किसी भी फ़ंक्शन का उपयोग करके स्ट्रिंग्स को गोल्फ करता है। जिसमें चर, लूप और यदि कथन आदि शामिल हैं, तो यह नया उत्तर स्वीकार नहीं किया जाएगा।
लीडरबोर्ड
ऊपर स्वरूपण अनुभाग देखें:
var QUESTION_ID=55384;function answersUrl(e){return"http://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),e.has_more?getAnswers():process()}})}function shouldHaveHeading(e){var a=!1,r=e.body_markdown.split("\n");try{a|=/^#/.test(e.body_markdown),a|=["-","="].indexOf(r[1][0])>-1,a&=LANGUAGE_REG.test(e.body_markdown)}catch(n){}return a}function shouldHaveScore(e){var a=!1;try{a|=SIZE_REG.test(e.body_markdown.split("\n")[0])}catch(r){}return a}function getAuthorName(e){return e.owner.display_name}function process(){answers=answers.filter(shouldHaveScore).filter(shouldHaveHeading),answers.sort(function(e,a){var r=+(e.body_markdown.split("\n")[0].match(SIZE_REG)||[1/0])[0],n=+(a.body_markdown.split("\n")[0].match(SIZE_REG)||[1/0])[0];return r-n});var e={},a=1,r=null,n=1;answers.forEach(function(s){var t=s.body_markdown.split("\n")[0],o=jQuery("#answer-template").html(),l=(t.match(NUMBER_REG)[0],(t.match(SIZE_REG)||[0])[0]),c=t.match(LANGUAGE_REG)[1],i=getAuthorName(s);l!=r&&(n=a),r=l,++a,o=o.replace("{{PLACE}}",n+".").replace("{{NAME}}",i).replace("{{LANGUAGE}}",c).replace("{{SIZE}}",l).replace("{{LINK}}",s.share_link),o=jQuery(o),jQuery("#answers").append(o),e[c]=e[c]||{lang:c,user:i,size:l,link:s.share_link}});var s=[];for(var t in e)e.hasOwnProperty(t)&&s.push(e[t]);s.sort(function(e,a){return e.lang>a.lang?1:e.lang<a.lang?-1:0});for(var o=0;o<s.length;++o){var l=jQuery("#language-template").html(),t=s[o];l=l.replace("{{LANGUAGE}}",t.lang).replace("{{NAME}}",t.user).replace("{{SIZE}}",t.size).replace("{{LINK}}",t.link),l=jQuery(l),jQuery("#languages").append(l)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",answers=[],page=1;getAnswers();var SIZE_REG=/\d+(?=[^\d&]*(?:<(?:s>[^&]*<\/s>|[^&]+>)[^\d&]*)*$)/,NUMBER_REG=/\d+/,LANGUAGE_REG=/^#*\s*([^,]+)/;
body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"><div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> <thead> <tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr></thead> <tbody id="answers"> </tbody> </table></div> <tbody id="languages"> </tbody> </table></div><table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody></table>