ফানসিটন , অ-প্রতিযোগিতামূলক, 29199 বাইট
আমি এই চ্যালেঞ্জটি উপভোগ করেছি কারণ এটি কিছু খুব দরকারী লাইব্রেরি ফাংশনের ঘাটির অভাবকে হাইলাইট করেছে। আমি এখানে (এবং বাইট গণনায়) সমস্ত ফাংশন অন্তর্ভুক্ত করব কারণ এই চ্যালেঞ্জ পোস্ট হওয়ার পরে আমি সেগুলি লিখেছিলাম।
একটি একক ফাইলে সম্পূর্ণ উত্স
ব্যাখ্যা
বরাবরের মতো, javascript:(function(){$('pre,code').css({lineHeight:5/4});})()আপনার ব্রাউজার কনসোলে চালিয়ে আরও ভাল উপস্থাপনা পান ।
Verse ɹ ⇄বিপরীত
আপনি যেমন জানেন বা নাও জানেন, ফানসিটনের সাথে তালিকার জন্য পূর্ণ ফাংশনযুক্ত একটি লাইব্রেরি উপস্থিত রয়েছে , যা একক হিমোনাস পূর্ণসংখ্যায় এনকোড করা মান এবং পাশাপাশি অলস-মূল্যায়িত ক্রমগুলির জন্য একটি পৃথক গ্রন্থাগার , যা ল্যাম্বদা এক্সপ্রেশন (বেনাম ফাংশন) ব্যবহার করে অলস হতে আদেশ। অবশ্যই স্ট্রিং হ্যান্ডলিং ফাংশনগুলির জন্য একটি গ্রন্থাগার রয়েছে।
এই চ্যালেঞ্জের জন্য, আমার একটি স্ট্রিংকে বিপরীত করার জন্য একটি ফাংশন এবং একটি অলস-মূল্যায়ন ক্রমকে বিপরীত করার জন্য একটি ফাংশন প্রয়োজন। আশ্চর্যজনকভাবে, আমার কাছে কেবল তালিকাগুলির জন্য একটি ছিল - ঠিক আমার যা প্রয়োজন ছিল না one সুতরাং এখানে অলস ক্রমগুলি ( ɹ) এবং স্ট্রিংগুলির জন্য ( ) বিপরীত ফাংশন রয়েছে ⇄:
╓───╖ ╔════╗ ┌────╖ ╓───╖
║ ɹ ║ ║ 21 ╟─┤ >> ╟──┐ ║ ⇄ ║
╙─┬─╜ ╚════╝ ╘═╤══╝ │ ╙─┬─╜ ┌──┐
┌─────┴─────┐ ┌─┴─╖ ├───────┴────────┤ │
┌─┴─╖ ┌───╖ │ │ ⇄ ║ │ ╔════╗ ┌───╖ │ │
┌─┤ ╟─┤ ɹ ╟─┐ │ ╘═╤═╝ │ ║ −1 ╟─┤ ≠ ╟─┴┐ │
│ └─┬─╜ ╘═══╝ │ │ ┌─┴─╖ ┌─┴─╖ ╚════╝ ╘═╤═╝ │ │
│ │ ┌───╖ │ │ │ ‼ ╟─┤ ? ╟──────────┤ │ │
│ └───┤ ʬ ╟─┘ │ ╘═╤═╝ ╘═╤═╝ ╔═══╗ ┌─┴─╖ │ │
│ ╘═╤═╝ │ ┌─┴─╖ ╔═══╗ ║ 0 ╟─┤ ≠ ╟──┘ │
│ ╔═══╗ ┌─┴─╖ │ ┌─┤ ʃ ╟─╢ 1 ║ ╚═╤═╝ ╘═══╝ │
└─╢ 0 ╟─┤ ? ╟───┘ │ ╘═╤═╝ ╚═══╝ │ │
╚═══╝ ╘═╤═╝ │ └────────────┘ │
│ └─────────────────────────────┘
অলস-সিকোয়েন্সগুলি ব্যবহার করে ʬযা "অলস অনুক্রমের শেষে একটি উপাদান সংযোজন" is স্ট্রিংটি একটি ʃ(সাবস্ট্রিং) এবং ‼(স্ট্রিং কনকেনেটেট) ব্যবহার করে।
Mes Ṗপুরষ্কার
যদিও আমি শুধু বিভক্ত করতে চাইছেন দ্বারা উত্তর দিবেন কাজ করতে পারে এন অর্ডারের মধ্যে সব কারণের দ্বারা, আমি একটি লাইব্রেরি ফাংশন যা মৌলিক সংখ্যার উত্পন্ন চেয়েছিলেন সিদ্ধান্ত নিয়েছে। নিম্নলিখিত ফাংশন একটি পূর্ণসংখ্যা লাগে এন এবং কার্যকরী এরাটোস্থেনিস এর চালনী পর্যন্ত সব মৌলিক সংখ্যার জেনারেট করতে এন । এটি একটি অলস ক্রম হিসাবে এটি করে, সুতরাং এটি আপনি যতটা প্রকৃত মূল্যায়ন করেন কেবল ততটাই প্রাইম উত্পন্ন করবে।
╓───╖
║ Ṗ ║
╔═══╗ ╙─┬─╜
║ 0 ║ ┌─┴─╖
╚═╤═╝ │ ♭ ║
╔═══╗ ┌──┴─╖ ╘═╤═╝
║ 2 ╟─┤ Ṗp ╟───┘
╚═══╝ ╘══╤═╝
┌──────────────┐ │
│ ├─────────────────────────────────────────┐
│ ┌─┴─╖ │
│ ┌─┤ · ╟────────────────────────────┐ ╓┬───╖ │
│ │ ╘═╤═╝ ├───╫┘Ṗp ╟─┤
│ │ │ ╔═══╗ ┌────╖ ┌─┴─╖ ╙─┬──╜ │
│ │ │ ║ 1 ╟─┤ >> ╟─────┤ · ╟───┴─┐ │
│ │ │ ┌───╖ ╚═══╝ ╘══╤═╝ ╘═╤═╝ │ │
│ │ ┌─┴──┤ ♯ ╟─────┐ ┌──┴─╖ ┌───╖ │ │ │
│ │ │ ╘═══╝ ┌─┐ │ ┌──┤ Ṗp ╟─┤ ♭ ╟─┴─┐ │ │
│ │ │ ├─┘ └─┤ ╘══╤═╝ ╘═══╝ ┌─┘ │ │
│ │ │ ╔═╧═╕ ┌─┴─╖ ┌─┴─╖ ┌─┴─╖ │ │
│ │ └────────╢ ├─┤ · ╟─┤ ? ╟─────┤ · ╟─┐ │ │
│ │ ┌───╖ ╚═╤═╛ ╘═╤═╝ ╘═╤═╝ ╘═╤═╝ │ │ │
│ ┌─┴─┤ ♭ ╟─┐ ┌──┴─╖ │ ┌─┴─╖ │ │ │ │
│ │ ╘═══╝ └─┤ Ṗp ╟───┘ ┌─┤ ? ╟───────┘ │ │ │
│ ┌───╖ │ ╔════╗ ╘══╤═╝ │ ╘═╤═╝ │ │ │
┌─┴─┤ ÷ ╟──┘ ║ −1 ║ ┌──┴─╖ ╔═╧═╗ │ ┌┴┐ │ │
│ ╘═╤═╝ ╚══╤═╝ ┌─┤ >> ╟─┐ ║ 0 ║ └┬┘ │ │
│ ┌─┴─╖ ┌────╖ │ │ ╘════╝ │ ╚═══╝ │ │ │
│ │ × ╟─┤ << ╟─┘ ┌─┴─┐ ╔═╧═╗ │ │ │
│ ╘═╤═╝ ╘══╤═╝ ┌┴┐ ┌┴┐ ║ 1 ╟───────────────────┴─┐ │ │
└─────┘ ┌┴┐ └┬┘ └┬┘ ╚═══╝ ├─┘ │
└┬┘ │ └──────────────────────────────┘ │
┌─┴─╖ ┌─┴──╖ │
│ ÷ ╟─┤ << ╟─┐ │
╘═╤═╝ ╘════╝ ├──────────────────────────────────┘
┌┴┐ │
└┬┘ │
╔════╗ ┌─┴──╖ │
║ −1 ╟─┤ << ╟───────┘
╚════╝ ╘════╝
সহায়ক ফাংশন Ṗp, গ্রহণ করে:
একটি চলমান কাউন্টার যা এটি 0 না পৌঁছানো অবধি কমতে থাকে।
চালুনি, যা প্রতিটি সংখ্যার জন্য কিছুটা সেট করে যা ইতিমধ্যে অ-প্রধানমন্ত্রী হিসাবে পরিচিত। প্রাথমিকভাবে, কমপক্ষে উল্লেখযোগ্য বিটটি 2 নম্বরটি উপস্থাপন করে তবে আমরা প্রতিটি অধিকারের সাথে এই ডানটি স্থানান্তর করি।
একটি সংখ্যা এন যা সিভের সর্বনিম্ন বিট দ্বারা কোন সংখ্যাটি প্রতিনিধিত্ব করে তা নির্দেশ করে; এটি প্রতিটি পুনরাবৃত্তির সাথে বর্ধিত হয়।
প্রতিটি পুনরাবৃত্তিতে, যদি চালনীটির সর্বনিম্ন বিট 0 হয়, আমরা একটি প্রাথমিক এন পেয়েছি । আমরা এরপরে পুনরাবৃত্তিতে যাওয়ার আগে চালনাতে প্রতিটি এন- তৃতীয় বিট সেট করতে একটি এনএক্সএন গ্রিডের সারি, কলাম এবং ত্রিভুজগুলি পূর্বে বর্ণিত সূত্রটি ব্যবহার করি ।
③ Ḟপ্রধান গুণাবলী
╓───╖
║ Ḟ ║
╙─┬─╜
┌───────┴──────┐
│ ┌───╖ ┌────╖ │
└─┤ Ṗ ╟─┤ Ḟp ╟─┘
╘═══╝ ╘═╤══╝
│
┌────────────────────────────────────────────┐
│ ╓┬───╖ │
┌───────┴─┐ ┌───────────────────────┐ ┌─╫┘Ḟp ╟─┘
│ ╔═══╗ ┌─┴─╖ ┌─┴─╖ ┌───┐ ┌────╖ ┌─┴─╖ │ ╙────╜
│ ║ 0 ╟─┤ ╟─┤ · ╟─┘┌┐ └─┤ Ḟp ╟──┐ ┌─┤ · ╟─┴──┐
│ ╚═══╝ └─┬─╜ ╘═╤═╝ └┤ ╘═╤══╝ ├─┘ ╘═╤═╝ │
│ ┌─┴─┐ ┌─┴─╖ ╔═╧═╕ ┌─┴─╖ ┌─┴─╖ ┌─┴──╖ ┌─┴─╖
│ │ └─┤ · ╟─╢ ├─┤ ? ╟─┤ · ╟─┤ ÷% ╟─┤ · ╟─┐
│ │ ╘═╤═╝ ╚═╤═╛ ╘═╤═╝ ╘═╤═╝ ╘═╤══╝ ╘═╤═╝ │
│ │ ┌──┴─╖ │ ┌─┴─╖ ┌─┴─╖ └──────┘ │
│ │ │ Ḟp ╟───┘ ┌─┤ ? ╟─┤ ≤ ║ │
│ ┌─┴─╖ ╘══╤═╝ │ ╘═╤═╝ ╘═╤═╝ │
└─────┤ · ╟─────┘ ╔═╧═╗ │ ╔═╧═╗ │
╘═╤═╝ ║ 0 ║ ║ 2 ║ │
│ ╚═══╝ ╚═══╝ │
└──────────────────────────────────────────┘
এটি মোটামুটি সোজা-এগিয়ে। প্রাইমগুলির মাধ্যমে কেবল এন পর্যন্ত পুনরাবৃত্তি করুন এবং দেখুন কোনটি এন ভাগ করে । এক ডিভাইড হলে এন , সঙ্গে বহন মনে রাখবেন একই আমরা এটা একাধিক বার ফিরে যদি এটা ভাগ মৌলিক তাই এন একাধিক বার। এটি 2 এর চেয়ে কম সংখ্যার জন্য খালি ক্রমটি প্রদান করে।
A ◇ ◆একটি হীরা তৈরি করুন
এই ফাংশনটি একটি চরিত্র এবং ব্যাসার্ধের দ্বারা প্রদত্ত একক হীরা তৈরি করে। এটি কেবল চরিত্রটি হীরার মাঝখানে রাখার জন্য ব্যবহার করে।
┌───╖
┌─────────────────────┤ ♯ ╟───────────┬─────────┐
│ ┌───╖ ╔═══╗ ┌───┐ ╘═══╝ │ │
└─┤ ♫ ╟─╢ 0 ║ │ ┌─┴─╖ │ │
╘═╤═╝ ╚═══╝ │ │ ʭ ╟───┐ │ │
┌─┴─╖ ┌─────┘ ╘═╤═╝ │ │ │
│ ɱ ╟───┤ ┌───╖ ┌─┴─╖ ╔═══╗ ╓───╖ │ │
╘═╤═╝ └─┤ ɹ ╟─┤ ʓ ╟─╢ 1 ║ ┌─╢ ◇ ╟─┤ │
│ ╔═══╗ ╘═══╝ ╘═══╝ ╚═══╝ │ ╙───╜ │ │
│ ║ 0 ║ │ ┌─┴─╖ │
│ ╚═╤═╝ │ │ ♭ ║ │
╔═╧═╕ │ ╔════╗ │ ╘═╤═╝ │
┌───╢ ├─┘ ┌─╢ 21 ║ ┌─┴─╖ ┌─┴─╖ ┌─┴─┐
│ ╚═╤═╛ │ ╚════╝ ┌────────┤ · ╟───┤ · ╟─┐ ┌─┴─╖ │
│ ┌─┴─╖ ┌─┴──╖ ┌───┘ ╘═╤═╝ ╘═╤═╝ ├─┤ = ║ │
│ ┌─┤ ‼ ╟─┤ >> ║ │ │ ┌─┴─╖ │ ╘═╤═╝ │
│ │ ╘═══╝ ╘═╤══╝ │ │ ┌─┤ ? ╟─┘ │ │
│ │ ┌───╖ │ ┌──┘ │ │ ╘═╤═╝ │ │
│ └─┬─┤ ⇄ ╟─┘ │ ┌─────┐ │ │ ┌─┴─╖ │ │
│ │ ╘═══╝ ┌─┴─╖ ┌─┴─╖ ┌─┴─╖ ┌─┴─╖ └─┤ · ╟──┬──┘ │
│ └───────┤ · ╟─┤ ? ╟─┤ · ╟─┤ ‼ ║ ╘═╤═╝ │ │
│ ╘═╤═╝ ╘═╤═╝ ╘═╤═╝ ╘═╤═╝ ┌─┴─╖ │ │
│ └─────┘ └─┬───┘ ┌───┤ … ║ │ │
│ ┌─────┐ │ │ ╘═╤═╝ │ │
│ ╔══╧═╗ ┌─┴─╖ ┌─┴─╖ ┌─┴─╖ ╔═╧══╗ │ │
│ ║ 32 ║ │ … ╟─┤ ‼ ╟─┤ ‼ ║ ║ 32 ║ │ │
│ ╚════╝ ╘═╤═╝ ╘═══╝ ╘═╤═╝ ╚════╝ │ │
│ ┌─┴─╖ ╔═╧══╗ │ │
│ ┌───┤ − ╟───┬─┐ ║ 46 ║ │ │
│ ┌─┴─╖ ╘═══╝ │ │ ╚════╝ │ │
└─────────────┤ · ╟─────────┘ └──────────────┘ │
╘═╤═╝ │
└───────────────────────────────────┘
এটি অলস ক্রমগুলির ভারী ব্যবহার করে। এখানে কিভাবে এটা কাজ করে:
0 থেকে r (অন্তর্ভুক্ত) এর পূর্ণসংখ্যার ক্রম তৈরি করুন ।
প্রতিটি যেমন পূর্ণসংখ্যা জন্য α (উৎপন্ন একটি স্ট্রিং এর মধ্যে রয়েছে দ - α ) স্থান ( …), একটি ডট দ্বারা অনুসরণ, দ্বারা অনুসরণ α স্পেস - যদি না α = দ , যে ক্ষেত্রে এক কম স্থান তৈরী করা এবং চিঠি লিখবেন। আমাদের কাছে এখন হীরার শীর্ষ-বাম কোয়াটার রয়েছে।
এই স্ট্রিংগুলির প্রতিটিটিতে একই স্ট্রিংয়ের অন্য একটি অনুলিপি যুক্ত করুন, তবে অক্ষরগুলি বিপরীত ( ⇄) দিয়ে এবং তারপরে প্রথম অক্ষরটি মুছে ফেলা হবে ( >> 21)। আমাদের কাছে এখন হীরার শীর্ষ অর্ধেক।
এই ক্রমটি নিন এবং এটিতে একই ক্রম যুক্ত করুন, তবে বিপরীত ( ɹ) এবং প্রথম উপাদানটি সরানো ( ʓ) দিয়ে। আমাদের কাছে এখন পুরো হীরা।
এখন আমাদের কাছে স্ট্রিংগুলি রয়েছে যা হীরাটি তৈরি করে, তবে আমাদের আরও কিছু তথ্য প্রয়োজন। আমাদের জানতে হবে যে হীরাটির উল্লম্ব মাঝখানে। প্রথমদিকে এটি অবশ্যই আর , তবে এটির নীচে এবং নীচে অন্য হীরাগুলি সংযুক্ত করার পরে আমাদের "মাঝারি" হীরাটির অবস্থানের উপর নজর রাখতে হবে যাতে আমরা হীরার অন্যান্য স্ট্যাকগুলি যথাযথভাবে সারিবদ্ধ করতে পারি । হীরার অনুভূমিক ব্যাপ্তির জন্য একই হয় (উপরে এবং নীচে হীরা যুক্ত করার সময় এটি প্রয়োজন)। আমি চিঠিটি ট্র্যাক রাখার সিদ্ধান্ত নিয়েছি; আমার এটি দরকার কারণ অন্যথায় ফাংশনটি ⬗(যা আমরা পরবর্তী বিভাগে পেয়ে যাব) চারটি পরামিতি থাকতে হবে, তবে ফানসিটন কেবল তিনটি অনুমতি দেয়।
┌─────────────────┐
│ ╓───╖ │
├──╢ ◆ ╟──┐ │
│ ╙───╜ │ │
│ ┌─────┴───┐ │
┌─┴─╖ │ ┌───╖ ┌─┴─╖ │
┌─┤ · ╟─┴─┤ › ╟─┤ › ║ │
│ ╘═╤═╝ ╘═╤═╝ ╘═╤═╝ │
│ ┌─┴─╖ │ ┌─┴─╖ │
│ │ ◇ ╟─────────┤ › ╟─┘
│ ╘═╤═╝ ╘═══╝
└───┘
›[ X , y ) সহ একটি কাঠামো তৈরি করতে আমরা তালিকা API (তালিকার সামনের অংশে উপাদানগুলি যুক্ত করে) ব্যবহার করি , c , q ] সমন্বিত , যেখানে x হীরাটির অনুভূমিক কেন্দ্রের x- স্থানাঙ্ক, y হ'ল y- বেসলাইন, গ এর সমন্বয় হ'ল অক্ষর এবং q হল স্ট্রিংগুলির অলস অনুক্রম। এই কাঠামোটি এখন থেকে মধ্যবর্তী পর্যায়ের সমস্তগুলি ব্যবহার করতে ব্যবহৃত হবে।
Di ⬗হীরাটি উল্লম্বভাবে যুক্ত করুন
এই ফাংশনটিতে একটি বিদ্যমান হীরা স্ট্যাক, একটি ব্যাসার্ধ এবং একটি বুলিয়ান লাগে যা নতুন হীরা শীর্ষে (সত্য) বা নীচে (মিথ্যা) যুক্ত করতে হবে তা নির্দেশ করে।
┌─────────────────────────────────────────────────┐
┌─┴─╖ ┌───────────────────────────┐ ┌───╖ ┌─┴─╖
┌───┤ · ╟─────────┘ ╔═══╗ ┌───────────────┐ ├─┤ ‹ ╟─┤ ‹ ║
│ ╘═╤═╝ ║ 1 ║ │ ╓───╖ │ │ ╘═╤═╝ ╘═╤═╝
│ │ ╚═╤═╝ └─╢ ⬗ ╟─┐ │ ┌─┴─╖ │ ┌─┴─╖
│ │ ┌───╖ ┌───╖ ┌─┴──╖ ╙─┬─╜ │ └─┤ · ╟─┘ ┌─┤ ‹ ╟─┐
│ ┌─┴─┤ + ╟─┤ ♯ ╟─┤ << ║ │ │ ╘═╤═╝ │ ╘═══╝ │
│ │ ╘═╤═╝ ╘═══╝ ╘═╤══╝ │ ┌─┴─╖ │ │ │
│ │ ┌─┴─╖ └───────┴─┤ · ╟───┐ ┌─┴─╖ │ │
│ └───┤ ? ╟─┐ ╘═╤═╝ ┌─┴───┤ · ╟─┐ │ │
│ ╘═╤═╝ ├───────────────────┘ │ ╘═╤═╝ │ │ │
│ ┌───╖ ┌─┴─╖ │ ┌─────┐ │ ┌───╖ │ │ │ │
└─┤ › ╟─┤ › ║ │ ┌───╖ ┌─┴─╖ │ └─┤ − ╟─┘ │ │ │
╘═╤═╝ ╘═╤═╝ │ ┌─┤ ‼ ╟─┤ ‼ ║ │ ╘═╤═╝ │ │ │
│ ┌─┴─╖ │ │ ╘═╤═╝ ╘═╤═╝ ┌─┴─╖ ┌─┴─╖ │ │ │
┌───┤ · ╟─┘ │ ┌─┴─╖ ├───┤ · ╟─┤ … ║ │ │ │
┌───┐ │ ╘═╤═╝ └─┤ · ╟───┘ ╘═╤═╝ ╘═╤═╝ │ │ │
│ ┌─┴─╖ ┌─┴─╖ ┌─┴─╖ ╘═╤═╝ │ ╔══╧═╗ │ │ │
│ │ ʭ ╟─┤ ? ╟─┤ › ╟─┐ ╔═══╗ ╔═╧═╕ │ ║ 32 ║ │ │ │
│ ╘═╤═╝ ╘═╤═╝ ╘═══╝ │ ║ 0 ╟─╢ ├─────────┘ ╚════╝ │ │ │
│ ┌─┘ ┌─┴─╖ │ ╚═══╝ ╚═╤═╛ │ │ │
│ └─┬───┤ ʭ ╟─┐ ┌─┴─╖ ┌─┴─╖ │ │ │
│ ┌─┴─╖ ╘═══╝ ├───┤ · ╟─────┤ ɱ ║ │ │ │
└─┤ · ╟───────┘ ╘═╤═╝ ╘═╤═╝ │ │ │
╘═╤═╝ │ ┌─┴─╖ │ │ │
│ └─────┬─┤ ◇ ╟───────────────────────┘ │ │
│ │ ╘═══╝ ┌─┴─╖ │
│ └─────────────────────────────┤ · ╟─────┘
│ ╘═╤═╝
└─────────────────────────────────────────────────────┘
এটিও মোটামুটি সোজা-এগিয়ে; ‹কাঠামো আনপ্যাক করতে ব্যবহার ; ◇নতুন হীরা তৈরি করতে ব্যবহার করুন ; ব্যবহারɱনতুন হীরাতে প্রতিটি স্ট্রিংয়ের শুরু এবং শেষের দিকে ফাঁকা স্থান যুক্ত (মানচিত্র) করুন যাতে এটির একই প্রস্থ থাকে; ʭপুরানো (নীচে থাকলে) বা নতুন (উপরে থাকলে) এর উপর নতুন স্ট্রিং যুক্ত করুন ; এবং অবশেষে ›সমস্ত নতুন মান সহ কাঠামোটি তৈরি করতে ব্যবহার করুন । বিশেষত, আমরা যদি নীচে সংযোজন করি তবে y পরিবর্তন হয় না, তবে যদি আমরা শীর্ষে সংযোজন করি তবে y অবশ্যই বৃদ্ধি পাবে ♯(r << 1)( r নতুন হীরার ব্যাসার্ধ)।
⑥ ❖CONCATENATE অনুভূমিকভাবে stacks
এটি তাদের সবার বৃহত্তম কাজ। আমি অস্বীকার করব না যে এই অধিকারটি পাওয়া মোটামুটিভাবে কঠোরভাবে হয়েছিল। সঠিক উল্লম্ব সারিবদ্ধিকে সম্মান করার সময় এটি দুটি স্ট্যাক নেয় এবং অনুভূমিকভাবে তাদেরকে সংযুক্ত করে।
┌──────────────────────────────────┬───────────────────────┐
│ ┌──────────────────┐ ┌─┴─╖ ┌─┴─╖
│ │ ┌───────────┐ └───────┤ · ╟───┬───────────────┤ · ╟─────────────┐
│ │ ┌─┴─╖ │ ╘═╤═╝ │ ╘═╤═╝ │
│ │ │ ‹ ╟───┐ │ ┌─┴─╖ ┌─┴─╖ │ │
│ │ ╘═╤═╝ ┌─┴─╖ └─────────┤ · ╟─┤ · ╟─────────┐ │ │
│ │ ├─┐ │ ‹ ╟───┐ ╘═╤═╝ ╘═╤═╝ │ │ │
│ │ └─┘ ╘═╤═╝ ┌─┴─╖ ╓───╖ ┌─┴─╖ │ │ │ │
│ │ │ │ ‹ ╟─╢ ❖ ╟─┤ ‹ ║ │ │ │ │
│ │ │ ╘═╤═╝ ╙───╜ ╘═╤═╝ ┌─┴─╖ ┌─┐ │ │ │
│ │ │ │ └───┤ ‹ ║ └─┤ │ │ │
│ │ │ │ ╘═╤═╝ ┌─┴─╖ │ │ │
│ │ │ │ └───┤ ‹ ║ │ │ │
│ │ │ └─────────────────┐ ╘═╤═╝ │ │ │
│ │ │ ┌─┴─╖ ┌─┴─╖ ┌─┴─╖ ┌─┴─╖ │
│ │ │ ┌──────────────┤ · ╟─┤ · ╟─┤ · ╟─┤ · ╟──────┐ │
│ │ └──────┤ ╘═╤═╝ ╘═╤═╝ ╘═╤═╝ ╘═╤═╝ │ │
│ ┌─┴─╖ ┌─┴─╖ ┌─┴─╖ │ │ │ │ │
│ ┌─┤ · ╟─────────────┤ · ╟────────────┤ · ╟───┘ │ │ │ │
│ │ ╘═╤═╝ ╘═╤═╝ ╘═╤═╝ │ │ │ │
│ │ │ │ ┌────╖ │ ┌─┴─╖ │ │ │
╔═══╗ ┌────╖ │ │ │ │ ┌─┤ << ╟─┴─────────┤ · ╟─┐ │ │ │
║ 1 ╟─┤ << ╟────────┘ │ │ │ │ ╘═╤══╝ ╘═╤═╝ │ │ │ │
╚═══╝ ╘═╤══╝ ╔════╗ │ │ ┌─┴─╖ │ ┌─┴─╖ │ │ │ ┌──┴──┐ │
┌─┴─╖ ║ 32 ╟─┐ │ │ ┌─────────────┤ · ╟───┐ │ │ ♯ ║ │ │ │ ┌─┴─╖ ┌─┴─╖ │
│ ♯ ║ ╚════╝ │ │ └─┤ ┌───╖ ╘═╤═╝ │ │ ╘═╤═╝ ┌───╖ ╔════╗ │ │ │ ┌─┤ ? ╟─┤ < ║ │
╘═╤═╝ ┌───╖ │ │ └─┤ − ╟─────────┴─┐ │ │ └───┤ … ╟─╢ 32 ║ │ │ │ │ ╘═╤═╝ ╘═╤═╝ │
└─────┤ … ╟─┘ │ ╘═╤═╝ ┌─┴─╖ │ └───┐ ╘═╤═╝ ╚════╝ │ │ │ │ ┌─┴─╖ ├───┘
╘═╤═╝ │ ┌───╖ ┌─┴─╖ ┌───────┤ · ╟─┴─┐ ╔═╧═╗ ┌─┴─╖ ┌──────┘ │ │ └─┤ · ╟───┘
│ ┌─┴─┤ ʭ ╟─┤ ȶ ║ │ ┌───╖ ╘═╤═╝ │ ║ 1 ║ │ ⁞ ║ │ ┌────────┘ │ ╘═╤═╝
┌─┴─╖ │ ╘═╤═╝ ╘═╤═╝ └─┤ > ╟───┴─┐ │ ╚═══╝ ╘═╤═╝ │ │ ┌──────┘ └────┐
│ ⁞ ║ │ ┌─┴─╖ ┌─┴─╖ ╘═╤═╝ │ ┌─┴─╖ ┌───╖ │ │ │ ┌─┴─╖ ┌───╖ ┌───╖ ┌─┴─╖
╘═╤═╝ └───┤ ? ╟─┤ · ╟─────┴─┐ │ │ − ╟─┤ ȶ ╟─┴─┐ │ │ │ + ╟─┤ ♯ ╟─┤ › ╟─┤ › ║
┌─┴─╖ ╘═╤═╝ ╘═╤═╝ │ │ ╘═╤═╝ ╘═╤═╝ │ │ │ ╘═╤═╝ ╘═══╝ ╘═╤═╝ ╘═╤═╝
┌────────────────────┤ · ╟───────┴───┐ └─┐ ┌─┴─╖ └───┘ ┌─┴─╖ │ │ └───┘ │ │
│ ╘═╤═╝ ┌─┴─╖ │ ┌─┤ · ╟───────────┤ · ╟───┘ │ │
│ ┌────────────────┐ │ ┌───────┤ · ╟─┘ │ ╘═╤═╝ ╘═╤═╝ │ │
│ │ ╔════╗ ┌───╖ ┌─┴─╖ └───┤ ┌───╖ ╘═╤═╝ │ │ │ ┌─┴───┐ │
│ │ ║ 32 ╟─┤ ‼ ╟─┤ · ╟───┐ └─┤ ʭ ╟───┘ │ │ ┌─┴─╖ ┌─┴─╖ ┌─┴─╖ │
│ │ ╚════╝ ╘═╤═╝ ╘═╤═╝ │ ╘═╤═╝ ┌─────┘ │ │ ʭ ╟─┤ · ╟─┤ ? ╟─┐ │
│ │ ┌─┴─╖ ╔═╧═╕ ╔═╧═╕ ┌─┴─╖ ┌─┴─╖ │ ╘═╤═╝ ╘═╤═╝ ╘═╤═╝ │ │
│ │ │ ‼ ╟─╢ ├─╢ ├─┤ ʑ ╟───┤ ʭ ║ ┌─┴─╖ └─────┘ │ │ │
│ │ ╘═╤═╝ ╚═╤═╛ ╚═╤═╛ ╘═╤═╝ ╘═╤═╝ ┌───┤ · ╟─────────────────────────┘ │ │
│ └──────────┘ │ ╔═╧═╗ │ ├───┘ ╘═╤═╝ │ │
│ └───╢ 0 ║ ┌─┴─╖ ┌─┴─╖ └───────────────────────────────┘ ┌─┴─╖ ╔═══╗
│ ╚═══╝ │ ȶ ╟───┤ · ╟─────────────────────────────────────────────────────┤ › ╟─╢ 0 ║
│ ╘═╤═╝ ╘═╤═╝ ╘═══╝ ╚═══╝
│ ┌─┴─╖ ┌─┴─╖
│ ┌─────┤ ? ╟─┐ │ ɕ ║
│ ┌─┴─╖ ╘═╤═╝ │ ╘═╤═╝
│ ┌───╖ ┌─┤ < ╟───┬─┘ │ │
└────────────┤ ɕ ╟─┤ ╘═══╝ ┌─┴─╖ │ │
╘═══╝ └───────┤ · ╟───┘ │
╘═╤═╝ │
└─────────┘
এখানে কিভাবে এটা কাজ করে.
প্রথমে প্রতিটি স্ট্যাকের ⁞জন্য স্ট্রিংয়ের একটি অসীম অনুক্রম ( ) তৈরি করুন, যার প্রত্যেকটিতে …স্ট্যাকের প্রস্থ অনুযায়ী স্পেস ( ) থাকে ।
Y স্ট্যাকগুলি মান আমাদের তা বলুন "নিচে সরাতে" থেকে এবং কতটা একে চাহিদা। উপযুক্ত স্থান ক্রম প্রস্তুত করুন, কাটা ( ȶ) কে ডান দৈর্ঘ্যে ( y1 - y2 বা y2) করতে হবে - y1 যথাযথ হিসাবে)।
এখন প্রতিটি স্ট্রিং সিকোয়েন্সগুলির দৈর্ঘ্য নির্ধারণ করুন ( ɕ), যা তাদের উচ্চতা আমাদের বলে। কোনটি লম্বা তা সন্ধান করুন।
উভয় স্ট্যাকের সাথে অসীম স্থানের ক্রম যুক্ত করুন।
ʑতাদের একসাথে রাখার জন্য জিপ ( ) ব্যবহার করুন। প্রতিটি জোড় স্ট্রিংয়ের জন্য, তাদের ( ‼) এর সাথে একটি অতিরিক্ত স্থানের সাথে সামঞ্জস্য করুন ।
তারপরেȶ তার ফলাফলটি সবচেয়ে দীর্ঘ উচ্চতায় ছাঁটাই করতে ব্যবহার করুন । এই দেরিতে করে, আমাদের যত্ন নিতে হবে না তাদের মধ্যে কোনটির প্যাডিং দরকার।
অবশেষে আবার কাঠামো তৈরি করুন। এই মুহুর্তে, আমাদের আর হীরার চরিত্রের প্রয়োজন নেই, তাই আমরা এটি 0 তে সেট করেছি The এক্স মানটি কেবল সংক্ষেপে এবং বর্ধিত হয় (যাতে স্ট্যাকের প্রস্থটি এখনও গণনা করা যায় ♯(x << 1))। দ্যY মান দুই উচ্চতর এক সেট করা হয়।
⑦ ↯ একটি স্ট্রিং অক্ষরে ওভার Iterate
এটি অন্য দরকারী ফাংশন যা আমি গ্রন্থাগারে যুক্ত করব। একটি স্ট্রিং দেওয়া, এটি আপনাকে প্রতিটি অক্ষর কোডযুক্ত একটি অলস ক্রম দেয়।
╓───╖
║ ↯ ║
╙─┬─╜
┌──────────────┴────────────────┐
│ ┌─┐ ╔═══╗ ┌───╖ │
│ └─┤ ┌────╢ 0 ╟─┤ ≠ ╟─┴─┐
┌──────┴─┐ ┌┐ ╔═╧═╕ ┌─┴─╖ ╚═══╝ ╘═╤═╝ │
│ ├─┤├─╢ ├─┤ ? ╟──────────┤ │
│ │ └┘ ╚═╤═╛ ╘═╤═╝ ╔════╗ ┌─┴─╖ │
│ ╔══════╧══╗ ┌─┴─╖ │ ║ −1 ╟─┤ ≠ ╟───┘
│ ║ 2097151 ║ │ ↯ ║ ╚════╝ ╘═══╝
│ ╚═════════╝ ╘═╤═╝
│ ┌─┴──╖ ╔════╗
└─────────────┤ >> ╟─╢ 21 ║
╘════╝ ╚════╝
and2097151 সহ একটি স্ট্রিং আইং প্রথম অক্ষরটি দেয়। >>21 এর দ্বারা এটি এটিকে সরিয়ে দেয়। Esolangs পৃষ্ঠাতে ব্যাখ্যা করা কারণ হিসাবে আমরা 0 এবং both1 উভয়ের জন্য যাচাই করি ; এটি এই চ্যালেঞ্জের সাথে প্রাসঙ্গিক নয়, তবে আমি চাই লাইব্রেরির কাজটি সঠিক হোক।
⑧ ⬖ চরিত্রটি হীরা স্ট্যাকে রূপান্তর করুন
এই ফাংশনটি একটি একক অক্ষর নেয় এবং উল্লম্ব স্ট্যাকের জন্য সেই চরিত্রটি উপস্থাপন করে কাঠামোটি ফিরিয়ে দেয়।
╔════╗
║ 96 ║ ╓───╖
╚══╤═╝ ║ ⬖ ║
┌───╖ ┌───╖ ┌─┴─╖ ╙─┬─╜
┌───┤ ɗ ╟─┤ Ḟ ╟─┤ − ║ │
│ ╘═╤═╝ ╘═══╝ ╘═╤═╝ │
│ ┌─┴─╖ ├──────┘ ┌──┐
│ │ ɹ ║ │ ┌───┤ │
│ ╘═╤═╝ ┌─────┘ │ │ │
╔═╧═╗ ┌─┴─╖ ┌─┴─╖ │ ┌┴┐ │
║ 1 ╟─┤ ╟─┤ · ╟─────┐ ╔═╧═╕└┬┘ │
╚═══╝ └─┬─╜ ╘═╤═╝ ┌─┴─╢ ├─┘ ┌┴┐
┌───────────┐ │ └─┐ │ ╚═╤═╛ └┬┘
┌─┴─╖ │ │ ┌───╖ │ └─┐ ╔═╧═╕ ┌──┴─╖ ╔═══╗
┌─────┤ · ╟───┐ │ └─┤ ◆ ╟─┘ ┌─┴─╢ ├─┤ << ╟─╢ 1 ║
┌──┴─┐ ╘═╤═╝ │ │ ╘═╤═╝ │ ╚═╤═╛ ╘════╝ ╚═╤═╝
│ ┌──┴─╖ ┌─┴─╖ ╔═╧═╕ ╔═╧═╕ ┌─┴─╖ ┌─┴─╖ ┌─┴─╖ ┌─┴─╖
│ │ >> ╟─┤ ⬗ ╟─╢ ├─╢ ├─┤ ʩ ╟───┤ · ╟─┤ ʑ ╟────────┤ ⸗ ║
│ ╘══╤═╝ ╘═╤═╝ ╚═╤═╛ ╚═╤═╛ ╘═╤═╝ ╘═╤═╝ ╘═╤═╝ ╘═╤═╝
│ ╔═╧═╗ ┌┴┐ │ ╔═╧═╗ │ └─────┘ ╔═╧═╗
│ ║ 1 ╟─┐└┬┘ └───╢ 0 ║ ║ 0 ║
│ ╚═══╝ ├─┘ ╚═══╝ ╚═══╝
└────────┘
এই ফাংশনটি আকর্ষণীয় কারণ আমাদের ডায়মন্ডগুলি নীচে এবং শীর্ষে পর্যায়ক্রমে সংযুক্ত করার প্রয়োজন হয়েছিল needed আমি এটি কীভাবে করেছি তা এখানে:
প্রথমে 96৯ টি বিয়োগ করুন (সুতরাং 'a'1 হয়ে যায়), মৌলিক উপাদানগুলি ( Ḟউপরে) পান, ɗক্রমটি খালি থাকলে উপাদান 1 যুক্ত করতে ব্যবহার করুন, এবং তারপরে বিপরীত (ɹ ) ।
প্রথম উপাদানটি বন্ধ করুন এবং ◆স্ট্যাকটি জাম্পস্টার্ট করার জন্য কল করুন ।
এখন, ⸗অলস ক্রম উত্পন্ন করতে ব্যবহার করুন যা কেবল 0 এবং 1 সংখ্যাকে অনির্দিষ্টকালের জন্য পরিবর্তিত করে।
সেটিতে ʑ(জিপ) ব্যবহার করুন এবং বাকি মূল উপাদানগুলি। প্রতিটি প্রধান ফ্যাক্টরের জন্য, এটি 1 এবং or0/1 দ্বারা বাম দিকে চালিত করুন। আমাদের এখন একটি সিকোয়েন্স রয়েছে যা প্রাথমিক সংখ্যাগুলি এবং শীর্ষ / নীচের তথ্যগুলিকে এনকোড করে ।
শেষ অবধি, ব্যবহার ʩ(ভাঁজ বাম / সমষ্টি)। প্রাথমিক মান হ'ল আমরা উপরের প্রথম উপাদান থেকে তৈরি স্ট্যাক। প্রতিটি মান ν এর জন্য , ⬗পূর্ববর্তী স্ট্যাক, প্রাইম ( ν >> 1) এবং শীর্ষে বা নীচে ( ν & 1) নীচে কল করুন (একটি নতুন হীরা সংযোজন করুন )।
⑨ প্রধান প্রোগ্রাম
এখানে আমরা মূল কাজটি করি।
┌─────┐
│ ┌─┴─╖
│ │ ⬖ ║
╔═══╗ ╔═╧═╕ ╘═╤═╝
║ 0 ╟─╢ ├───┘
╚═╤═╝ ╚═╤═╛ ┌───╖ ┌───╖ ╔═══╗
└─┐ └───┤ ɱ ╟─┤ ↯ ╟─╢ ║
┌─────────┐ └─────┐ ╘═╤═╝ ╘═══╝ ╚═══╝
│ ┌─┴─╖ │ ┌─┴─╖
│ ┌───┤ · ╟───┐ └─┤ ╟─┐
│ │ ╘═╤═╝ │ └─┬─╜ │
│ ┌─┴─╖ ╔═╧═╕ ╔═╧═╕ ┌─┴─╖ │
│ │ ❖ ╟─╢ ├─╢ ├─┤ ʩ ╟─┘
│ ╘═╤═╝ ╚═╤═╛ ╚═╤═╛ ╘═╤═╝
└───┘ ╔═╧═╗ │ ┌─┴─╖ ┌─┐
║ 0 ╟───┘ ┌─┤ ‹ ╟─┴─┘
╚═══╝ │ ╘═══╝
┌─┴─╖ ┌─┐
┌─┤ ‹ ╟─┴─┘
│ ╘═══╝
╔════╗ ┌───╖ ┌─┴─╖ ┌─┐
║ 10 ╟─┤ ʝ ╟─┤ ‹ ╟─┴─┘
╚════╝ ╘═╤═╝ ╘═══╝
│
প্রথমে ɱইনপুট স্ট্রিংয়ের অক্ষরগুলির ( ) ম্যাপ করুন ↯এবং ব্যবহার করে প্রতিটিকে হীরা স্ট্যাকে পরিণত করুন ⬖। প্রথম উপাদানটি এটি থেকে সরিয়ে নিন এবং ( ʩ)) সমস্তটি যুক্ত করে বাকী অংশে ভাঁজ করুন ❖) পরিশেষে, ‹স্ট্রিংগুলির ক্রম পেতে কাঠামোটি আনপ্যাক করুন এবং ʝ10 (নতুন লাইন) বিভাজক হিসাবে ব্যবহার করে তাদের সমস্তটিতে যোগ দিন।
উদাহরণ আউটপুট
ইনপুট:
crusaders
আউটপুট (গণনা করতে 9 সেকেন্ড সময় নিয়েছে; আকার সীমাবদ্ধতার কারণে এখানে পোস্ট করতে পারে না)।