রিম্যাপিং এএসসিআইআই


36

চ্যালেঞ্জ

এমন একটি প্রোগ্রাম লিখুন যা ASCII অক্ষরগুলিকে পুনরায় অর্ডার দেয়!

এটি ঠিক একবারে মুদ্রণযোগ্য ASCII অক্ষর সমন্বিত একটি একক স্ট্রিং আউটপুট করা উচিত। এই স্ট্রিংয়ের প্রথম অক্ষরকে মান 1, দ্বিতীয় অক্ষরটি মান 2 এবং আরও কিছু বরাদ্দ করা হয়।

যদি দুটি অক্ষর সাধারণত একে অপরের পাশে থাকে (তাদের অক্ষর কোডগুলির মধ্যে পার্থক্য 1), তারা আউটপুটে একে অপরের পাশে উপস্থিত নাও হতে পারে।

স্কোরিং

আপনার স্কোর হ'ল আপনার প্রোগ্রামের আউটপুট দ্বারা নির্ধারিত হিসাবে আপনার উত্স কোডের সমস্ত অক্ষরের মানগুলির যোগফল হবে।

আপনার স্কোর গণনা করতে দয়া করে যাচাইকরণ বিভাগটি দেখুন ।

সর্বনিম্ন স্কোর জয়!

বিধি

  • "মুদ্রণযোগ্য ASCII" সংজ্ঞাযুক্ত অক্ষর কোড 32 - 126 হিসাবে সংজ্ঞায়িত করা হয়।

  • আপনি একটি সম্পূর্ণ প্রোগ্রাম বা একটি ফাংশন লিখতে পারেন।

  • আপনার কোডে কেবল প্রিন্টযোগ্য এএসসিআইআই অক্ষর এবং নিউলাইন থাকতে পারে।

  • আপনার প্রোগ্রামটি কোনও ইনপুট নিতে পারে না।

  • নিউলাইনগুলি সর্বদা মান 1 থাকবে Your আপনার প্রোগ্রামের আউটপুটটিতে একটি নতুন লাইন অন্তর্ভুক্ত করা উচিত নয়।

প্রতিপাদন

আপনার কোডের আউটপুট বৈধ কিনা তা যাচাই করতে এবং আপনার কোডের স্কোর গণনা করতে এই স্ট্যাক স্নিপেটটি ব্যবহার করুন!


var result = document.getElementById("result");document.getElementById("submit").onclick = function() {var code = document.getElementById("code").value;var output = document.getElementById("output").value;var values = [];for (var i = 0; i < output.length; i++) {var c = output[i];var v = c.charCodeAt();if (v < 32 || v > 126) {result.innerHTML = "Invalid output! Reason: `" + c + "` (code " + v + ") is out of range.";return;}if (values.indexOf(c) >= 0) {result.innerHTML = "Invalid output! Reason: `" + c + "` (code " + v + ") was repeated.";return;}if (i > 0) {var d = output[i - 1];var w = d.charCodeAt();if (Math.abs(v - w) == 1) {result.innerHTML = "Invalid output! Reason: `" + d + "` and `" + c + "` (codes " + w + " and " + v + ") cannot appear next to each other in the output.";return;}}values.push(c);}for (var j = 32; j <= 126; j++) {var c = String.fromCharCode(j);if (values.indexOf(c) < 0) {result.innerHTML = "Invalid output! Reason: `" + c + "` (code " + j + ") was missing.";return;}}var score = 0;for (var k = 0; k < code.length; k++) {var s = values.indexOf(code[k]) + 1;if (s <= 0) s = 1;score += s}result.innerHTML = "Your score is " + score + "!";}
<textarea id="code" rows=10 cols=50>Enter your code here.</textarea><br/><textarea id="output" rows=1 cols=50>Enter your code's output here.</textarea><br/><button id="submit">Submit</button><br/><p id="result"></p>

লিডারবোর্ড

লিডারবোর্ড কোডের জন্য এই পোস্টের জন্য ধন্যবাদ !


var QUESTION_ID=57914,OVERRIDE_USER=42844;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 commentUrl(e,s){return"http://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
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><div id="language-list"> <h2>Winners by Language</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr></thead> <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> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table>


12
বৈধতা স্নিপেট ভালবাসেন।
mınxomaτ

2
কীভাবে স্কোর গণনা করা যায় তা সংক্ষিপ্তভাবে ব্যাখ্যা করতে পারেন, তাই আমরা কীভাবে আমাদের উত্তরগুলি অনুকূল করতে পারি?
মারাত্মক রূপ দিন

@ ফ্যাটালাইজ মূলত, ধারণাটি এমন একটি প্রোগ্রাম লেখার জন্য যার আউটপুটটি অক্ষরগুলির কম মান নির্ধারণ করে, আউটপুটযুক্ত স্ট্রিংয়ের শুরুতে রেখে। প্রতিটি ASCII অক্ষরের "মান" আপনার কোডের আউটপুটে তার 1-ভিত্তিক সূচক দ্বারা নির্ধারিত হয়। কোড-গল্ফের মতো আপনার উত্সের প্রতিটি অক্ষরকে 1 হিসাবে গণনা করার পরিবর্তে, আপনার উত্সের প্রতিটি অক্ষরকে উপরে বর্ণিত হিসাবে তার মান হিসাবে গণনা করা হচ্ছে।
জিরিক

4
প্রোগ্রামিং প্রতিযোগিতায়
হোয়াইটস্পেস

3
@ C0deH4cker দুর্ভাগ্যক্রমে এর জন্য এমন ট্যাবগুলির প্রয়োজন হবে যা এএসসিআইআই অক্ষর বা নিউলাইন মুদ্রণযোগ্য নয়, তাই এটি অবৈধ।
জ্রিখ

উত্তর:


21

সিজেম, 356 186 168 131 126 111 99 96 94

"_|`'~,Y/G>z`|"_~

সিজেএম ইন্টারপ্রেটারে এটি অনলাইনে চেষ্টা করুন ।

আউটপুট

"_|`'~,Y/G>z[ \$&(*.02468:<@BDFHJLNPRTVXZ^bdfhjlnprtvx!#%)+-13579;=?ACEIKMOQSUW]acegikmoqsuwy{}

ধারণা

সিজেএম কুইনে সাধারণ কোনও প্রযুক্তির বিভিন্নতা ব্যবহার করে, আমরা মুদ্রণযোগ্য এএসসিআইআই অক্ষরগুলি সোর্স কোডটিতে প্রদর্শিত হয় কিনা এবং তাদের কোড পয়েন্টের প্যারিটি বিটের সাহায্যে দুটি ব্যতিক্রম - অ-উপস্থিত না হওয়া অক্ষরগুলি বাছাই করি।

সঠিক উত্স বিন্যাসের সাহায্যে আমরা উত্স কোড অক্ষরগুলি - একটি ব্যতিক্রম সহ - তাদের ফ্রিকোয়েন্সি অনুসারে বাছাই করতে পরিচালনা করি।

বিশেষ যত্ন নিতে হবে যে দুটি সংলগ্ন অক্ষর সোর্স কোডে প্রথমবারের মতো একের পর এক উপস্থিত হবে না, কারণ এটি উত্তরটি অকার্যকর করে দেবে।

কোড

"             "_~  Push a string, duplicate it and evaluate the copy.
 _|                Perform the set union of the original string with itself.
                   This is just an "excuse" to introduce the underscore.
   `               Inspect the string (surrounds it with double quotes).
    '~,            Push the string of Unicode characters before the tilde.
       Y/          Divide it into pairs.
         G>        Discard the first 16 pairs (control characters).
           z       Zip. This interleaves the pairs, ordering the characters
                   by their code points' parities.
            `      Inspect the array, i.e., push its string representation.
             |     Perform set union with the string of source code characters.

সিজেএম এটি জিততে দেখে অবাক হবেন না, পাইথের কোনও বিল্ট-ইন-তে সরল কুইন বা এএসসিআইআই অক্ষর নেই।
orlp

1
সিজেমে ASCII অক্ষরগুলির জন্য অন্তর্নির্মিত কোনও ব্যবস্থা নেই। আমি একটি অ্যানারি রেঞ্জ ব্যবহার করছি, তারপরে নিয়ন্ত্রণের অক্ষরগুলি বাতিল করুন।
ডেনিস

14

ব্রেইনফাক, 1692 826 765

(তবুও) নিরবচ্ছিন্ন, আমি জানি। আমি এটিতে কাজ করছি (মন্তব্যে পছন্দ ছেড়ে দিন)।

++[------>+<]>.++.---[-->+++<]>-.[->+++++++++<]>.--[----->+<]>.[-->+++<]>+.++.>+++[<---------->-]<-[-->+<]>-++.>++[>+++<-]>[<<++.>>-]<<++++.++.++.++.++.++.++++>>++++[<++++++++>-]<[<++.>-]<---.++.-->+++[>+++++<-]>-[<<--.>>-]<<---->++++[>+++++<-]>++[<<--.>>-]<<------.--.--.--.--.

আউটপুট:

+->.<[] "$&(*,02468:@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~{}ywusqomkigeca_YWUSQOMKIGECA?=;97531/)'%#!

আমি ইতিমধ্যে কিছু পরিমাণে 8 বিট কোষগুলিতে ওভারফ্লো ব্যবহার করছি, তবে আমার ধারণা আপনি এখনও এটি অপ্টিমাইজ করতে পারেন। যদিও এটি সস্তা অক্ষরের ব্যবহার হ্রাস করবে :)।


2
আমি খুব নিখুঁত প্রোগ্রামের সাথে 576 পেয়েছি। আমার ধারণা মিশ্রিত এবং মেলে নির্দ্বিধায়। +1 টি।
স্তরের নদী

12

পাইথ, 173 170

কোড

-so%CN2rd\~p"p~\dr2NC%os-

আউটপুট

p~\dr2NC%os- "$&(*,.0468:<>@BDFHJLPRTVXZ^`bfhjlntvxz|!#')+/13579;=?AEGIKMOQSUWY[]_acegikmquwy{}

কুইনের মতো স্ট্রিং হার্ডকোডিং। সুবিধামতভাবে, "চরিত্রটি উত্পন্ন স্ট্রিংটির শুরুটির খুব কাছাকাছি। "কুইন" এর পরেও বিজোড় অক্ষর মুদ্রণ করে।

ডেনিসকে 3 পয়েন্ট সংরক্ষণ এবং কোডকে একটি প্যালিনডোম করার জন্য অনেক ধন্যবাদ!

এখানে চেষ্টা করুন


পার্শ্ব-নোট হিসাবে, আমি মনে করি না পাইথের rএই মোডে ব্যবহৃত হওয়ার পরে স্ট্রিংগুলির একটি তালিকা ফেরত দেওয়া উচিত।
FryAmTheEggman

1
\~অক্ষর পরিসীমা জন্য ব্যবহার আপনার স্কোর 3 পয়েন্ট উন্নত (এটি আপনাকে আপনার কোডকে একটি প্যালিনড্রোম তৈরি করার অনুমতি দেয়))
ডেনিস

@ ডেনিস ধন্যবাদ! আমার বুঝতে এত দীর্ঘ সময় লেগেছিল যে আমি ~"কুইন" অংশে এটি লিখতে পারি তার পরিবর্তে এটি কোনওভাবে পরিসরে যোগ করার দরকার নেই ...: ডি
ফ্রাইআম দ্য এজিগম্যান

10

জাভা, 3518 3189 2692

একটি সাধারণ লুপ যা এমনকি অক্ষরগুলি মুদ্রণ করে, তারপরে বিজোড়। আমি পূর্বের এসসিআইআইগুলি অনুকূল করতে কয়েকটি জিনিস চেষ্টা করেছিলাম, তবে বেশিরভাগই এটি সামগ্রিকভাবে দীর্ঘায়িত হয়ে শেষ হয় এবং উচ্চতর স্কোর দিয়ে শেষ হয়।

void A(){for(char A=31;A!=126;System.out.print(A+=2))A=A==125?30:A;}

আউটপুট হল:

!#%')+-/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{} "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~

সম্পাদনা করুন: প্রথমে স্কোরিংকে ভুল বুঝেছি। এটি প্রথমে বিজোড় করার পরে, তারপরেও , এটি আরও ভাল স্কোর করে।


10

অষ্টাভ, 628

কোড

["" 32:2:126 33:2:125]

আউটপুট:

 "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~!#%')+-/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{}

দুটি রেঞ্জ সুস্পষ্টভাবে স্ট্রিংয়ে রূপান্তরিত। আনস হিসাবে ফিরে আসা গ্রহণযোগ্য কিনা তা নিশ্চিত নন, অন্তর্নিহিত রূপান্তর সম্পর্কে একটি সতর্কতাও দেয়। কিছু অন্যান্য রেঞ্জের ভেক্টর চেষ্টা করেও এর চেয়ে বেশি দক্ষ কিছু খুঁজে পেল না।


উত্তর ফিরিয়ে দেওয়া গ্রহণযোগ্য, চমৎকার কাজ!

8

সি, 42 বাইট, স্কোর 1539

main(i){for(;i-191;i+=2)putchar(32+i%95);}

!#%')+-/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{} "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~

সি, 39 বাইট, স্কোর 1687

main(i){for(;i-96;)i=putchar(32+i%95);}

!Aa"Bb#Cc$Dd%Ee&Ff'Gg(Hh)Ii*Jj+Kk,Ll-Mm.Nn/Oo0Pp1Qq2Rr3Ss4Tt5Uu6Vv7Ww8Xx9Yy:Zz;[{<\|=]}>^~?_ @`

উভয় ক্ষেত্রেই, iকমান্ডলাইনে স্ট্রিংয়ের সংখ্যার সূচনা করা হয় (কোনও আর্গুমেন্ট দেওয়া হয়নি, এটি 1।)

প্রথম সংস্করণটি সুস্পষ্ট উপায়ে কাজ করে, 2 দ্বারা বৃদ্ধি করে, 95 মডিউল গ্রহণ করে এবং তারপরে সমস্ত প্রতিক্রিয়া মুদ্রণ করে সমস্ত সন্ধ্যায়।

দ্বিতীয় সংস্করণটি পুতচর মুদ্রিত চরিত্রটি ফিরিয়ে দেয় এই বিষয়টি নিয়ে সুবিধা গ্রহণ করে। 32 হিসাবে 95 এর কপিরাইট হয়, আমরা অক্ষরগুলির মধ্যে চক্র রাখতে পারি। যেহেতু সিতে অনেক ছোট হাতের অক্ষর রয়েছে আমি আশা করি যে এটির সংক্ষিপ্ত হওয়া ছাড়াও কম স্কোর থাকবে তবে দুর্ভাগ্যক্রমে এমনটি হয় না।


i;main(){for(;i<3990;i+=42)putchar(i%95+32);}স্কোর 1472, আমি মনে করি
খুঁতখুঁতে ossifrage

@ স্কোয়াআমিশোসিফ্রেজ ভালভাবে চিহ্নিত হয়েছে, এটি সত্যই! এটি খুঁজে পেতে কতক্ষণ সময় লাগল? আমি সি বিরক্ত হয়েছি, আমার ব্রেইনফাক উত্তরটি আরও ভাল।
স্তর নদী সেন্ট

শুধু পার্ল স্ক্রিপ্ট আমি প্রায় নুডলিং জেনারেট করতে ব্যবহৃত এই উত্তর :-)
খুঁতখুঁতে ossifrage

আপনি উভয় ক্ষেত্রে aপরিবর্তে পরিবর্তনশীল নাম হিসাবে ব্যবহার করে আপনার স্কোর হ্রাস করতে পারেন i
409_ কনফ্লিক্ট

8

বেফুঞ্জ -৩৩, 801 797 724 699 627 612

কোড:

"!  "     ^
v     _@#$<
>:,2+:"~"`|
^         <

আউটপুট:

 "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~!#%')+-/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{}

আপনি চাইলে এখানে চেষ্টা করে দেখতে পারেন।

এটি 32-126 সন্ধ্যায় আউটপুট করে এবং তারপরে 33-125 বিজোড়নের দ্বারা কাজ করে। যদি কেউ ব্যাখ্যা চান, আমি রাজি হব।

ব্রেইনফ *** এর চেয়ে ভাল না হওয়া পর্যন্ত আমি এটি গল্ফ করেছিলাম, যা আমি যেতে সবচেয়ে কম বলে মনে করি। গল্ফিংয়ের কৌশল হিসাবে, আমি আসকি চরিত্রগুলি তৈরি করেছি এবং তারপরে ব্যয়বহুল অক্ষরগুলি সস্তার সাথে প্রতিস্থাপন করার চেষ্টা করেছি (যেমন 1 এর সাথে 2)। আমি যেহেতু gএত ব্যয়বহুল ছিল তা আবিষ্কার করেছি, প্রতি পুনরাবৃত্তিতে 126 গণনা করা ভাল। আমি ^তুলনায় সস্তা যেহেতু উপরে প্রায় জড়ান v

801 -> 7 77 : সাম্প্রতিক পরিবর্তনটি অতিরিক্ত স্থানগুলি সরিয়ে ফেলছিল যা ব্যবহার করা থেকে বিরত ছিল g

797 -> 724 : আমি প্রতিবার কেবল টিলডে পড়তে 126 গণনা পরিবর্তন করেছি "~"। এটি হোয়াইটস্পেস কেটে ফেলার অনুমতি দেয় (এবং আমি আবার বিএফের উত্তরগুলির মধ্যে একটিকে প্রহার করছি)

724 -> 699 : শেষ পরিবর্তনের অনুরূপ, "" 32 প্রাপ্তির একটি অত্যন্ত সস্তা (4 পয়েন্ট) উপায়

9৯৯ -> 7২7 : যেহেতু আমি কেবল একবার ২ য় সারির পাস দিয়ে যাচ্ছি, তাই আমি স্ট্যাকের উপর অন্য মান বজায় রাখা এবং একটি যুক্ত করার পরিবর্তে এটিকে 33 সেটে পরিবর্তন করেছি।

627 -> 612 : ইনপুট স্ট্রিংয়ে আমি যতটা পেরেছি d আমি নিশ্চিত যে নকশাকে আরও গল্ফ করার জন্য মারাত্মকভাবে পরিবর্তন করা দরকার।

এটি সম্ভবত চূড়ান্ত পুনরাবৃত্তি, যদি না অ গল্ফিং ভাষার একটির কম সমাধান না পায়।



7

ব্রেইনফাক, স্কোর 576 667

এটির কথা চিন্তা করে, 576 টি সত্য বলে মনে হয়েছে: আমি কিছুটা প্রাক্কলন করেছি এবং আমার স্কোরটি প্রায় 95 * 6 + 45 * 2 = 660 এর কাছাকাছি হয়ে গেছে। সঠিক স্কোরটি আমার অনুমানের কাছাকাছি। এটি এখনও খারাপ স্কোর নয়।

+++++++++++++++++++++++++++++++++++++++++++++.--.+++.++.++.++.++.++.++.++.++.++.++.++.++.++.++.++.++.++.++.++.++.++.++.++.++.++.++.++.++.++.++.++.++.++.++.++.++.++.++.++.++.---.++.----.--.--.--.--.--.--.--.--.--.--.--.--.--.--.--.--.--.--.--.--.--.--.--.--.--.--.--.--.--.--.--.--.--.--.--.--.--.---.--.--.--.--.--.--.+++.--.++++.++.++.

সহজবোধ্য রাখো.

মূলত ASCII সেট, অক্ষর মুদ্রণের উপরে এবং নীচে হাঁটুন। প্রোগ্রামটিতে ব্যবহৃত তিনটি অক্ষর প্রথমে মুদ্রিত হয়। উভয় প্রান্তে গোল ঘুরিয়ে দেওয়া কিছুটা জটিল ছিল।

-+.02468:<>@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~{}ywusqomkigeca_][YWUSQOMKIGECA?=;97531/,*(&$" #!%')

6

রুবি 2.2, 1157

eval s='srand 1;([*s.bytes].shuffle|[*33..0x7e].shuffle).map{|c|putc c}'

আউটপুট:

f.p|cahu]xens7*0{)3tbmdy[}l1; r(o@&gN/MjzSVv~>D4I`L\KB92=i%PHE?5TQw,W-#6U'^Y!$R"XkO_q+CAGZF<8:J

এটি একটি চমত্কার বোবা সমাধান (এবং আমি নিশ্চিত নই যে শ্র্যান্ড কোনও স্ট্যান্ডার্ড ফাঁক হওয়া উচিত নয়, বিশেষত যেহেতু এটি অত্যন্ত বহনযোগ্যতা হ্রাস করে)। তার নিজস্ব সোর্স কোডে বাইটগুলি (বেশিরভাগ) শফল করে এবং বাকীগুলিকে শফলেস করে, তারপরে অরেজিকগুলি অ্যাটিকেশন এবং কনটেনেট করে। বাছাই করা এলোমেলো বীজ ব্যবহার করে যাতে আউটপুট আইনী হয় (সত্য যে এটি একক অঙ্ক হ'ল শুভ ভাগ্য)।


1
আকর্ষণীয় সমাধান! আমি এটিকে আইনী হিসাবে শ্রেণিবদ্ধ করবো কারণ এটি সর্বদা একই বীজ প্রদত্ত (যদি আমি সঠিকভাবে বুঝতে পারি) একই আউটপুট উত্পাদন করে। এছাড়াও, বিভিন্ন ধরণের বিভিন্ন পদ্ধতি থাকা সবসময়ই আকর্ষণীয়।
জুনিচ

5

সিবিএম বেসিক ভি 2, 2553

1FORI=0TO47:PRINTCHR$(32+I*2);:NEXT
2FORI=0TO47:PRINTCHR$(33+I*2);:NEXT 

আউটপুট (পিসিতে পাইথন স্ক্রিপ্ট দ্বারা ASCII তে রূপান্তরিত):

<blank>"$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~!#%')+-/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{}

5

গাওক, 2782 1988 1821

END{for(rrf=rrr="rf(3)+=;1\"$?:~ptoin[<-EN% ^.|P";fr++<333;$fr=(ff=sprintf("%c",fr))~"[[(]"?f:ff);for(;r++<33+13+1;rrf=f)printf(rrf)(rrr~(rr=$(31+1+r+r))?f:rr)(rrr~(rr=$(133-(3+3+r+r)))?f:rr)}

আউটপুট

rf(3)+=;1"$?:~ptoin[<-EN% ^.|P}{&yw*u,sq02m4k68gec>a@_B]DFYHWJULSQORMTKVIXGZ\CA`bd9h7j5l/vx'z#!

ব্যবহার

নিম্নলিখিতটি আপনার কনসোলে অনুলিপি করুন এবং আটকান
(মউক কাজ করবে না, কারণ এটি প্রিন্টফের সাথে খুব কঠোরতর কঠোর)

awk 'END{for(rrf=rrr="rf(3)+=;1\"$?:~ptoin[<-EN% ^.|P";fr++<333;$fr=(ff=sprintf("%c",fr))~"[[(]"?f:ff);for(;r++<33+13+1;rrf=f)printf(rrf)(rrr~(rr=$(31+1+r+r))?f:rr)(rrr~(rr=$(133-(3+3+r+r)))?f:rr)}' < /dev/null

< /dev/nullশেষে, ইনপুট শেষে ইঙ্গিত তাই END টি ব্লক মৃত্যুদন্ড কার্যকর করা হবে না।

আমি মূলত নীচের দিক থেকে আসা এবং উপরে থেকে আসা অক্ষরগুলিকে অন্তর্নির্মিত করেছি। তারপরে আমি বিশ্লেষণ করেছি, প্রোগ্রামটিতে কোন অক্ষরগুলি সর্বাধিক ব্যবহৃত হয়েছিল এবং ফ্রিকোয়েন্সি অনুসারে প্রথমে সেগুলি মুদ্রিত হয়েছিল। তারপরে আমাকে নিশ্চিত করতে হয়েছিল যে কোনও চরিত্র একাধিকবার মুদ্রিত হয় না। বিপরীত দিকের তাঁতগুলি আরও সম্ভাব্য করে তোলে যে ইতিমধ্যে ব্যবহৃত চরিত্রটি প্রতিবেশীদের মুদ্রণের দিকে পরিচালিত করবে না। তবে তারা মাঝখানে মিলিত হয়েছিল P, তাই আমাকে প্রারম্ভিক সময়েও এটি প্রিন্ট করতে হয়েছিল। তারপরে অক্ষরগুলির সাথে কিছু সমস্যা ছিল যা রেজিপ্সে ব্যবহৃত হয় ... তারপরে আমি সস্তাভাবে ভেরিয়েবলগুলির নামকরণ করেছি এবং পুরো জিনিসটি আবার করেছি। তারপরে আমি আমার প্রোগ্রামে প্রতিস্থাপন করতে পারে এমন কিছু চরিত্র খুঁজে পেয়েছি এবং পুরো জিনিসটি আবার করে দিয়েছি। এবং এইভাবেই .. আমি শেষ পর্যন্ত পরীক্ষার মাধ্যমে পছন্দসই অক্ষরগুলির সাথে স্ট্রিংটি টুইট করি।

আমার মনে হয় আমি শেষ হয়ে গেছি :D

প্রক্রিয়া চলাকালীন আমি কমান্ড লাইন থেকে প্রোগ্রামটি কখনই সম্পাদন করি নি, তবে একটি স্ক্রিপ্টের ভিতরে থেকে আমি একটি স্ট্রিং তৈরি করেছি, যা আউটপুটকে সঠিকতার জন্য বিশ্লেষণ করে আমাকে স্কোর এবং স্টাফ দেয়। স্কোর আউটপুট অনেক সাহায্য করেছিল। অবশ্যই আমি এখানে পুনরায় যাচাই করেছি (আপনি কখনই জানেন না) তবে এটি আমার একই ফলাফল পেয়েছে।

প্রোগ্রামটি এরকম দেখাচ্ছে

p=sprintf("END{"\
"for(rrf=rrr=%c%s%c;fr++<333;$fr=(ff=sprintf(%c%cc%c,fr))~%c[[(]%c?f:ff);"\
"for(;r++<33+13+1;rrf=f)printf"\
"(rrf)(rrr~(rr=$(31+1+r+r))?f:rr)(rrr~(rr=$(133-(3+3+r+r)))?f:rr)}"\
,34,s=sprintf("rf(3)+=;1%c%c$?:~ptoin[<-EN%c ^.|P",92,34,37),34,34,37,34,34,34)

5

মতলব, 763

অবশ্যই, ম্যাটল্যাবে অক্টাভা সমাধানটি পরাভূত করা বেশ অসম্ভব, যেহেতু এটি "এসসিআইআই-রেঞ্জের 'তাড়াতাড়ি' নয়। যাইহোক, আমি কিছুটা সৃজনশীল এবং আপত্তিজনকভাবে উদ্ভূত হওয়ার সিদ্ধান্ত নিয়েছি randperm। আমি স্বীকার করি যে এটি কিছুটা হ্যাকি এবং কেউ কেউ এটি প্রতারণার বিষয়টি বিবেচনা করতে পারে তবে আমি অনুমান করি এটি একটি দুর্দান্ত স্পর্শ। প্রথমত, প্রোগ্রাম এবং আউটপুট:

rng(1194663);['' randperm(95)+31]

Ouput:

p2)[]913r~jZe:'Xf +b(Atd@LHT*7&xmN>6!?CJgwsaSh|/McO4_EkK=$5VP-%D<"Gz#Yq08n};WB`{.l\Quy^vR,IFoiU

উপযুক্ত বীজ গণনা করার জন্য, আমি নিম্নলিখিত প্রোগ্রামটি ব্যবহার করেছি, যা আমি বীজ = 4648029 অবধি চালিত করেছি (অর্থাত, থালা বাসন না হওয়া পর্যন্ত)

minscore=Inf;
for(seed=1:1e9)
    rng(seed)
    p=randperm(95)+31;
    if(any(abs(diff(p))==1))
        continue
    end
    codestring=sprintf('rng(%d);['''' randperm(95)+31]',seed);
    score=0;
    for(i=1:length(codestring))
        score=score + find(codestring(i)==p,1);
    end
    if(score<minscore)
        minscore=score;
        bestseed=seed;
    end
end

সম্ভবত প্রোগ্রামটির উন্নতি করার একটি উপায় হ'ল ভাসমান পয়েন্ট বীজগুলিও চেষ্টা করে দেখুন, উদাহরণস্বরূপ, 2.3e4 দীর্ঘতর বীজের দৈর্ঘ্য না রেখে বীজের সংখ্যা বৃদ্ধি করুন। কেউ যদি মতলব দ্বারা প্রতিনিধিত্বযোগ্য সমস্ত এন-চরিত্রের সংখ্যা গণনা করার জন্য একটি প্রোগ্রাম তৈরি করার মতো মনে করে ....;)


আমি মনে করি এটি একটি দুর্দান্ত সমাধান। তবে, ['' 32: 2: 126 33: 2: 125] (একক উদ্ধৃতি সহ) বৈধ, এবং 728 পয়েন্টে সংক্ষিপ্ত :-)
জারজেন

@ জর্জেন আমি জানি, তবে আমি একটি ভিন্ন পদ্ধতির চেষ্টা করতে চেয়েছিলাম;)। আমি অনুমান করি যে এটি randpermএত দীর্ঘ ফাংশন নাম না থাকলে এটি আরও আকর্ষণীয় ফলাফল পেয়েছে ।
সানচিইস

4

হাস্কেল, 1660 1376

""!_="O"
(a:b)!(c:d)=a:c:b!d
a=[' '..'N']!['P'..]

ফাংশনটি সংজ্ঞা দেয় aযা স্ট্রিংটি দেয়:

 P!Q"R#S$T%U&V'W(X)Y*Z+[,\-].^/_0`1a2b3c4d5e6f7g8h9i:j;k<l=m>n?o@pAqBrCsDtEuFvGwHxIyJzK{L|M}N~O

4

জাভা, 15470

class A{public static void main(String[]I) throws Exception{java.lang.reflect.Field C=Character.class.getDeclaredClasses()[0].getDeclaredField("cache");C.setAccessible(true);Character[]E=(Character[])C.get(C);for(char A=31,G=31;A!=126;E[G++]=new Character(A+=2))A=A==125?30:A;for(char A=31;A!=126;A++)System.out.printf("%c", A);}}

মোটেও সর্বোত্তম নয়, তবে এটি আসলে চরগুলি পুনর্নির্বাচন করে (পরিবর্তিত অক্ষরের একটি সেট প্রিন্ট করার চেয়ে)।

Ungolfed:

public class Main {
    public static void main(String[] args) throws Exception {
        java.lang.reflect.Field feild = Character.class.getDeclaredClasses()[0].getDeclaredField("cache");
        feild.setAccessible(true);
        Character[] array = (Character[]) feild.get(args); //Since it's a static field, we can supply whatever we want here, and args is cheaper than null.

        char i = 31;
        for (char c = 31; c != 126; array[i++] = new Character(c += 2)) {
            c = c == 125 ? 30 : c;
        }

        for (char c = 31; c < 126; c++) {
            System.out.printf("%c", c);
        }
    }
}

আউটপুট

!#%')+-/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{} "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~

এটি চরিত্রদের জিওবিটসের জবাব হিসাবে একই পদ্ধতি ব্যবহার করে আদেশ দেয় এবং বর্ণগুলি পরিবর্তন করতে এই উত্তরের অনুরূপ কিছু করে ।


3

বিবিসি বেসিক, 2554

কোড

n=32
s$=""
REPEAT
  s$+=CHR$(n)
  n+=2
  IFn=128THENn=33
UNTILn=127
PRINTs$

আউটপুট

 "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~!#%')+-/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{}

3

ফরট্রান 90, 1523 1519 1171

এটি অন্যান্য উত্তরের মতো নেস্টেড আউটপুট লুপ। খুব বেশি আত্মবিশ্বাস নেই যে অনেক উন্নতি সম্ভব ...

PRINT*,((CHAR(J),J=L,126,2),L=32,33)
END

আউটপুট:

 "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~!#%')+-/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{}

সম্পাদনা: ভুলে গেছেন যে এই কোডের জন্য ফোর্টরান 90 প্রয়োজনীয়, 77 77 তম কলামে কোডের শুরু হওয়া দরকার। অন্যদিকে, ভাষাটি একটি সংবেদনশীল, একটি সহজ উন্নতির অনুমতি দেয়। লুপ কাউন্টারগুলি হ'ল Jএবং Lএগুলি আউটপুট স্ট্রিংয়ের প্রথম দুটি বর্ণ যা স্পষ্টভাবে ফোর্টরানের দ্বারা পূর্ণসংখ্যা হিসাবে ঘোষণা করা হয়েছিল।


3

পার্ল, 1089 922

দেখা যাচ্ছে যে 42 58 টি পদক্ষেপে ASCII মানগুলি মুদ্রণ করা এই পদ্ধতির সাথে সর্বনিম্ন স্কোর দেয়:

print chr$_*58%95+32for 0..94

আউটপুট:

 Z5oJ%_:tO*d?yT/iD~Y4nI$^9sN)c>xS.hC}X3mH#]8rM(b=wR-gB|W2lG"\7qL'a<vQ,fA{V1kF![6pK&`;uP+e@zU0jE

1
print chr$_*42%95+32for 0..94ইতিমধ্যে 925 এর স্কোর অর্জন করেছে এবং 42 সম্ভবত আর সর্বোত্তম নয়।
ডেনিস

ধন্যবাদ @ ডেনিস - আপনি যেভাবে লুপ লিখতে পারেন তা আমার কোনও ধারণা ছিল না।
চটজলদি ossifrage

আপনি linefeeds সঙ্গে স্পেস প্রতিস্থাপন পারেন, print chr$_*63%95+32for 31..125এর 799. একটি স্কোর অর্জন করা
ডেনিস

3

জাভাস্ক্রিপ্ট, 3169 2548 2144 2104 2071 1885 1876 1872

কোড

t=''
i=S=95
while(i--)t+=String.fromCharCode(i*2291%S-
-32)
alert(t)

আউটপুট

ti^SH=2'{peZOD9.#wlaVK@5*~sh]RG<1&zodYNC8-"vk`UJ?4)}rg\QF;0%yncXMB7,!uj_TI>3(|qf[PE:/$xmbWLA6+ 

কি v+অংশ (v,i)=>v+i*3%95+32প্রয়োজনীয়? আমার কাছে মনে হচ্ছে 0এটি অ্যারে থেকে ভরাট হওয়ায় এটি প্রতিটি সময়ই যুক্ত হয় 0....
জিরিক

পছন্দ করুন অনুকূলকরণের ক্ষেত্রে খুব বেশি মনোনিবেশ করেন নি, যেহেতু আমি একটি বিকল্প পদ্ধতিতে কাজ করছি যা যাইহোক ছোট হয়ে যায় ended ধন্যবাদ! =)
Mwr247

for(w=95;w-->0;)হতে পারে for(w=95;w--;), কারণ 0মিথ্যা এবং 1, 2, 3...সত্যবাদী।
জুন 19

@UndefisedFunction বাহ, আমি কীভাবে তা ভাবিনি! আপনি সবেমাত্র আমার সেরা থেকে 56 পয়েন্ট
মুণ্ডন করে

সহজ উন্নতি: পৃথক বক্তব্য পৃথক করতে সেমিকোলনের পরিবর্তে নিউলাইনগুলি ব্যবহার করুন।
নিউলাইনগুলি

3

পাইথন 2, 72 বাইট (3188) 116 বাইট (1383) (1306) (1303)

যোগদানের কৌশলটির জন্য @ ফ্রাইআম দ্য এজম্যানকে ধন্যবাদ;)

ধন্যবাদ @ নিম, (আমি কি টেক্সটটি ভুল লিখেছি?: পি)

ধন্যবাদ @ ম্যাথিয়াস এটিঞ্জার

n='nr i(a)2:]o[c=fh1+t"3egj,p.7'
a=[chr(r)for r in range(32,127)if not chr(r)in n]
print n+"".join(a[::2]+a[1::2])

আউটপুট:

 nr<blank>i(a)2:]o[c=fh1+t"3egj,p.7!$&*/469<?ACEGIKMOQSUWY\_bkmsvxz|~#%'-058;>@BDFHJLNPRTVXZ^`dlquwy{}

4
a=map(chr,range(32,172))এবং"".join(a[::2]+a[1::2])
FryAmTheEggman

1
আমি মনে করি আপনি ;নতুন
লাইনের

1
আপনার সাথে শুরু করে 3 পয়েন্ট আউট পেতে পারেন n='nr i(a…পরিবর্তেn=' nri(a…
409_Conflict

3

পিএইচপি, 1217 1081

কোড:

for(;$T!=T;$T=($T+52)%95)echo chr(32+$T);

কারণ ভেরিয়েবলগুলি আরম্ভ করা হয়নি, এটি চলমান সম্পর্কিত নোটিশগুলি দমন করতে হবে (পিএইচপি অভিযোগ করে তবে কার্যকর করা চালিয়ে যায় এবং প্রসঙ্গে উপযুক্ত একটি ডিফল্ট মান ব্যবহার করে; 0এই ক্ষেত্রে):

$ php -d error_reporting=0 remapping-ascii.php

এর আউটপুট:

 T)]2f;oDxM"V+_4h=qFzO$X-a6j?sH|Q&Z/c8lAuJ~S(\1e:nCwL!U*^3g<pEyN#W,`5i>rG{P%Y.b7k@tI}R'[0d9mBvK

মন্তব্য:

  • আউটপুট একটি সাদা স্থান ( chr(32)) দিয়ে শুরু হয় ;
  • কোড শ্বেত স্থান মুদ্রণ করে তারপরে প্রতিটি 52 তম অক্ষরকে পরিধি জুড়ে জড়িয়ে দেয়;
  • 52সম্ভাব্য অফসেটের পুরো পরিসীমা (1..94) অনুসন্ধান করে ম্যাজিক নম্বরটি "আবিষ্কার করা" হয়েছিল; 1 তাদের এএসসিআইআই কোডের আরোহী ক্রমে মুদ্রণযোগ্য অক্ষরের তালিকা তৈরি করে, 94 বিপরীত ক্রমে তালিকাটি তৈরি করে, উভয়ই খারাপ; 5 এবং 19 এর গুণক (95 এর বিভাজন) সংক্ষিপ্ত চক্র উত্পাদন করে এবং মানগুলির পুরো পরিসীমাটি কভার করে না (এছাড়াও খারাপ);
  • 52যাদু বলে মনে হচ্ছে; এটি এই কোডের জন্য সেরা অফসেট; তবে কোডের কিছু পরিবর্তনের জন্য এটিও সেরা (যা কিছুটা বড় স্কোর তৈরি করে); বৈচিত্র আমি চেষ্টা: ব্যবহার while()পরিবর্তে for(), ব্যবহার $f++, $f--বা --$fপরিবর্তে ++$fপ্রায় operands অদলবদল <এবং +অপারেটরদের; পরিবর্তনের আলিঙ্গন $Tমধ্যে 32+$T;
  • ভেরিয়েবলের নামগুলি ( $Tএবং $f) আউটপুট থেকে প্রথম অক্ষর;
  • আমি আরম্ভ করার চেষ্টা $Tসঙ্গে 4বা 11কিন্তু স্কোর খারাপ ছিল; দিয়ে শুরু আউটপুট প্রথম অক্ষর 4তোলে $; এটি একটি পিএইচপি উত্স কোডে সর্বাধিক ব্যবহৃত চরিত্র; সামনে 11এনেছে +; $এবং +এই কোডটিতে সর্বাধিক ব্যবহৃত অক্ষর।

কোডটি, পরীক্ষাগুলি, বর্ধিত পরিবর্তনগুলি আমি এই সমাধানে পৌঁছা পর্যন্ত চেষ্টা করেছি এবং স্ক্রিপ্ট যা সমস্ত সম্ভাব্য পদক্ষেপের মান ( 52সেরা পদক্ষেপ হিসাবে অনুমোদনকারী সরবরাহকারী ) পরীক্ষা করেছে তা গিথুবে পাওয়া যাবে ।


2

ফুরিয়ার, 1236

মূলত আমার বিবিসিবি প্রোগ্রামের রূপান্তর

32~N127(Na^^~N{128}{33~N}N)

আউটপুট

 "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~!#%')+-/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{}

0

এডাব্লুকে , 49 বাইট, স্কোর: 1755

BEGIN{for(f=82;++f<178;)printf"%c",(2*f-1)%95+32}

এটি অনলাইন চেষ্টা করুন!

কেবলমাত্র প্রতিটি অন্যান্য অক্ষর মুদ্রণ করে তারপরে শূন্যস্থান পূরণ করা শুরু করে। প্রথম অক্ষর মুদ্রিত হয় একটি f। আমি বিপরীত ক্রমে মুদ্রণের চেষ্টা করেছি, কিন্তু এটি স্কোরকে আরও বাড়িয়েছে। অন্যান্য প্যাটার্নগুলি কেবল গুণক এবং লুপের মানদণ্ড পরিবর্তন করে সম্ভব।


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.