05AB1E এ গল্ফ করার জন্য টিপস


28

আপনার জন্য কি কোন পরামর্শ আছে মধ্যে ing 05AB1E , দ্বারা নির্মিত একটি golfing ভাষা আদনান ?

আপনার টিপস কমপক্ষে 05AB1E এর জন্য নির্দিষ্ট হওয়া উচিত should

দয়া করে উত্তর প্রতি একটি টিপ পোস্ট করুন।


2
পর্যালোচনা থেকে: টিপসের প্রশ্নগুলি বিষয়বস্তু।
mbomb007

উত্তর:


20

যেহেতু এটি 05AB1E এর গিটহাব পৃষ্ঠাগুলিতে উইকির অংশ ছিল না (আমার মনে হয় এটি হওয়া উচিত), আমি এখন এটি এখানে যুক্ত করব যে আমি নিজেই এটি আরও ভাল করে বুঝতে পারি।

অভিধানটি কীভাবে ব্যবহার করবেন?

05AB1E এর নীচে নিম্নলিখিত শব্দগুলি রয়েছে ex ডেক্সার অভিধান ফাইলটি এটির সমস্ত শব্দ ধারণ করে। তবে কীভাবে আমরা এই অভিধানে শব্দগুলি অ্যাক্সেস করব? শব্দটি "testing"উদাহরণ হিসাবে নেওয়া যাক :

"testing"অভিধান ফাইলের 1453 সারিতে পাওয়া যাবে। যেহেতু প্রথম দুটি লাইন শব্দ নয়, এবং আমাদের 0-সূচক শব্দটি প্রয়োজন,
তাই আমরা 3 টি বিয়োগ করি So সুতরাং, এখন আমাদের সূচক ( 1450) রয়েছে, তবে কীভাবে এটি ব্যবহার করবেন?

আমরা খুলুন এবং সঙ্গে একটি সংকুচিত স্ট্রিং শুরু । তারপরে আমরা info.txt ফাইলের দ্বিতীয় কলামটি দেখি । (তাই 00 হয়; 01 হয়; ইত্যাদি)
ক্ষেত্রে "testing"এর মানে î(14) এবং »(50)।

সংক্ষিপ্ত স্ট্রিং এর জন্য "testing": “ এটি অনলাইনে চেষ্টা করে দেখুন। কোডের প্রায় সমস্ত 05AB1E টুকরাগুলির মতো, আপনি যদি স্ট্রিংটিতে অ্যাক্সেস না করেন তবে অনুকরণটি optionচ্ছিক , সুতরাং এই ক্ষেত্রে কাজ না করে

কিছু বিষয় লক্ষণীয়:

সমস্ত অক্ষর যাদের ইনফটেক্সট ফাইলটিতে কোনও সূচক নেই সেগুলি ব্যবহার করা যেতে পারে। এটি sএকবচনের শব্দের পরিবর্তে বহুবচন আউটপুট যুক্ত করতে বা ,.?!উদাহরণস্বরূপ বিরামচিহ্ন ব্যবহার করার জন্য দরকারী ।
ÿ(স্ট্রিং-ইন্টারপোলেশন) আপনি যখন স্ট্রিংয়ের মধ্যে স্ট্যাক থেকে মান সন্নিবেশ করতে চান তখনও ব্যবহার করা যেতে পারে।
দ্রষ্টব্য: প্রতিটি looseিলে .ালা চরিত্রের যে তথ্য.টেক্সট ফাইলটিতে কোনও সূচক নেই তার নীচে সংক্ষেপণের জন্য শব্দ হিসাবে গণনা করা হয়।

বিভিন্ন ধরণের সংক্ষেপিত স্ট্রিং আপনি ব্যবহার করতে পারেন:

  • ': একটি একক সংকুচিত শব্দটি যেমন নিন (কোনও অনুসরণের 'প্রয়োজন নেই) - 'î»: "পরীক্ষা"
  • : স্পেস ডিলিমিটার দিয়ে দুটি সংকুচিত শব্দ নেয় (কোনও অনুমানের প্রয়োজন নেই) - „î»î»: "টেস্টিং টেস্টিং"
  • : স্পেস ডিলিমিটার দিয়ে তিনটি সংকুচিত শব্দ নেয় (কোনও অনুমানের প্রয়োজন নেই) - …î»î»î»: "টেস্টিং টেস্টিং টেস্টিং"
  • : স্পেস ডিলিমিটার দিয়ে সংকুচিত স্ট্রিং নিন - “î»î»“: "টেস্টিং টেস্টিং"
  • : সংকুচিত স্ট্রিংটি অন্তর্ভুক্ত স্থান ছাড়াই যেমন নিন - ’î»î»’: "টেস্টিং টেস্টিং"
  • : স্পেস ডিলিমিটার সহ শিরোনাম-ক্ষেত্রে সংকুচিত স্ট্রিং নিন - ”î»î»”: "টেস্টিং টেস্টিং"
  • : ‘î»î»‘স্প্রেস ডিলিমিটার সহ কমপ্রেস স্ট্রিংকে পুরো বড় হাতের অক্ষরে নিয়ে যান - : "টেস্টিং টেস্টিং"

শব্দের স্পেস-সীমাবদ্ধ ইনপুটটির উপর ভিত্তি করে সংকুচিত স্ট্রিংটি পেতে এখানে একটি কার্যকর প্রোগ্রাম:

'“? lAð«Ã#¸˜ vyU "€‚ƒ„…†‡ˆ‰Š‹ŒŽ•–—™š›œžŸ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîï" Dâ vy"“ÿ“".V XlQi y?1#] '“,

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

এই প্রোগ্রামটি করবে:

  1. ইনপুটটিকে ছোট হাতের অক্ষর হিসাবে ধরুন, কোনও বর্ণমালার অক্ষর (শূন্যস্থান ব্যতীত) সরিয়ে ফেলুন এবং তারপরে স্পেস ( lAð«Ã#) দ্বারা শব্দগুলি বিভক্ত করুন বা কেবলমাত্র একটি শব্দ শব্দের ইনপুট করা থাকলে তালিকায় শব্দগুলি গুটিয়ে রাখুন ( ¸˜)
  2. প্রতিটি শব্দের উপর লুপ ( vyU)
  3. তারপরে অভিধানের ( "€...ï"Dâvy) থেকে প্রতিটি সংকুচিত শব্দের উপর একটি অভ্যন্তরীণ লুপ রয়েছে যা এটি 05AB1E প্রোগ্রাম হিসাবে চালানোর চেষ্টা করবে ( "“ÿ“".V)
  4. এবং এটি যদি বর্তমান শব্দের সমান হয় তবে এটি এটিকে মুদ্রণ করবে এবং ভিতরের লুপটি ভেঙে দেবে XlQiy?1#

একটি ইনপুট সঙ্গে good bye worldআউটপুট তাই হবে “‚¿Þ¡‚ï“এটি অনলাইনে চেষ্টা করুন।

দ্রষ্টব্য: আপনাকে এখনও দেখতে হবে যে এই জেনারেটরের কাজ করার জন্য অভিধানে শব্দটি বিদ্যমান রয়েছে কিনা এবং এটি কোনও বিশেষ অক্ষর বা বহুবচন শব্দগুলিকে উপেক্ষা করবে। অভিধানে ঠিক একই শব্দগুলি পাওয়া যাবে words

এখানে একটি উদাহরণ যেখানে আমি …Ÿ™‚ï!"হ্যালো ওয়ার্ল্ড!" স্ট্রিংয়ের জন্য ব্যবহার করি ! এবং ’‚¿Þ¡ ÿ ‚ï!’"বিদায় ÿ বিশ্ব!" স্ট্রিংয়ের জন্য। স্পেস এবং বিস্ময়কর চিহ্নটি কীভাবে ব্যবহৃত হয় তা নোট করুন, কারণ তথ্য.টিএসটিএসএস ফাইলে তাদের সূচক নেই। এছাড়াও, এটি ÿ"নিষ্ঠুর" cruelোকাতে ব্যবহার করে যা স্ট্যাকের শীর্ষে ছিল, যা দুর্ভাগ্যক্রমে অভিধানের অংশ ছিল না (তবে এখনও নীচের অংশে পদ্ধতিটি ব্যবহার করে সংকুচিত হয়েছিল)।

স্ট্রিংগুলি অভিধানের অংশ না হয়ে সংকুচিত করবেন?

যদিও ওয়ার্ডস.এক্স ডিকশনারি ফাইলটি বেশ বড় (10,000 শব্দগুলি হুবহু হতে পারে), এমনটি হতে পারে যে আপনার এমন একটি শব্দ প্রয়োজন যা এটির অংশ নয়, বা একটি স্ট্রিং যা কেবল প্লেইন গিব্বারিশ। সুতরাং তাদের পাশাপাশি সংকোচনের একটি উপায় আছে?
অবশ্যই এটি ব্যবহার করে রয়েছে .•যা একটি সংকুচিত বেস -২৫৫ বর্ণমালা ভিত্তিক স্ট্রিং। দ্রষ্টব্য: এই পদ্ধতিটি কেবল ছোট বর্ণমালা এবং স্পেসগুলির অক্ষরের জন্য ব্যবহার করা যেতে পারে।

একটি শব্দ / স্ট্রিংকে সংকুচিত বেস -255 বর্ণমালা ভিত্তিক স্ট্রিংয়ে রূপান্তর করতে এখানে একটি কার্যকর প্রোগ্রাম রয়েছে:

vAyk})> 27β 255B ".•ÿ•"

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

এই প্রোগ্রামটি উপরে যা করে তা হ'ল:

  • vAyk})>: ইনপুটটির স্বতন্ত্র বর্ণগুলির 1-সূচিযুক্ত বর্ণমালা সূচকগুলি নিন, শূন্যস্থানগুলি 0 0 হয়ে উঠবে
  • 27β: এই সূচকগুলিকে বেস 27 থেকে একক সংখ্যায় রূপান্তর করুন
  • 255B: 05AB1E এর নিজস্ব কোড পৃষ্ঠা ব্যবহার করে এই সংখ্যাটি বেস -255 এ রূপান্তর করুন
  • ".•ÿ•": এই সংকুচিত স্ট্রিংয়ের আগে একটি অগ্রণী .•এবং পিছনে স্থান দেয়

এখানে একটি উদাহরণ উত্তর যেখানে @ কলডো.•zíΘ• "হংস" শব্দটি সংক্ষেপে ব্যবহার করতে ব্যবহার করেছেন ।

কিভাবে বড় পূর্ণসংখ্যা সংকুচিত করতে?

ধরা যাক আমরা কোনও কিছুর জন্য খুব বড় সংখ্যা ব্যবহার করতে চাই, তবে এটি পাউ-গণনা দ্বারা সত্যই পুনরুদ্ধার করা যায় না। উদাহরণস্বরূপ, আসুন আমরা যাক 18238098189071058293যে কারণেই বৃহত সংখ্যায় অ্যাক্সেস করতে চাই ।

এই ক্ষেত্রে আমরা বিন্যাসে সংখ্যার সংকোচনের জন্য নেতৃস্থানীয় এবং অনুসরণযোগ্য উভয়টি ব্যবহার করতে পারি [1-9][0-9]+
উপরের উদাহরণ নম্বর হয়ে যাবে •15Y₁Ò'Θpc•এটি অনলাইনে চেষ্টা করুন। আবার, সংকুচিত অভিধানের স্ট্রিংয়ের মতোই, অনুসরণটি optionচ্ছিকভাবে সরানো যেতে পারে

Allyচ্ছিকভাবে, যখন পূর্ণসংখ্যাটি যথেষ্ট ছোট হয় তাই কেবলমাত্র 2 টি সংক্ষেপিত অক্ষর ব্যবহার করতে হয়, আমরা Žপরিবর্তে ব্যবহার করতে পারি , এক্ষেত্রে এটি বন্ধ করার জন্য আমাদের একটি ট্রেইলিং বাইটের প্রয়োজন হবে না এবং 4 এর পরিবর্তে পূর্ণসংখ্যা 3 বাইটে সংকুচিত করা হয় For উদাহরণস্বরূপ, পূর্ণসংখ্যার 13562ফলাফল হতে পারে •rl•তবে এটি কেবল দুটি অক্ষর ব্যবহার করে, এটি Žrlপরিবর্তে হতে পারে ।

এছাড়াও, পরিসরের নম্বরগুলি [101, 355]2 বাইটে আরও সংক্ষিপ্ত করা যেতে পারে Ƶ05AB1E এর কোডপেজ থেকে অতিরিক্ত অক্ষর ব্যবহার করে । উদাহরণস্বরূপ, Ƶ–পূর্ণসংখ্যার জন্য ব্যবহার করা যেতে পারে 250এখানে সমস্ত উপলব্ধ সংখ্যার একটি ওভারভিউ। এই অক্ষরগুলি বেস -255 থেকে বেস -10 এ রূপান্তরিত হয় এবং তারপরে 101 যোগ করা হয় (যেহেতু পরিসরে সংখ্যাটি [0,100]ইতিমধ্যে 1 বা 2 বাইট)।

কীভাবে এই হয় 15Y₁Ò'Θpcএবং rlকে সৃষ্টি করেছে? খুব সাধারণ, 05AB1E এর নিজস্ব কোডপেজ ব্যবহার করে নম্বরটি বেস -255 তে রূপান্তরিত হয়। সুতরাং আপনি নিম্নলিখিত প্রোগ্রাম ব্যবহার করতে পারেন সংকুচিত সংখ্যা, যার জন্য তখন ব্যবহার করবে পেতে Ƶ., Ž..অথবা •...•সংকুচিত পূর্ণসংখ্যা আকারের উপর নির্ভর করে:

101 355Ÿså i 101-255B"Ƶÿ" ë 255B Dg2Qi "Žÿ" ë "•ÿ•"

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

এখানে একটি উদাহরণ উত্তর যেখানে @Emigna ব্যবহার •3Èñ•পূর্ণসংখ্যা জন্য 246060

পূর্ণসংখ্যা তালিকাগুলি কীভাবে সংকুচিত করবেন?

কখনও কখনও আপনি একক সংখ্যার পরিবর্তে পূর্ণসংখ্যার একটি সম্পূর্ণ তালিকা সংকোচিত করতে চান। উদাহরণস্বরূপ, আসুন আমরা [5,93,17,83,4,44,32,19,4,45,83,90,0,14,3,17,17,81]যেকোন কারণে তালিকাটি চাই বলে মনে করি । এই ক্ষেত্রে, আমরা পরিবর্তে নিম্নলিখিতটি ব্যবহার করতে পারি: •4βŸ{©£MG]q‡dZΘp•94в এটি অনলাইনে চেষ্টা করুন।

এই সংক্ষিপ্ত নম্বর এবং বেসটি আমরা রূপান্তর করতে চাই উভয়ই তৈরি করতে এখানে একটি কার্যকর প্রোগ্রাম:

Z>© β 255B ®s"•ÿ•ÿв"

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

এই প্রোগ্রামটি উপরে যা করে তা হ'ল:

  • Z>: ইনপুট-তালিকার সর্বাধিক নম্বর 1 পান ( ©এবং এটি রেজিস্টারে সংরক্ষণ করুন)
  • β: ইনপুট তালিকাটি বেস max+1থেকে একক সংখ্যায় রূপান্তর করুন
  • 255B: এই একক সংখ্যাটি সংকুচিত করুন (যেমনটি আমরা উপরের বিভাগে করেছি)
  • ®s"•ÿ•ÿв": ফর্ম্যাটে ফলাফলটি ফিরে আসে: শীর্ষস্থানীয় , সংকুচিত সংখ্যা , সর্বোচ্চ + 1, পিছনেв

এখানে একটি উদাহরণের উত্তর যেখানে আমি •4Œ”dóŒfÝŸĀTUÕáOyÖOÀÁàu¼6¹₆Žr‡_›y³eß₂©ǝ²ƶ"SAÎAñ'¡û†Ø(•91вতালিকাটি সংক্ষেপে ব্যবহার করি [85,30,29,39,28,37,33,88,31,40,34,89,35,41,32,90,36,38,42,43,44,60,45,61,46,62,47,63,48,64,49,65,81,50,66,51,67,52,68,53,69,86,54,70,87,55,71,56,72,82,57,73,79,80,58,74,59,75,76,77,78,83,84]
পিএস: এই উত্তরে •6j|eDEJÞó(ÍêΓλùÄÞKüzHÇ-ø`JδŠ₂+Öηôî®À8†6/ðÎ6ùøΓ°ÓĆ;ˆ©Ā•2ôএকটি সমান-বাইট (57) বিকল্প, যেহেতু সমস্ত সংখ্যার ঠিক দুটি অঙ্ক থাকে। কিছু ক্ষেত্রে (বিশেষত ছোট তালিকা) এটি একটি সংক্ষিপ্ত বিকল্প হতে পারে।

পূর্ণসংখ্যার সংক্ষেপণ বনাম পূর্ণসংখ্যা তালিকা সংক্ষেপণ:

এই দুটি দিয়ে এটি যে কোনও পথে যেতে পারে। কখনও কখনও একটি সঙ্কোচিত তালিকাটি সংক্ষিপ্ত, কখনও কখনও সংক্ষেপিত পূর্ণসংখ্যা, কখনও কখনও সম্পূর্ণ ভিন্ন বিকল্পটি সংক্ষিপ্ত হয়। সুতরাং উপরের জেনারেটরগুলিতে সম্পূর্ণরূপে নির্ভর করার পরিবর্তে সর্বদা আপনার নিজস্ব রায় এবং গল্ফিং দক্ষতাগুলি সম্ভবত গল্ফ জিনিসগুলিতে আরও ব্যবহার করুন। এখানে কয়েকটি উদাহরণ:

[44, 59]( @ এমিগানার এই উত্তরে ব্যবহৃত ):

  • •A–•60в 7 বাইট (সংকুচিত পূর্ণসংখ্যার তালিকা জেনারেটর দ্বারা উত্পাদিত) হয়
  • •H|•2ôবা •H|•2äহার্ডকোডযুক্ত 44 59‚সমস্ত 6 বাইট
  • ŽH|2ôবা ŽH|2äউভয় 5 বাইট হয়
  • তবে এই ক্ষেত্রে, „,;Ç4 বাইট সহ সেরা বিকল্প হবে (অক্ষরের কোডপয়েন্ট ',' এবং ';')

[2,4,6,0]( @ এমিগানার এই উত্তরে ব্যবহৃত ):

  • •3ā•7в 6 বাইট (সংকুচিত পূর্ণসংখ্যা তালিকা জেনারেটর দ্বারা উত্পাদিত) হয়
  • Ž3ā7в 5 বাইট হয়
  • তবে Ž9¦Sএক্ষেত্রে 4 বাইট সহ সেরা বিকল্প হবে (সংখ্যার একটি সংখ্যায় 2460 সংকুচিত)

10101001100101001( আমার এই উত্তরে ব্যবহৃত ):

  • •a½₄Ƶ6®í• 9 টি বাইট (সংকুচিত বড় পূর্ণসংখ্যার জেনারেটর দ্বারা উত্পাদিত) হয়
  • •1∊}•2вJ 8 বাইট (সংযুক্ত সংযুক্ত সংক্ষিপ্ত পূর্ণসংখ্যার তালিকা জেনারেটর দ্বারা উত্পাদিত) হয়
  • তবে এই ক্ষেত্রে •1∊}•b6 বাইট সহ সেরা বিকল্প হবে (সংকোচিত পূর্ণসংখ্যার তালিকার পরিবর্তে একটি টু বাইনারি , যা স্পষ্টভাবে যোগ দেয়)

[85,30,29,39,28,37,33,88,31,40,34,89,35,41,32,90,36,38,42,43,44,60,45,61,46,62,47,63,48,64,49,65,81,50,66,51,67,52,68,53,69,86,54,70,87,55,71,56,72,82,57,73,79,80,58,74,59,75,76,77,78,83,84]( আমার এই উত্তরে ব্যবহৃত ):


12

অন্তর্নির্মিত ইনপুট

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

উদাহরণস্বরূপ, আপনি যখন দুটি সংখ্যা যুক্ত করতে চান, আপনি এটি করতে পারেন II+:

I    # Input_1.
 I   # Input_2.
  +  # Add them up.

এটি এখানে পরীক্ষা করুন


তবে, অন্তর্নিহিত ইনপুট ব্যবহার করে আমরা কেবলমাত্র 1 বাইটে সংক্ষিপ্ত করতে পারি, যথা +:

+    # Take two numbers implicitly and add them up.

এটি এখানে পরীক্ষা করুন


এটি তখনই ঘটে যখন স্ট্যাকের দৈর্ঘ্য অপারেটরের শালীনতার চেয়ে ছোট হয়। একটি শেষ উদাহরণ 3++অপারেটরের আরটিটি 2 হয় যখন স্ট্যাকের মধ্যে কেবল 1 টি উপাদান থাকে:

3    # Push the number 3 on top of the stack.
 +   # Request implicit input and add to the 3.

এটি এখানে পরীক্ষা করুন


8

সাবস্ট্রিং

£bস্ট্রিংয়ের প্রথম অক্ষর নেওয়ার কমান্ড a
উদা: "hello_world"5£ -> "hello"

তবে bসূচকগুলির একটি তালিকা থাকলে এটি পরিবর্তে স্ট্রিংগুলি সেই আকারগুলির (অবধি) অংশে বিভক্ত করে।
উদা: "hello_world"5L£ -> ['h', 'el', 'lo_', 'worl', 'd']


8

পূর্বনির্ধারিত পরিবর্তনশীল

তারা 05AB1E এ কিছুটা লুকিয়ে রয়েছে। এখানে সমস্ত পূর্বনির্ধারিত ভেরিয়েবলের একটি তালিকা রয়েছে:

  • ¾, 0এই কমান্ডের আগে কাউন্টার_ভেরিয়েবল পরিবর্তন না করা হলে ধাক্কা দেয় ।
  • X, 1এই কমান্ডটি ব্যবহার করার আগে ভেরিয়েবল এক্স পরিবর্তন না করা হলে ধাক্কা দেয় U
  • Y, 2এই কমান্ডটি ব্যবহার করার আগে ভেরিয়েবল Y পরিবর্তন না করা হলে ধাক্কা দেয় V
  • ®, -1এই কমান্ডটি দিয়ে রেজিস্টার পরিবর্তন না করা হলে ধাক্কা দেয় ©
  • ¯, []এই কমান্ডের আগে গ্লোবাল_আরে কিছু যুক্ত না করা হলে (খালি অ্যারে) পুশ করে।
  • ¸, [""]কোনও ইনপুট না থাকলে খালি স্ট্যাকের দিকে ধাক্কা দেয় । (এটি খুঁজে পাওয়ার জন্য আপনাকে @ এমিগানাকে ধন্যবাদ))

24
¾পাহাড় জমে 0 => যে অ-স্মৃতিসম্বন্ধীয় এটি পায় হিসাবে সম্পর্কে এর
Fatalize

6
@ ফ্যাটালাইজ করুন: 0 এছাড়াও 0 ধাক্কা দেয়। ¾পাহাড় জমে একটি পাল্টা পরিবর্তনশীল যা 0. যেমন সক্রিয়া করা হয় আপনি শুধুমাত্র ধাক্কা 0 চান, 0 কোর্সের আরো প্রাকৃতিক হয়, কিন্তু আপনি যদি ধাক্কা চান 5,0,7, 5¾72 চেয়ে খাটো বাইট 5 0 7
এমিগনা

7
আমার দিন ফিরে যান, ¾বোঝানো .75, এবং আমি একবার আসলে সঙ্গে Pyth বীট । এই নবজাতক গল্ফিং ভাষাগুলি
স্মৃতিবিজ্ঞানের

31
আপনি সবাই কী সম্পর্কে কথা বলছেন তা ধারণা নেই: পি। print(3 / 4)পাইথন 2 আমাকে দেয় 0
আদনান

2
যদি শুরুতেই Mধাক্কা দেয় -Inf
mbomb007

7

ক্যানভাস ( Λবা ) ব্যবহার করে

যেহেতু এটি দস্তাবেজের অংশ ছিল না, এবং @ আদনান এটি লেখার জন্য বর্তমানে কিছুটা ব্যস্ত, তাই আমি আপাতত এটিকে টিপ হিসাবে যুক্ত করার অনুমতি চেয়েছিলাম।

ক্যানভাস ফাংশন ( Λবা ) স্ক্রিনে ASCII- রেখা আঁকতে ব্যবহার করা যেতে পারে। এটির জন্য তিনটি প্রয়োজনীয় প্যারামিটার রয়েছে:

  • একটি দৈর্ঘ্য: রেখার আকার (গুলি)। এটি একটি একক পূর্ণসংখ্যা বা পূর্ণসংখ্যার তালিকা হতে পারে
  • : STRING অক্ষর (গুলি) আমরা প্রদর্শন করতে চান। এটি একটি একক অক্ষর, একটি স্ট্রিং, অক্ষরের একটি তালিকা বা স্ট্রিংগুলির তালিকা হতে পারে (সর্বশেষ তিনটি ক্ষেত্রে এটি মোড়কের চারপাশ সহ সকলকে এক-এক করে ব্যবহার করবে)
  • দিকনির্দেশ: চরিত্র-রেখাটি যে দিকের দিকে আঁকতে হবে general সাধারণভাবে আমাদের কাছে[0,7]দিকনির্দেশের জন্যসংখ্যা রয়েছে, যার জন্য আমরা একটি বা একাধিক ব্যবহার করতে পারি। এছাড়াও কিছু বিশেষ বিকল্প রয়েছে যাগুলির জন্য একটি নির্দিষ্ট চরিত্রের প্রয়োজন হয় (এটি সম্পর্কে আরও পরে)।

[0,7]নীচের দিকের দিকনির্দেশ-অঙ্কগুলি মানচিত্র:

7   0   1
  ↖ ↑ ↗
6 ← X → 2
  ↙ ↓ ↘
5   4   3

কিছু উদাহরণ 05AB1E উত্তর দেয় যেখানে ক্যানভাস ব্যবহার করা হয়:

আসুন আমরা শেষের মতো কিছু করব, সুতরাং ধরে নেওয়া যাক আমরা Λনিম্নলিখিত তিনটি পরামিতি সহ ক্যানভাস ফাংশনটি ব্যবহার করি :

  • একটি :[3,3,5,5,7,7,9,9]
  • :!@#
  • :[0,2,4,6]

এটি নিম্নলিখিত আউটপুট দেবে:

  !@#!@#!
  #     @
  @ #!@ #
  ! @ # !
  # ! ! @
  @   @ #
  !#@!# !
        @
@!#@!#@!#

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

সুতরাং কিভাবে এটি কাজ করে? ভাল, উপরে এই ইনপুটগুলি সহ পদক্ষেপগুলি এখানে রয়েছে:

  1. 3অক্ষর আঁকুন ( !@#) উপরের দিকে (দিকনির্দেশ 0)
  2. আঁকুন 3-1অক্ষর ( !@(দিকবিন্যাস ডান দিকে) 2)
  3. 5-1অক্ষর আঁকুন ( #!@#) নিচের দিকে (দিকনির্দেশ 4)
  4. বাম দিকে (দিকের ) দিকে 5-1অক্ষর আঁকুন!@#!6
  5. 7-1অক্ষর আঁকুন ( @#!@#!) উপরের দিকে (দিকনির্দেশ 0)
  6. আঁকুন 7-1অক্ষর ( @#!@#!(দিকবিন্যাস ডান দিকে) 2)
  7. 9-1অক্ষর আঁকুন ( @#!@#!@#) নিচের দিকে (দিকনির্দেশ 4)
  8. বাম দিকে (দিকের ) দিকে 9-1অক্ষর আঁকুন!@#!@#!@6

-1কারণ লাইন ওভারল্যাপ আছে। সুতরাং প্রথম দুটি পদক্ষেপ হল:

#
@
!

এবং

 !@

যা মিলিত:

#!@
@
!

কিছু ছোট ছোট নোট:


1
আমি অবগতও ছিলাম যে 05AB1E এর ক্যানভাস ছিল!
মিল্কিওয়ে 90

কীভাবে ... আপনি এটি কীভাবে খুঁজে পেয়েছেন? সোর্স কোড?
ম্যাজিক অক্টোপাস উরন

1
@ ম্যাজিক অ্যাক্টপাস ইউর্ন @ আদনানের এই উত্তর থেকে বেশিরভাগই (পিএস: তার সর্বশেষ উত্তরটিও বেশ সুন্দরভাবে ব্যাখ্যা করা হয়েছে )। +×8আমি প্রকৃতপক্ষে উত্স কোডটি দেখেছি For
কেভিন ক্রুইজসেন

5

পপ করুন বা পান

অন্যান্য স্ট্যাক-ভিত্তিক ভাষাগুলির মতো, 05AB1E এর ফাংশনগুলি সাধারণত তাদের ইনপুটগুলি স্ট্যাক থেকে পপ করে (গ্রাস করে) এবং তাদের আউটপুটগুলি স্ট্যাকের দিকে ঠেলে দেয়।

যাইহোক, কিছু ফাংশন পেতে তাদের গ্রাসকারী ছাড়া স্ট্যাক থেকে তাদের ইনপুট। একটি উদাহরণ headফাংশন, ¬যা ইনপুট তালিকা থেকে প্রথম উপাদান উত্পাদন করে produces একটি উদাহরণ প্রোগ্রাম এখানে দেখুন: ¬+। এটি তালিকার প্রতিটি সংখ্যায় ইনপুট তালিকার প্রথম সংখ্যা যুক্ত করে।

কোন ফাংশনগুলি পপ হয় এবং কোনটি পায় তা জানতে ফাংশন তথ্য ফাইলে সংশ্লিষ্ট কলামটি দেখুন ।


@NeilA। ধন্যবাদ! লিঙ্ক আপডেট হয়েছে
লুইস মেন্ডো

3

শর্ত এবং লুপ

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

উদাহরণস্বরূপ, প্রথম (প্রাথমিক) nসংখ্যাগুলির তালিকা তৈরি করার জন্য এই (অরোগল্ডড) প্রোগ্রামটির বন্ধনী বন্ধনী প্রয়োজন নেই। [¹¾Q#NpiNˆ¼

তবে আমরা যদি ফলাফলের তালিকায় কিছু অপারেশন করতে চাইতাম, উদাহরণস্বরূপ ডেল্টা গ্রহণ করা আমাদের প্রথমে লুপটি বন্ধ করা দরকার। [¹¾Q#NpiNˆ¼]¯¥


3

ছোট 05AB1E গল্ফিং টিপস

পথে চলতে শিখেছি এমন ছোট গল্ফিং টিপসের সাহায্যে এটি প্রসারিত করবে। (কেবলমাত্র ব্যক্তিগতভাবে কেবল 05AB1E শুরু হয়েছে))

  • D(ডুপ্লিকেট) এবং Ð(ট্রিপলিকেট) সাথে s(অদলবদল) এবং Š(ট্রিপল-সোয়াপ a,b,cটু c,a,b) এর মিশ্রণগুলি লুপের অভ্যন্তরে ( গ্লোবাল_ভেরিয়েবলে© সংরক্ষণ করুন ) এবং ( গ্লোবাল_ভেরিয়েবল ধাক্কা ) ব্যবহারের চেয়ে সাধারণত ছোট হয় । এই আমার এই উত্তরে একটি বাইট সংরক্ষিত মধ্যে, সেইসাথে দুই আমার এই উত্তরের®
  • ½(যদি 1 হয়, তবে 1 টির সাথে পাল্টে_ পরিবর্তনশীল বৃদ্ধি করুন ) একটি শেষে µ(যখন পাল্টে পরিবর্তনযোগ্য ! = ক, কর ...) প্রয়োজনীয় নয়, যেহেতু এটি স্পষ্টভাবে সম্পন্ন হয়েছে ( আমার এই উত্তরটিতে একটি বাইট সংরক্ষণ করেছে )।
  • .Bস্পষ্টতই নতুন লাইনে বিভক্ত হয়। আমার এই উত্তরটিতে এটি কার্যকর হয়েছিল যখন আমরা ¡খালি আইটেম রাখার সময় (বিভক্ত) বিকল্পের সন্ধান করছিলাম (দ্রষ্টব্য: বিভাজনের পরে উপাদানগুলি যখন পিছনে স্থান রাখে তখন লিঙ্কিত উত্তরের সমাধান কার্যকর হয় না -) আশা করি একটি বিল্টিন বিভক্তিতে যোগ করা হবে তবে ভবিষ্যতে খালি লাইন রাখুন।
  • (ইনপুট-পূর্ণসংখ্যার কোন অঙ্কটি সমানভাবে ইনপুট-পূর্ণসংখ্যাকে বিভক্ত করতে পারে) অঙ্কগুলির জন্য নিজেই সংখ্যাটি অন্তর্ভুক্ত করবে 0(বিভাজন দ্বারা শূন্য ত্রুটির পরিবর্তে)। উদাহরণস্বরূপ, 1053ফলাফল হবে[1,1053,0,1] (1053 1 এবং 3 দ্বারা বিভাজ্য; 5 দ্বারা বিভাজ্য নয়; এবং 0 এর জন্য বিভাগ দ্বারা বাই শূন্য ত্রুটি দেয়)। এই তালিকাটির ক্ষমতা গ্রহণ করে আমার এই উত্তরে এটি বেশ কার্যকর ছিল , যেহেতু কেবলমাত্র 105AB1E এ সত্যবাদী এবং অন্য সব কিছু মিথ্যা। SÖPসত্যবাদী ( 1) এর ফলস্বরূপ এর অর্থ একটি ইনপুট-পূর্ণসংখ্যা তার প্রতিটি অঙ্ক দ্বারা সমানভাবে বিভাজ্য।
  • দেখার পরে û(একটি প্রদত্ত স্ট্রিংকে প্যালেন্ড্রোমাইজ করুন ) আমি অবাক হয়ে গেলাম সেখানে একটি_পালিন্ড্রোম বিল্টিন নেই । তবে পরে আমি বুঝতে পেরেছিলাম যে এটি সম্পাদন করার জন্য মাত্র 2 বাইটের প্রয়োজন, যা ÂQ(যেখানে Âদ্বিখণ্ডিত হয় যা সংক্ষেপে DR: সদৃশ এবং বিপরীত অনুলিপি; এবং Qস্ট্যাকের উপরের দুটি মান সমান কিনা তা পরীক্ষা করে দেখার জন্য)।
  • আপনি যখন একাধিক জিনিসের দ্বারা একটি তালিকা ফিল্টার করতে চান, তবে এটি একসাথে সবগুলিকে একত্রিত করার চেয়ে একাধিক আলগা ফিল্টারগুলি সহ সস্তা। কারণ যখন আপনার দুটি ফিল্টার রয়েছে তখন আপনি দুটি ফিল্টার ব্যবহার করার সময় Ds*(ডুপ্লিকেট, অদলবদল, লজিক্যাল-এন্ড হিসাবে কাজ করার জন্য গুণিত) বনাম (প্রথম ফিল্টারটি বন্ধ করুন, আবারও ফিল্টার করুন) যখন আপনি দুটি ফিল্টার ব্যবহার করেন তখন আপনার প্রয়োজন হবে। উদাহরণস্বরূপ: এই চ্যালেঞ্জে আমাদের চার সংখ্যার দীর্ঘ সমস্ত সংখ্যার তালিকা করতে হবে, কমপক্ষে একটি 0এবং সমান সংখ্যার সমষ্টি সহ 9। একটি ব্যাপ্তি ব্যবহার করা [1000,10000]দীর্ঘ চার অঙ্কের সংখ্যাটি কভার করে, তবে তারপরে আপনাকে আরও দুটি ফিল্টার রেখে দেওয়া হবে। প্রথমদিকে আমি ₄4°ŸʒD0åsSO9Q*(14 বাইট) ব্যবহার করেছি, তবে দুটি ফিল্টার ব্যবহার করে একটি বাইট সংরক্ষণ করা যায়: ₄4°Ÿʒ0å}ʒSO9Q(13 বাইট) (যা পরে গ্রিমি ₄4°ŸεW°ö9Qদ্বারা (10 বাইট) গল্ফড হয়েছিল।)
  • আপনি 0ফিলার হিসাবে পূর্ণসংখ্যার সাথে জিপ করতে চাইলে আপনি ব্যবহার করতে পারেন । তবে এর সাথে একটি সমস্যা হ'ল ফিলারটি 0একটি স্ট্রিং হয়ে যাবে "0", সুতরাং আপনি যদি পরে মিশ্র স্ট্রিং এবং পূর্ণসংখ্যার সাথে বাছাই করার চেষ্টা করেন তবে এটি সম্ভবত আপনি চান ফলাফলটি দেবেন না। কিভাবে এটা জিপ করা ভেতরের তালিকা সাজাতে হবে একটি উদাহরণ এখানে: 0ζ€{। এই int- এ একটি সুনির্দিষ্ট ঢালাই (যোগ করে সংশোধন করা হয়েছে করা যেতে পারে ï) জিপ পর, এবং শুধুমাত্র তারপর করুনঃ: 0ζï€{। যাইহোক, জিপ-ফিলার সহ ¾ধ্রুবক হিসাবে এটি ব্যবহার করার 0ফলে এটি জিপ চলাকালীন স্ট্রিংয়ের পরিবর্তে পূর্ণসংখ্যায় থেকে যাবে। সুতরাং ¾ζ€{এখানে একটি বাইট সংরক্ষণ করা হবে। এই ডগা দ্বারা সরবরাহ করা হয়েছিল @ Mr.Xcoder একটি বাইট সংরক্ষণ করতে আমার এই উত্তরে
  • আপনি যদি একটি তালিকায় একাধিক সংখ্যার অঙ্কগুলি যোগ করতে চান তবে আপনি ব্যবহার করতে পারেন €SO। খাটো তবে ব্যবহার করছে যা স্বয়ংক্রিয়ভাবে ভেক্টরাইজ হয় izes এই ডগা দ্বারা সরবরাহ করা হয়েছিল @Grimy করার একটি বাইট এখানে সংরক্ষণ (এবং 2 এখানে বাইট )।
  • যদি আপনি কেবল অ-নেতিবাচক পূর্ণসংখ্যার সাথেই কাজ করে থাকেন এবং আপনি ফিল্টারটির ভিতরে 0 বা 1 হয় কিনা তা পরীক্ষা করতে চান তবে অবশ্যই আপনি সুস্পষ্ট ব্যবহার করতে পারেন 2‹। তবে, !(ফ্যাকটোরিয়াল) ব্যবহারের ফলে কেবল 1 টি (সত্যবাদী) হবে 0এবং এর জন্য এবং 1অন্যান্য সমস্ত মান উচ্চতর কিছুতে (এবং এইভাবে মিথ্যা হবে, যেহেতু কেবলমাত্র 105AB1E-তে সত্যবাদী)। এই টিপটি এখানে একটি বাইট সংরক্ষণ করতে @ গ্রিমি সরবরাহ করেছিলেন ।

2

স্বয়ংক্রিয় ভেক্টরাইজেশন

নোট করুন যে 05AB1E-তে কিছু অপারেটর অ্যারেতে স্বয়ংক্রিয়ভাবে ভেক্টরাইজ হয়। উদাহরণস্বরূপ, কোডটি 5L3+, যা নিম্নলিখিত সিউডোকোডে বিচ্ছিন্ন হয়েছে:

[1, 2, 3, 4, 5] + 3

হবে:

[4, 5, 6, 7, 8]

যদি এটি স্বয়ংক্রিয়ভাবে ভেক্টরাইজ না হয় তবে আপনি অপারেটরটিও ব্যবহার করতে পারেন । এটি একটি একক অক্ষরের কমান্ড নেয় এবং প্রতিটি উপাদানটিতে এটি (মোনাডিক) অপারেটর সম্পাদন করে। প্রতিটি উপাদানকে বিভক্ত করার একটি উদাহরণ নিম্নলিখিত কোড ( এটি এখানে চেষ্টা করুন ):

€S

যদিও সাধারণ Sঅপারেটর প্রতিটি উপাদানকে অ্যারেতে বিভক্ত করে একক অ্যারে রূপান্তরিত করে ( এটি এখানে চেষ্টা করুন )।


আপনি অ্যারেতে নবম উপাদানকে কীভাবে বরাদ্দ করবেন?
অ্যান্ড্রু সাবিনিখ

@ অ্যান্ড্রুস্যাভিনিখ এখনই, এর জন্য কোনও বিল্টিন নেই, তবে এটি এমন একটি বিষয় যা আমি প্রয়োগ করতে চাই।
আদনান

@ আদনান আমি এটি করার একটি উপায় খুঁজে পেয়েছি। আর একটি তালিকা তৈরি করুন যার মূল্য নবম সূচকেও নির্ধারিত হবে। তারপরে (সূচক) ñএর মান অনুসারে তালিকাগুলি মার্জ করুন ntio.run/nexus/05ab1e#@2/iw2XiE2Tio81ldHjj//8A
mbomb007

@ mbomb007 এটি সম্ভব, একমাত্র সমস্যাটি হ'ল আপনি পরে অ্যারে পরিবর্তন করতে পারবেন না, যেহেতু মার্জ কমান্ডটি কেবল যুক্তি হিসাবে স্ট্রিং নেয় (এবং তালিকাটিকে স্ট্রিংয়ে রূপান্তর করে)।
আদনান

2

ইনপুটগুলির অর্ডারিং

আপনি যে আদেশটি ইনপুটটি নিয়েছেন তা আপনার কোডের উপর কঠোর প্রভাব ফেলতে পারে এবং প্রায়শই যদি আপনি sস্ট্যাকের পরবর্তী শীর্ষ জিনিসটি দিয়ে স্ট্যাকের শীর্ষটি স্যুপ ব্যবহার করতে থাকেন তবে আপনি সমস্যাটি সঠিকভাবে ভাবছেন না। ইনপুটগুলি পুনরায় অর্ডার করার চেষ্টা করুন এবং আপনি আগে থেকে ইনপুটগুলি অদলবদল করে, এটি স্ট্যাকের সাথে আগে যোগ করে বা কোথাও সদৃশ করে অদলবদলের প্রয়োজন থেকে মুক্তি পেতে পারেন কিনা তা দেখুন। সর্বাধিক সুস্পষ্ট I&O সর্বনিম্ন সফল 05AB1E উত্তর হতে পারে।


2

05AB1E ASCII- আর্ট গল্ফিং

নীচের কোডটি কাস্টম বেস রূপান্তর ব্যবহার করে ASCII-art 05AB1E এ রূপান্তর করতে সহায়তা করে।

|»©ÐÙSDŠ¢øΣθ}R€н¬®sÅ?iD2£RDŠKsì}J©žLR‡®gö₅B®s"•ÿ•“ÿ“ÅвJ"

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

এটি দ্বারা সম্পাদিত:

  1. ASCII অঙ্কনের অনন্য অক্ষরগুলি তালিকাভুক্ত করা হচ্ছে।
  2. ক্রমবর্ধমান ক্রমে তারা স্ট্রিংয়ের ক্ষেত্রে কতবার ঘটবে তা অর্ডার করুন (সর্বাধিক ঘটে যাওয়া অক্ষরগুলির মধ্যে সবচেয়ে বেশি দেখা যায়)।
  3. ASCII অঙ্কনটি সর্বাধিক সংঘটিত চরিত্রের সাথে শুরু হলে (সংকুচিত পূর্ণসংখ্যার শীর্ষস্থানীয় 0 টি প্রতিরোধ করতে) প্রথম দুটি আইটেম বিপরীত করুন।
  4. এতে ইনপুটটির অক্ষরগুলি মানচিত্র করুন 0-9A-Za-zসেই ক্রমে , প্রতিটি স্বতন্ত্র অক্ষর প্রতিস্থাপন না করা অবধি প্রতিটি পৃথক অক্ষর তার নিজস্ব ম্যাপিং-চরিত্র পাবে।
  5. বেসটি প্রতিস্থাপনের জন্য আপনার সর্বোচ্চ প্রয়োজনের ভিত্তিতে এটি সংকোচিত করুন (অনন্য অক্ষরের পরিমাণের ভিত্তিতে)।
  6. বেসটি এটিকে আবার বেস -255 (05AB1E সংক্ষেপণের জন্য) এ রূপান্তর করে।
  7. বিন্যাসে বিন্যাস সবকিছু: •<compressed_integer>•“<sorted_distinct_characters>“ÅвJ

এছাড়াও কম্প্রেস স্ট্রিং-কোট আপনি করতে পারবেন "; দ্যÅвএই স্ট্রিং ব্যবহার করবে উত্পন্ন পূর্ণসংখ্যা কাস্টম বেস হিসাবে স্ট্রিং ব্যবহার করে বেস-রূপান্তর; এবং Jএই সমস্ত অক্ষরের সাথে একক স্ট্রিংয়ে যোগ দেবে, যা স্পষ্টভাবে আউটপুট।

ASCII- শিল্পের পক্ষে ভাল এবং 62 টি স্বতন্ত্র অক্ষর সহ নিদর্শনগুলি গ্রহণ করে।
অনন্য অক্ষরের পরিমাণ কম, সংক্ষেপণ তত ভাল।


এক্সএনওর ডিজিটাল টাইমিং ডায়াগ্রাম আঁকার উদাহরণস্বরূপ আউটপুট (214 বাইট, 9 অনন্য অক্ষর):

    ┌─┐ ┌─┐ ┌─────┐ ┌─┐ ┌─┐ ┌───┐  
A ──┘ └─┘ └─┘     └─┘ └─┘ └─┘   └──
  ┌───┐ ┌───┐ ┌─┐ ┌─────┐   ┌─┐ ┌─┐
B ┘   └─┘   └─┘ └─┘     └───┘ └─┘ └
    ┌─────┐   ┌─┐   ┌─┐   ┌───┐   
X ──┘     └───┘ └───┘ └───┘   └────

হবে:

05 এ বি 1 ই , 106 বাইট

•I£.µ*:]ó±øqaµb₄ΘYQmœ¹µû₄p´ζÂĆ_5ŠKÑ×ðòË|₄#¹¶úôÂ-Í|¯ε¼É₂ïδ&é–9»ÞFò1î×HÃBjý2ĆÉ≠FYÂÂèC j‘£Å₅Œ•“─ └┘┐┌
XBA“ÅвJ

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

(106/214) * 100 = 49.53% আসল ASCII- আর্ট স্ট্রিংয়ের আকার।

যা 05AB1E (উত্তরাধিকার) এর চ্যালেঞ্জের জন্য আমার আসল জমা হিসাবে একই বাইট-গণনা ।


কোড ব্যাখ্যা:

দ্রষ্টব্য: কোড একেবারে গল্ফ হয় না। এটি ASCII আর্টকে সবচেয়ে দক্ষ সংকোচনে রূপান্তর করতে দ্রুত লেখা হয়েছে, সুতরাং এটি বেশ কুৎসিত এবং দীর্ঘ ...

               # Take multi-line input
  ©              # Store it in the register to reuse later                         
ÐÙS              # Only leave unique characters (as list)
   DŠ¢ø          # Map it with the count for each of those characters
       Σθ}R      # Sort it based on that count (highest to lowest)
           €н    # Remove the count again, so the sorted characters remain
¬®sÅ?i           # If the input starts with the most occurring character:
      D2£RDŠKsì} #  Swap the first two characters in the list
J©               # Join everything together, and store it in the register to reuse later
  žLR           # Map each character to [0-9A-Za-z]
      ®gö        # Get the amount of unique characters, and convert it to that Base
         B      # And then convert that to Base-255
®s               # Push the string and swap so the compressed integer is at the top again
  "•ÿ•“ÿ“ÅвJ"    # Insert it in the correct output format
                 #  `•<compressed_integer>•“<sorted_distinct_characters>“ÅвJ`
"•ÿ•"            # (after which the result is output implicitly with trailing newline)

1
উপায় দ্বারা, যেহেতু 05AB1E কোড পৃষ্ঠা পরিবর্তন করেছে, সর্বাধিক বেসটি 214 থেকে 255 এ পরিবর্তন করা হয়েছে ।
আদনান

1
সম্ভবত আপনার উত্তরে কিছু যোগ করতে (বা এর সাহায্যে জেনারেটরটি সংশোধন করুন), তবে যদি এসসিআইআই শিল্পে 10 টিরও কম স্বতন্ত্র অক্ষর ব্যবহার করা হয় তবে আপনি এটি দুটি বাইট দ্বারা গল্ফ করতে পারেন। অর্থাৎ আপনার জেনারেটর এই 22-বাইটার দেয় তবে পরিবর্তে এটি 20-বাইটার হতে পারে ।
কেভিন ক্রুইজসেন 11

@ কেভিন ক্রুজসেন এই ধারণাটিই আমি জানাতে চাইছিলাম, সত্যই দাবি করে না যে জেনারেটর ভাল কিছু: পি। আমি সত্যই সন্দেহ করি যে এটি এখনও ওসাবিতে চালিত। আমি লিখেছি যে দীর্ঘ সময় আগে!
ম্যাজিক অক্টোপাস আরন

@ ম্যাজিক অ্যাক্টপাস ইউরান নিশ্চিত না যে এটি এলিক্সির পুনর্লিখনে চলে কিনা, তবে এটি অবশ্যই উত্তরাধিকার সংস্করণে কাজ করে। আদনানের মন্তব্যে উল্লিখিত একবছর আগে আমি আধ-আধ আগে বেস -২৪৪-এর বেস -২৫৫ সম্পাদনা করেছি । তা ছাড়া এটি দুর্দান্ত কাজ করে এবং আমি কয়েকবার এটি ব্যবহার করেছি (যদিও এটি প্রতিবার গল্ফ করেছে;;))। স্ট্রিং এবং নম্বর উভয়ের জেনারেশন দুর্দান্ত কাজ করে!
কেভিন ক্রুইজসেন

এখানে একটি উন্নত সংস্করণ। (খুব কুরুচিপূর্ণ এবং দ্রুত লিখিত, তবে এটি কার্যকর)। এটি 113 এর পরিবর্তে আপনার 108 টি বাইট তৈরি করবে I পূর্ণসংখ্যা যতটা সম্ভব ছোট; <str><compr_int><int>вèJপরিবর্তে আপনার ব্যবহার <compr_int><int>BžLR<str>‡; এবং স্ট্রিং-কোটস হিসাবে পরিবর্তে ব্যবহার করা ", সুতরাং "ইনপুট অংশ হতে পারে।
কেভিন ক্রুইজসেন

1

স্ট্রিং এবং ইনট সমান প্রকারের

সকলেই এমন কিছু নয় যেটির সাথে একমত হয়, তবে এটি কার্যকর হয়।

নিম্নলিখিত দুটি প্রোগ্রাম বিবেচনা করুন:

4 5+
"4""5"+

তারা উভয় ফলাফল 9 । কারণ প্রতিটি মান প্রথমে মূল্যায়ন করা হয় (সহ)ast.literal_eval )। এজন্য, আমরা ইনটগুলিতে সমস্ত স্ট্রিং ম্যানিপুলেশন অপারেটর এবং স্ট্রিংগুলিতে সমস্ত ইন ম্যানিপুলেশন অপারেটরগুলি সম্পাদন করতে পারি।

উদাহরণস্বরূপ, 12345ûসংখ্যাটি প্যালিনড্রোমাইজ করে 12345, ফলস্বরূপ 123454321। এর পরে, আমরা এই সংখ্যাটিতে নিয়মিত গণিত করতে পারি।

12345û50000-

এর ফলস্বরূপ: 123404321


0

লুকানো লুপ এবং পুনরুক্তি

05AB1E এ নিম্নলিখিত স্বাভাবিক লুপ এবং পুনরুক্তি রয়েছে:

  • F, যা 0 .. n-1 এর মাধ্যমে পুনরাবৃত্তি হয়
  • G, যা 1 এর মাধ্যমে পুনরাবৃত্তি হয় .. n-1
  • ƒ, যা 0 .. n এর মাধ্যমে পুনরাবৃত্তি হয় ।
  • v, যা প্রতিটি উপাদানকে [0], এস [1], .., এস [এন] এর উপরে পুনরাবৃত্তি করে ।
  • ʒ, যা হুবহু লুপ নয়, তবে ফিল্টার-বাই কমান্ড। প্রতিটি উপাদান দিয়ে লুপিংয়ের অনিচ্ছাকৃত আচরণের জন্য আমরা এই আদেশটি অপব্যবহার করি।

এই লুপগুলি ব্যবহার করে, আমরা নিম্নলিখিত লুকানো লুপগুলি অর্জন করতে পারি :

  • পরিবর্তে gF, আপনি ব্যবহার করতে পারেন vযা একটি আছেN অন-ইনডেক্সও ব্যবহার করা যেতে পারে।
  • দ্য vy -> ʒপ্রতিস্থাপন একটি বিট আরো চতুর হল:
    • আপনাকে অবিলম্বে ফলাফলগুলি মুদ্রণ করা দরকার। এটি স্ট্যাকের শীর্ষটি মুদ্রণ থেকে স্বয়ংক্রিয় মুদ্রণকে ছাড়িয়ে যায়।
    • কোড স্নিপেট একটি নতুন অস্থায়ী স্ট্যাক চালিত হয় । এর অর্থ হ'ল স্ট্যাক-নির্ভর স্নিপেটগুলি ব্যবহার করা যাবে না।
    • yএই ধরণের লুপগুলিতে চালনা সম্ভব নয়।

আমি এই এক বছর আগে পোস্ট করা হয়েছে, কিন্তু হয় না [, µএবং εএছাড়াও স্বাভাবিক লুপ / পুনরাবৃত্তিও অংশ?
কেভিন ক্রুইজসেন

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