চ্যালেঞ্জ
ইনপুট হিসাবে একটি স্ট্রিং দেওয়া হয়েছে, ফুরিয়ার প্রোগ্রামটি ডাউন করে দেয় যা এই স্ট্রিংটিকে আউটপুট দেয়।
ফুরিয়ারে স্ট্রিং আউটপুট দেওয়ার কোনও সহজ উপায় নেই: আপনাকে প্রতিটি অক্ষর কোড এবং আউটপুট দিয়ে যেতে হবে যা একটি চরিত্র হিসাবে।
ফুরিয়ার
ভাষাটি একটি সঞ্চয়ের উপর ভিত্তি করে তৈরি করা হয়, একটি বৈশ্বিক পরিবর্তনশীল যা প্রোগ্রামের শুরুতে 0 থেকে শুরু হয়। এটি ভাষাতে প্রায় প্রতিটি অপারেটর ব্যবহার করেন। কেবলমাত্র কিছু লোক সঞ্চয়ের মান পরিবর্তন করে না।
চরিত্র আউট
a
সঞ্চয়ের মানকে ASCII কোড হিসাবে গ্রহণ করে এবং চরিত্রটিকে আউটপুট করে। সঞ্চয়ের মান পরিবর্তন করে না।
যদি সঞ্চালক 255 এর চেয়ে বেশি হয় তবে প্রোগ্রামটি একটি ত্রুটি ফিরিয়ে দেবে। অনুরূপভাবে যদি সংগ্রহকার 0 এর চেয়ে কম হয়।
নাম্বার আউট
o
সঞ্চয়ের মান আউটপুট করে। সঞ্চয়ের মান পরিবর্তন করে না।
বৃদ্ধি
^
জমে এক এক করে বাড়ান।
কমান
v
এক এক করে জমে কমে।
যোগ
+x
সঞ্চয়ের সংযোজকের মান এবং এক্স এর মানকে সেট করে।
বিয়োগ করা
-x
সঞ্চয়েরকে বিয়োগকারকের বিয়োগের মানকে x এর মান হিসাবে সেট করে।
গুন
*x
এক্স এর মান দ্বারা গুণিত সঞ্চয়ের মানতে সঞ্চয়ের সেট করে।
বিভক্ত করা
/x
X এর মান দ্বারা বিভক্ত সঞ্চালকের মানগুলিতে সংযোজককে সেট করে। (দ্রষ্টব্য যে এটি পূর্ণসংখ্যা বিভাগ, সুতরাং 1/6
ফলাফলগুলি 0
)
সংখ্যা
n
পূর্ণসংখ্যাতে সঞ্চয়ের সেট করুন এন।
বিঃদ্রঃ
এখানে, x
এবং অন্তর্ভুক্তিতে n
কোনও পূর্ণসংখ্যার হতে 0
পারে 2^32-1
।
অধিক তথ্য
আপনাকে কেবল উপরে বর্ণিত অপারেটরগুলি ব্যবহার করতে হবে। সুতরাং আপনার আউটপুটযুক্ত ফুরিয়ার প্রোগ্রামটি অবৈধ যদি এটি নীচের যে কোনওটি ব্যবহার করে (মনে রাখবেন যে নিম্নলিখিত অপারেটরগণকে অনুগ্রহের জন্য অনুমোদিত):
- লুপগুলি পুনরাবৃত্তি করুন
- যদি বিবৃতি
- ভেরিয়েবল
- এলোমেলো
- মডিউলো
- ব্যবহারকারীর ইনপুট
- অপারেটরদের চেয়ে বৃহত্তর / কম
- সমতা অপারেটর
- পরিষ্কার পর্দা
- সময় বিলম্ব
- তারিখ ফাংশন
আপনার প্রোগ্রামটি একটি সম্পূর্ণ প্রোগ্রাম বা কোনও ফাংশন হতে পারে, এসটিডিআইএন, কোনও ফাইল বা ফাংশন আর্গুমেন্টের মাধ্যমে ইনপুট নেয়। আপনি সরাসরি ইন্টারনেট থেকে ইনপুট নিতে পারেন।
মনে রাখবেন যে আপনার কোডটিতে যদি কোনও থাকে তবে vv
আপনার এটির সাথে প্রতিস্থাপন করা উচিত -2
। একই জন্য ^^
এটি প্রতিস্থাপন +2
।
উদাহরণ
যদি ইনপুট হয় 7n
, তবে প্রত্যাশিত প্রোগ্রামটি হ'ল:
55a110a
তবে আপনি এটি দিয়ে একটি বাইট সংরক্ষণ করতে পারেন
55a*2a
আরেকটি উপায়
7o110a
নম্বর ব্যবহার করে।
একইভাবে যদি ইনপুট হয় Hello
, তবে প্রত্যাশিত প্রোগ্রামটি হ'ল:
72a101a108a108a111a
আপনি এটি 3 বাইট দ্বারা গল্ফ করতে পারেন (কারণ আউটপুট আউটুলেটেডকে পরিবর্তন করে না):
72a101a108aa111a
তবে অপেক্ষা করুন, আমরা 2 বাইট সংরক্ষণ করে সংযোজন অপারেটরটি ব্যবহার করতে পারি:
72a101a+7aa+3a
বিন্যাস করা
কারণ আমি মার্টিন বাটনার স্ট্যাক স্নিপেট লিডারবোর্ডটি ব্যবহার করব, দয়া করে আপনি কি শিরোনামটি এভাবে বিন্যাস করতে পারেন:
# <Language name>, <length of total output> bytes
তারপরে, আপনি শিরোনামের নীচে যে কোনও কিছু রাখতে পারেন put
জয়লাভ
এই টেক্সট ফাইল এবং এই টেক্সট ফাইলটিকে আউটপুট দেওয়ার জন্য আপনার ফুরিয়ার প্রোগ্রামগুলির দৈর্ঘ্য (আপনার কোড দ্বারা উত্পাদিত) পোস্ট করা উচিত । আপনার স্কোরটি উভয় ফুরিয়ার প্রোগ্রামের বাইটে সংযুক্ত দৈর্ঘ্য (অ-এসসিআইআই অক্ষরগুলি ফুরিয়ারে ব্যবহার করা হয় না যাতে এটি সত্যিই কোনও পার্থক্য করে না)।
সর্বনিম্ন স্কোর প্রাপ্ত ব্যক্তি জিতে যায়। যদি টাই থাকে তবে বাইটের মধ্যে সংক্ষিপ্ততম প্রোগ্রামটি জয়ী হয়।
খয়রাত
এই 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>