ইমোজিকোড 0.5, 204 201 বাইট
🐋🚂🍇🐖🅰️➡🚂🍇🍊⬅🐕1🍇🍎1🍉🍮s 0🔂k⏩0🐕🍇🍦t➖🐕k🍮r t🔂i⏩1 t🍇🍊😛🚮t i 0🍇🍮➕r i🍉🍉🍮➕s✖r🅰️k🍉🍎➗s🐕🍉🍉
এটি অনলাইন চেষ্টা করুন!
-৩ বাইটগুলি "2 এর চেয়ে কম" এর পরিবর্তে "1 এর চেয়ে কম বা সমান" ব্যবহার করে কারণ "কম" চেয়ে ইমোজিতে বেশ দীর্ঘ ইউটিএফ -8 এনকোডিং রয়েছে। t
বাইট গণনা প্রভাবিত না করে একটি সতর্কতা নিঃশব্দ করতে হিমশীতলও করে তুলেছে ।
Named (পূর্ণসংখ্যা) শ্রেণিটি 🅰️ নামের একটি পদ্ধতি সহ প্রসারিত করে 🅰️ আপনি একটি সহজ প্রোগ্রাম লিখতে পারেন যা ইনপুট থেকে নম্বর নেয়, নাম্বারে কল করে the ফলাফলটি প্রিন্ট করে:
🏁🍇
🍦str🔷🔡😯🔤Please enter a number🔤
🍊🍦num🚂str 10🍇
😀🔡🅰️num 10
🍉🍓🍇
😀🔤Learn what a number is, you moron!🔤
🍉
🍉
এই অংশটি বার্তা এবং ত্রুটি পরিচালনার হাতছাড়া করে প্রচুর গল্ফ করা যেতে পারে, তবে এটি স্কোরের মধ্যে অন্তর্ভুক্ত নয়, তাই পথের মধ্যে পঠনযোগ্যতার উন্নতি করার পরিবর্তে আমি পরিবর্তে ইমোজিকোডের আরও বৈশিষ্ট্যগুলি দেখাতে পছন্দ করি।
Ungolfed
🐋🚂🍇
🐖🅰️➡🚂🍇
🍊◀️🐕2🍇
🍎1
🍉
🍮sum 0
🔂k⏩0🐕🍇
🍦nmk➖🐕k
🍮sig nmk
🔂i⏩1 nmk🍇
🍊😛🚮nmk i 0🍇
🍮➕sig i
🍉
🍉
🍮➕sum✖sig🅰️k
🍉
🍎➗sum🐕
🍉
🍉
ব্যাখ্যা
দ্রষ্টব্য: ইমোজি কোডে 0.5 তে প্রচুর ইমোজি পছন্দ পছন্দ করে না। এটি 0.x, সর্বোপরি। 0.6 এটি ঠিক করবে।
ইমোজিকোড হ'ল জেনারিক্স, প্রোটোকল, বিকল্পসমূহ এবং সমাপনী বৈশিষ্ট্যযুক্ত একটি অবজেক্ট-ভিত্তিক প্রোগ্রামিং ভাষা, তবে এই প্রোগ্রামটি কোনও ক্লোজার ব্যবহার করে না এবং সমস্ত জেনেরিক এবং প্রোটোকলগুলি অন্তর্ভুক্ত হিসাবে বিবেচিত হতে পারে, তবে কেবলমাত্র /চ্ছিক আই / ও স্টাবটিতে প্রদর্শিত হয়।
প্রোগ্রামটি কেবল কয়েকটি প্রকারে পরিচালিত হয়: 🚂 হল পূর্ণসংখ্যার প্রকার, 🔡 স্ট্রিং প্রকার এবং ⏩ হ'ল পরিসর প্রকার। কয়েকটি বুলিয়ান (👌) খুব উপস্থিত হয় তবে সেগুলি শুধুমাত্র শর্তে ব্যবহৃত হয়। বুলিয়ানরা যথাক্রমে সত্য এবং মিথ্যা অনুসারে 👍 বা 👎 এর মান নিতে পারে।
ইমোজিকোডে বর্তমানে কোনও অপারেটর নেই, সুতরাং সংযোজন এবং অন্যান্য অপারেশনগুলি যা সাধারণত অপারেটরগুলি ফাংশন হিসাবে প্রয়োগ করা হয়, এক্সপ্রেশনগুলি কার্যকরভাবে উপসর্গ চিহ্নটি ব্যবহার করে । অপারেটরগুলিও 0.6 তে পরিকল্পনা করা হয়েছে।
প্রথমে পরীক্ষা প্রোগ্রামটি মোকাবেলা করা যাক।
🏁
এটি 🏁 ব্লক, যা অন্য ভাষার প্রধানের সাথে তুলনা করা যেতে পারে।
🍇 ... 🍉
আঙ্গুর এবং তরমুজ ইমোজিকোডে কোড ব্লক ঘোষণা করে।
🍦str🔷🔡😯🔤Please enter a number🔤
এটি নামের "হিমায়িত" হিসাবে ঘোষণা করে str
এবং এটি ইনিশিয়ালাইজার (কনস্ট্রাক্টর) ব্যবহার করে তৈরি করা একটি নতুন স্ট্রিংয়ের মান সেট করে which যা স্ট্রিং হিসাবে একটি প্রম্পট নেয় এবং তারপরে ব্যবহারকারী থেকে একটি লাইন ইনপুট করে। ভেরিয়েবলের পরিবর্তে হিমশীতল কেন ব্যবহার করবেন? এটি পরিবর্তন হবে না, সুতরাং একটি ভেরিয়েবল একটি সতর্কতা নির্গত করতে পারে।
🍊🍦num🚂str 10
আসুন এটি ভেঙে দিন। 🚂str 10
str
আর্গুমেন্টের সাথে হিমায়িতকে on পদ্ধতিটি কল করে 10. কনভেনশন অনুসারে, কোনও প্রকারের নামের সাথে নামযুক্ত পদ্ধতিগুলি বস্তুকে সেই ধরণের রূপান্তর করে। 10 হল পূর্ণসংখ্যার রূপান্তরকরণের জন্য ব্যবহারের ভিত্তি। এই পদ্ধতিটি একটি alচ্ছিক 🍬🚂
,। বিকল্পগুলিতে বেস টাইপের মান বা কিছুই নয়, ইত্যাদি থাকতে পারে ⚡ যখন স্ট্রিংটিতে একটি নম্বর থাকে না, তখন ⚡ ফিরিয়ে দেওয়া হয়। মানটি ব্যবহার করতে, একটিকে using ব্যবহার করে alচ্ছিক আবরণ আনতে হবে, যা মান is হলে রানটাইম ত্রুটি উত্থাপন করে ⚡ অতএব, একটি alচ্ছিক আনারপ্যাটিংয়ের আগে কিছুতেই নিরীক্ষণ করা ভাল অভ্যাস। এটি এতটা সাধারণ, বাস্তবে ইমোজিকোডের জন্য এটি একটি শর্টহ্যান্ড রয়েছে। সাধারণত, 🍊
একটি "যদি" হয়।🍊🍦 variable expression
অর্থ: এক্সপ্রেশন মূল্যায়ন। Alচ্ছিকতে কিছুই নেই, শর্তটি 👎 (মিথ্যা) এ মূল্যায়ন করে। অন্যথায়, একটি হিমায়িত নামটিvariable
alচ্ছিকের মোড়কানো মান দিয়ে তৈরি করা হয় এবং শর্তটি 👍, (সত্য) এর সাথে মূল্যায়ন করে। অতএব, সাধারণ ব্যবহারে, 🍇 ... 🍉
শর্তাধীন নিম্নলিখিত ব্লকটি প্রবেশ করানো হয়।
😀🔡🅰️num 10
Code হ'ল প্রধান কোডটি 🐋 ব্যবহার করে to যা পার্টিশনের সংখ্যা গণনা করে। এটি কল করে 🅰️ num
হিমায়িত অবস্থায় আমরা শর্তসাপেক্ষে ঘোষণা করে এবং ফলাফলটি base পদ্ধতি অনুসারে বেস 10 ব্যবহার করে একটি স্ট্রিংয়ে রূপান্তর করি। তারপরে, the ফলাফল মুদ্রণ করে।
🍓🍇 ... 🍉
🍓 এর অর্থ "অন্য", সুতরাং যখন ব্যবহারকারী কোনও নম্বর সঠিকভাবে প্রবেশ করায় না তখন এই ব্লকটি প্রবেশ করা হয়।
😀🔤Learn what a number is, you moron!🔤
আক্ষরিক স্ট্রিং মুদ্রণ।
এখন, আসুন মূল প্রোগ্রামটি দেখুন। আমি বর্ণা ;্য সংস্করণটি ব্যাখ্যা করব; গল্ফযুক্ত সংস্করণটির সবেমাত্র সাদা স্থান মুছে ফেলা হয়েছে এবং ভেরিয়েবলগুলি একক বর্ণের নামের সাথে পুনরায় নামকরণ করা হয়েছে।
🐋🚂🍇 ... 🍉
🚂 শ্রেণি প্রসারিত করুন। এটি এমন একটি বৈশিষ্ট্য যা সাধারণত প্রোগ্রামিং ভাষায় পাওয়া যায় না। সুপার ক্লাস হিসাবে 🚂 দিয়ে একটি নতুন শ্রেণি তৈরির পরিবর্তে সরাসরি 🐋 সংশোধন করে।
🐖🅰️➡🚂🍇 ... 🍉
Named নামে একটি নতুন পদ্ধতি তৈরি করে যা একটি returns দেয় 🚂 এটি সূত্রটি ব্যবহার করে গণনা করা পার্টিশনের সংখ্যা প্রদান করেa(n) = (1/n) * Sum_{k=0..n-1} sigma(n-k)*a(k)
🍊⬅🐕1🍇
🍎1
🍉
Other অন্যান্য ভাষার সাথে this
বা এর অনুরূপ self
এবং পদ্ধতিটি যে আহ্বান করা হয়েছিল তাকে বোঝায়। এই প্রয়োগটি পুনরাবৃত্তিযোগ্য, সুতরাং এটি সমাপ্তি শর্ত: পদ্ধতিটিতে যে নম্বরটি কল করা হয়েছিল এটি যদি 1 এর চেয়ে কম বা সমান হয়, তবে 1 প্রত্যাবর্তন করুন।
🍮sum 0
একটি নতুন ভেরিয়েবল তৈরি করুন sum
এবং এটি 0 তে সেট করুন Imp
🔂k⏩0🐕
Anything প্রোটোকল প্রয়োগ করে এমন কোনও কিছুর উপরে পুনরাবৃত্তি করে 🔂🐚🚂 যখন ⏩ বাস্তবের ক্ষেত্রে ঘটে এমন একটি পরিসীমা আক্ষরিক 🔂🐚🚂 একটি রেঞ্জের একটি শুরুর মান, একটি স্টপ মান এবং একটি ধাপের মান থাকে, যা ধরে নেওয়া হয় যদি 1 হয় start < stop
, বা -1 অন্যথায় হয়। রেঞ্জ আক্ষরিক তৈরি করতে One ব্যবহার করেও কেউ পদক্ষেপের মান নির্দিষ্ট করতে পারে। শুরুর মানটি অন্তর্ভুক্ত, স্টপ মানটি একচেটিয়া, তাই এটি সূত্রের সমান for k in range(n)
বা সমান Sum_{k=0..n-1}
।
🍦nmk➖🐕k
আমাদের সিগমা (এন - কে), বা n - k
অন্য কথায় বিভাজকের যোগফল গণনা করতে হবে এবং যুক্তিটি কয়েকবার প্রয়োজন হয়, তাই কিছু বাইট সংরক্ষণ n - k
করতে ভেরিয়েবলের মধ্যে এই সঞ্চয় করে nmk
।
🍮sig nmk
🔂i⏩1 nmk
এটি sig
সিগমার আর্গুমেন্টে পরিবর্তনশীল সেট করে এবং 1 থেকে শুরু করে সমস্ত সংখ্যায় পুনরাবৃত্তি করে nmk - 1
। আমি চলকটি 0 তে আরম্ভ করতে পারি এবং 1..nmk এর উপরে পুনরাবৃত্তি করতে পারি তবে এটি এভাবে করা সংক্ষিপ্ত।
🍊😛🚮nmk i 0
The অবশিষ্ট, বা মডুলাস এবং equality সমতার জন্য চেকগুলি গণনা করে, তাই শর্তটি হবে i
of যদি এর বিভাজক হয় nmk
।
🍮➕sig i
+= -= >>=
নিকৃষ্ট, ইমোজি-মুক্ত ভাষাগুলির মধ্যে কিছু অপারেটর পরিবারের মতো এটি কল দ্বারা একটি অ্যাসাইনমেন্ট । এই লাইন হিসাবে হিসাবে লেখা যেতে পারে 🍮 sig ➕ sig i
। সুতরাং, অভ্যন্তরীণ লুপটি শেষ হওয়ার পরে , বা sig
এর বিভাজকের যোগফল থাকবেn - k
sigma(n - k)
🍮➕sum✖sig🅰️k
কল দ্বারা আরেকটি কার্যভার, সুতরাং sigma(n - k) * A(k)
এটি সূত্রের মতো মোটে যোগ করে।
🍎➗sum🐕
অবশেষে, যোগফলটি n দ্বারা ভাগ হয়ে ভাগফলটি ফিরে আসবে। এই ব্যাখ্যাটি সম্ভবত কোডটি লেখার জন্য ততবার সময় নিয়েছে ...