খাঁটি উত্স - - এমন আকারের প্রোগ্রাম যা 0 থেকে 9 এর মধ্যে অঙ্কগুলি আউটপুট করে


21

0 থেকে 9 সংখ্যার জন্য এখানে 5 বাই 7 ফন্টের পিক্সिलेটেড:

.███.
█...█
█...█
█...█
█...█
█...█
.███.

..█..
███..
..█..
..█..
..█..
..█..
█████

.███.
█...█
....█
...█.
..█..
.█...
█████

.███.
█...█
....█
..██.
....█
█...█
.███.

█..█.
█..█.
█..█.
█████
...█.
...█.
...█.

█████
█....
█....
.███.
....█
█...█
.███.

.███.
█...█
█....
████.
█...█
█...█
.███.

█████
....█
....█
...█.
...█.
..█..
..█..

.███.
█...█
█...█
.███.
█...█
█...█
.███.

.███.
█...█
█...█
.████
....█
█...█
.███.

(এই হরফ এবং এই পৃষ্ঠা সম্ভবত অনেক সুন্দর দেখতে পাবেন যদি আপনি আপনার ব্রাউজারের কনসোলে বা URL বারে দ্বারা পূর্বে সমাধান এই JavaScipt কোড চালানো হবে javascript:: $('#question pre,.answer pre').css('line-height',1)।)

দুটি সমান আকারের আয়তক্ষেত্রাকার ব্লক লিখুন, একটি .উপরের ফন্টে ফাঁকা স্থানগুলি ( ) উপস্থাপন করুন এবং একটি ভরাট স্থানের প্রতিনিধিত্ব করুন ( )।

এই দুটি পাঠ্য ব্লক যখন উপরের অঙ্কগুলির একটি হিসাবে একই 5 × 7 প্যাটার্নে সাজানো হয়, তারপরে ফলস্বরূপ বৃহত পাঠ্য ব্লকটি এমন একটি প্রোগ্রাম হওয়া উচিত যা সেই অঙ্কটি স্টাডাউটে মুদ্রণ করে। এটি সমস্ত 10 সংখ্যার জন্য কাজ করা উচিত।

উদাহরণস্বরূপ, যদি আপনার .পাঠ্য ব্লকটি ছিল

---
'''

এবং আপনার পাঠ্য ব্লক ছিল

ABC
123

তারপর প্রোগ্রাম

---ABCABCABC---
'''123123123'''
ABC---------ABC
123'''''''''123
ABC---------ABC
123'''''''''123
ABC---------ABC
123'''''''''123
ABC---------ABC
123'''''''''123
ABC---------ABC
123'''''''''123
---ABCABCABC---
'''123123123'''

আউটপুট করা উচিত 0। একইভাবে, প্রোগ্রাম

------ABC------
''''''123''''''
ABCABCABC------
123123123''''''
------ABC------
''''''123''''''
------ABC------
''''''123''''''
------ABC------
''''''123''''''
------ABC------
''''''123''''''
ABCABCABCABCABC
123123123123123

আউটপুট করা উচিত 1, এবং তাই জন্য প্রোগ্রাম পর্যন্ত 9

আপনি ডিজিটাল আকারের প্রোগ্রামগুলি তৈরি করতে এই স্ট্যাক স্নিপেটটি ব্যবহার করতে পারেন:

<style>textarea{font-family:monospace;}</style><script>function go(){var t=parseInt(document.getElementById("digit").value[0]);if(isNaN(t))return void alert("Invalid digit.");for(var e=document.getElementById("empty").value.split("\n"),n=document.getElementById("filled").value.split("\n"),l=[],o=0;o<7*e.length;o++){l[o]="";for(var d=0;5>d;d++)l[o]+=font[t][Math.floor(o/e.length)][d]?n[o%n.length]:e[o%e.length]}document.getElementById("output").value=l.join("\n")}font=[[[0,1,1,1,0],[1,0,0,0,1],[1,0,0,0,1],[1,0,0,0,1],[1,0,0,0,1],[1,0,0,0,1],[0,1,1,1,0]],[[0,0,1,0,0],[1,1,1,0,0],[0,0,1,0,0],[0,0,1,0,0],[0,0,1,0,0],[0,0,1,0,0],[1,1,1,1,1]],[[0,1,1,1,0],[1,0,0,0,1],[0,0,0,0,1],[0,0,0,1,0],[0,0,1,0,0],[0,1,0,0,0],[1,1,1,1,1]],[[0,1,1,1,0],[1,0,0,0,1],[0,0,0,0,1],[0,0,1,1,0],[0,0,0,0,1],[1,0,0,0,1],[0,1,1,1,0]],[[1,0,0,1,0],[1,0,0,1,0],[1,0,0,1,0],[1,1,1,1,1],[0,0,0,1,0],[0,0,0,1,0],[0,0,0,1,0]],[[1,1,1,1,1],[1,0,0,0,0],[1,0,0,0,0],[0,1,1,1,0],[0,0,0,0,1],[1,0,0,0,1],[0,1,1,1,0]],[[0,1,1,1,0],[1,0,0,0,1],[1,0,0,0,0],[1,1,1,1,0],[1,0,0,0,1],[1,0,0,0,1],[0,1,1,1,0]],[[1,1,1,1,1],[0,0,0,0,1],[0,0,0,0,1],[0,0,0,1,0],[0,0,0,1,0],[0,0,1,0,0],[0,0,1,0,0]],[[0,1,1,1,0],[1,0,0,0,1],[1,0,0,0,1],[0,1,1,1,0],[1,0,0,0,1],[1,0,0,0,1],[0,1,1,1,0]],[[0,1,1,1,0],[1,0,0,0,1],[1,0,0,0,1],[0,1,1,1,1],[0,0,0,0,1],[1,0,0,0,1],[0,1,1,1,0]]]</script><textarea id='empty' rows='8' cols='32' placeholder='empty space text block...'></textarea><textarea id='filled' rows='8' cols='32' placeholder='filled space text block...'></textarea><br>Digit <input id='digit' type='text' value='0'> <button type='button' onclick='go()'>Generate</button><br><br><textarea id='output' rows='16' cols='64' placeholder='output...' style='background-color: #eee;' readonly></textarea>

বিস্তারিত

  • 10 টি বড় টেক্সট ব্লক প্রোগ্রামের কোনওটিরই ইনপুট দরকার নেই। কেবলমাত্র একক অঙ্কের সাথে একটি alচ্ছিক পেছনের নতুন লাইনের আউটপুট। Stdout বা একটি অনুরূপ বিকল্প আউটপুট।
  • প্রোগ্রামগুলির কোনওই তাদের নিজস্ব উত্স কোডটি পড়তে বা অ্যাক্সেস করতে পারে না। একটি কঠোর মত এই আচরণ quine চ্যালেঞ্জ।
  • পাঠ্য ব্লকগুলি অভিন্ন নাও হতে পারে এবং ননজারো মাত্রা থাকতে হবে।
  • পাঠ্য ব্লকগুলিতে লাইন টার্মিনেটর ব্যতীত অন্য কোনও অক্ষর থাকতে পারে ।
  • 10 টি প্রোগ্রাম অবশ্যই একই ভাষায় লিখিত পূর্ণাঙ্গ প্রোগ্রাম হতে হবে, সেগুলি আরপিএল স্নিপেট নয়। আপনি allyচ্ছিকভাবে তাদের সবার বা একটিওর জন্য একটি নতুন ট্রেলিং যোগ করতে পারেন।

স্কোরিং

আপনার স্কোরটি আপনার পাঠ্য ব্লকগুলির মধ্যে একটির (প্রশস্ত বার উচ্চতা) height (এগুলি একই আকারের তাই উভয় ব্লক গণনা করার কোনও অর্থ নেই)) উদাহরণটির ক্ষেত্রফল 6 এর স্কোরের জন্য 3 বাই 2।

সর্বনিম্ন স্কোর জয়। সম্পর্কের ক্ষেত্রে, সর্বাধিক ভোট দেওয়া উত্তর জিততে পারে।


আপনার কোডে, আপনি এটিকে অনেক উন্নতি করতে পারেন। var t=parseInt(document.getElementById("digit").value[0]);if(isNaN(t))return void alert("Invalid digit.");হিসাবে লিখিত হতে পারে var t=document.getElementById("digit").value[0]/1;if(t!=t)return void alert("Invalid digit.");, যা একই তবে খাটো। এতে আরও কয়েকটি জিনিস আপনি উন্নত করতে পারেন তবে এটি দুর্দান্ত দেখাচ্ছে!
ইসমাইল মিগুয়েল

4
@ ইসমাইল মিগুয়েল টিবিএইচ এটি একটি লাইনে পাওয়ার জন্য আমি এটি একটি জেএস মিনিফায়ারের মাধ্যমে রেখেছি। এটি কখনই গল্ফ করা উচিত ছিল না।
ক্যালভিনের

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

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

3
text blocks may not be identicalসত্যি? আমি দেখতে চাই যে কেউ এই নিয়মটি ভেঙে দুটি অভিন্ন কোডব্লক দিয়ে জাদুকরভাবে বিভিন্ন অঙ্ক ফিরিয়ে দেয়, যখন প্রতিটি সংখ্যা ঠিক একই কোড হয় ^^
ফ্যালকো

উত্তর:


13

সিজেম, 20 18 14 13 12 * 1 = 12

এটি অনলাইনে ব্যবহার করে দেখুন: 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9

খালি ব্লক

];BG*K+ :BD%

সলিড ব্লক

];B9+33%:B4/

ব্যাখ্যা

আমি Sp3000 এর সমাধানের জন্য অনুরূপ কৌশল ব্যবহার করেছি , যেমন প্রতিটি ব্লক একটি ভেরিয়েবলের উপর একটি গুন, একটি সংযোজন এবং (সম্ভবত) একটি মডিউলো অপারেশন করে এবং মানটি ফিরে সঞ্চয় করে। একটি অনুকূল সমাধান সন্ধান করতে, আমি ভাল পুরাতন ব্রুট ফোর্স ব্যবহার করেছি। আমি একটি প্রোগ্রাম লিখেছিলাম যা সমস্ত সম্ভাব্য প্রাথমিক মানগুলির (সিজেএম ভেরিয়েবলের প্রাথমিক মান) এবং বহু মিলিয়ন লক্ষ লক্ষ সম্ভাব্য জোড় ট্রান্সফর্মেশন ফাংশন যেমন প্রতিটি ডিজিট ফর্মের জন্য আউটপুট অনন্য। তারপরে, আমি ফলাফলগুলি ফিল্টার করেছিলাম যেমন একটি খালি ব্লকে শেষ হওয়া ডিজিট ফর্মগুলির চূড়ান্ত ফলাফল, যার মধ্যে 8 টি রয়েছে, অন্য কোনও গুণ, যোগ এবং মডুলো সূত্রের মাধ্যমে সঠিক ফলাফলটিতে ম্যাপ করা যেতে পারে।

কয়েক দিনের সিপিইউ অনুসন্ধানের পরে, এখন পর্যন্ত সেরা ফলাফলটি 12 এর আকারে নেমে গেছে! এই সমাধানটি একটি মান দিয়ে শুরু হয় 11, খালি ব্লক রূপান্তর ফাংশনটি হয় x * 16 + 20, খালি ব্লক ফলাফল ফাংশনটি হয় x % 13, সলিড ব্লক ট্রান্সফর্মেশন ফাংশন হয় (x + 9) % 33এবং শক্ত ব্লক রেজাল্ট ফাংশন হয় x / 4


23

> <> (মাছ) , 5 * 10 = 50

খালি ব্লক

   \   !9 
4n;    n/ 
1n;\      
       \  
0n;n7\\\  

সলিড ব্লক

   \; n8/ 
     /!/!v
     \  ;6
3n;\ ! /nn
2n;n5<  8;

এই কোডটিতে কোনও যুক্তি বা পাটিগণিত নেই যা কেবলমাত্র <<> এর 2 ডি নির্দেশিকা পয়েন্টার (আইপি) এর 'মিরর' ( /এবং \) এবং দুটি 'তীর' সহ স্থির পুনঃনির্দেশ ব্যবহার করে ( <এবংv ) । কেবলমাত্র অন্য প্রবাহ-নিয়ামক হ'ল 'ট্রাম্পোলিন' ( !) যা পরবর্তী অক্ষরের মধ্য দিয়ে যায় j

পূর্ব দিকে শীর্ষে বাম কোণ থেকে শুরু করে আইপি। কিছু পুনর্নির্দেশের পরে এটি একটি সংখ্যায় পৌঁছায় এটি স্ট্যাকের উপরে ধাক্কা দিয়ে প্রিন্ট করা হয় nএবং প্রোগ্রামটি সমাপ্ত হয়;

প্রোগ্রাম প্রবাহ

একটি ব্লক আইপিটি কোন বিন্দুটি এসেছিল এবং রাষ্ট্রের ভিত্তিতে এটি নির্দেশ করে যে কোন দিকটি নির্দেশকটি প্রকাশ করতে হবে (কোন ব্লকটি পরবর্তী সময়ে কার্যকর করা উচিত) এবং কোন সঠিক অবস্থানে রয়েছে তা থেকে প্রোগ্রামটির বর্তমান অবস্থাকে 'স্বীকৃতি' দেয় পয়েন্টারটি বাম হওয়া উচিত (যা নতুন রাষ্ট্র হবে)। অবশ্যই ব্লকগুলি কোনও যুক্তিই করে না এই সমস্ত আচরণটি পুনঃনির্দেশকারীদের থেকে আসে।


আমি এই মত একটি উত্তর আশা ছিল। খাঁটি যাদু
agগলভি_আত্তনাম

11

সিজেম, 23 22 19 * 1 = 19

খালি ব্লক:

];G)B%:G"73860594"=

সলিড ব্লক:

];GW*B+3*D%:G    7-

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

আমি গাণিতিক কাকতালীয় এবং ব্যর্থতার সাথে ভাগ্যবান হওয়ার চেষ্টা করছি, সুতরাং মার্টিনের সমাধান থেকে স্বতন্ত্রতার ম্যাপিংয়ের জন্য এখানে কিছুটা ভিন্ন পদ্ধতি রয়েছে।

১ with দিয়ে শুরু করুন। খালি ব্লকগুলি ১ যোগ করে এবং মডুলো ১১ গ্রহণ করে। সলিড ব্লকগুলি -1 দ্বারা গুণিত হয়, 11 যোগ করে 3 দ্বারা গুণিত হয় তারপর মডুলো 13 নিয়ে যায় This এই যাদুটি মানচিত্রগুলি 03456789(খালি ব্লকের শেষে শেষ হওয়া অঙ্কগুলি) 41753026যা আমরা সূচী ব্যবহার করি ডান পেতে। 12সুন্দরভাবে মানচিত্র 89, যা আমরা 7 বিয়োগ করে প্রতিকার করতে পারি।


7

সিজেম, 28 27 x 1 = 27

এখানে একটি শুরু।

খালি ব্লক

U):U;                       

সলিড ব্লক

];U):UW+:WF%"1302986_7_54"=

এটি এখানে পরীক্ষা করুন।আমি কোডের সাথে আপনাকে পারমালিঙ্ক দিতে পারি না, কারণ কোডটি অনেক দীর্ঘ, সুতরাং আপনাকে চ্যালেঞ্জের স্নিপেট থেকে ম্যানুয়ালি এটি অনুলিপি করতে হবে।

ধারণাটি হ'ল আকারটি নিম্নরূপ:

  • প্রতিটি "পিক্সেল" ইনক্রিমেন্টের জন্য একটি কাউন্টার U
  • প্রতিটি কালো "পিক্সেল" এর Uজন্য একটি চলমান মোটে যোগ করুন W(যা শুরু হয় -1)। শেষে, আমরা এই মডুলোটি নিই 15, যা অনন্য ফলাফল দেয় যা একটি অনুসন্ধান স্ট্রিংয়ের সূচকগুলিতে ব্যবহার করে।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.