পাইথ , 4 বাইট
W
~O
এটি অনলাইন চেষ্টা করুন!
এটি মূলত অ্যালগোরিদম প্রয়োগ করে:
প্রশ্ন ← ইনপুটআর ই পি ই একটি টন1।2।3।t e m p ← Qপ্রশ্নঃ ← unif { 0 , প্রশ্ন - 1 }পি আর আই এন টি (টিইএমপি)ইউ এন টি আই এলt ই এম পি = 0
পাইথটি অ্যালগরিদমে অনুবাদ করতে, আমরা বেশিরভাগটি কেবল প্রতিটি চরিত্রের অর্থ কী তা পরীক্ষা করতে পারি। যেহেতু Pyth উপসর্গ স্বরলিপি লেখা আছে (অর্থাত * + 1 2 3
হয় (1 + 2) * 3
) আমরা আর্গুমেন্ট বাম এবং ভরাট থেকে শুরু করতে পারেন হিসাবে আমরা যেতে।
W
লুপ যখন একটি traditionalতিহ্যগত শুরু। এর পরে প্রথম বিবৃতিটি লুপের শর্ত এবং এর পরে দ্বিতীয় বিবৃতিটি লুপ বডি। দ্বিতীয় বিবৃতিটি খালি থাকলে এটি কোনও অপশন হয়ে যায় । এটি যখন পাইথনের ঠিক মতো কাজ করে, তাই এটি শূন্য-শূন্য সংখ্যাকে সত্য এবং শূন্য হিসাবে মিথ্যা হিসাবে মূল্যায়ন করবে।
কিছুক্ষণ পরে প্রথম বিবৃতিটি নিউলাইন চরিত্রের সাথে শুরু হয়। এটি পাইথের "মুদ্রণ এবং নতুন লাইনের সাথে ফিরুন" ফাংশনের সাথে মিলে যায়। এটিতে একটি যুক্তি লাগে যা পরে মুদ্রিত হয় এবং অশোধিতও ফিরে আসে। এটি আমাদের প্রয়োজনীয় ক্রিয়াকলাপ সম্পাদন করার সময় মধ্যবর্তী পদক্ষেপগুলি মুদ্রণ করতে সহায়তা করে।
এই মুদ্রণ ফাংশনে পাস হওয়া যুক্তিটি শুরু হয় ~
যা কিছুটা বিশেষ। চরিত্রটি যদি তাত্ক্ষণিকভাবে ~
পরিবর্তনশীল হয় তবে এটি দুটি আর্গুমেন্ট গ্রহণ করে, অন্যথায় এটি একটি নেয়। যেহেতু O
একটি পরিবর্তনশীল নয় ~
কেবলমাত্র একটি যুক্তি গ্রাস করবে। অনেকগুলি প্রচলিত ভাষায় ~
যেমন কাজ +=
করে তেমনি নিকটতম অপারেটর পোস্ট-ইনক্রিমেন্ট অপারেটর ++
হতে পারে C
। আপনি হয়ত জানেন যে এটি বর্তমান মান হিসাবে x++
ব্যবহারের x
মতো x
হবে তবে এর পরে হবে x+1
।~
একই ধারণা, তবে প্রথম যুক্তির ফলাফল যাই হোক না কেন তা সাধারণীকরণ করা হয়। কীভাবে ভেরিয়েবলকে নির্ধারণ করা হবে তা পরে সম্বোধন করা হবে।
আর্গুমেন্ট ~
হয় O
যা খুবই সহজ। যখন এর একটি যুক্তি একটি পূর্ণসংখ্যা হয়O
এলোমেলোভাবে অভিন্নভাবে সেই পূর্ণসংখ্যার চেয়ে 0 থেকে একের কম হয়।
এখন আপনি লক্ষ্য করেছেন O
যে কোনও যুক্তি নেই। এখানে পাইথ ইন্টারপ্রেটারটি অনুমেয়ভাবে অনুমান করে যা এখানে পরিবর্তনশীল Q
। Q
পাইথের একটি বিশেষ অর্থ রয়েছে: যখনই এটি কোনও প্রোগ্রামে উপস্থিত থাকে তখন পাইথ প্রোগ্রামটি প্রোগ্রামের Q
ইনপুটকে অর্পণ করে শুরু হয় । যেহেতু এটি প্রথম ভেরিয়েবলের ~
যুক্তিতে ঘটবে Q
এটি এখন ভেরিয়েবল যা ~
একটি মান নির্ধারণ করবে।
আমাদের "পঠনযোগ্য" প্রোগ্রামটির সংক্ষিপ্তসারটি দেখতে পারে:
while print_and_return( assign_variable( Q, unif(0, Q-1) ) ):
pass
এবং একটি নমুনা "রান-থ্রু" এর মতো দেখতে পাওয়া যেতে পারে:
- প্রশ্ন = 5
O
3 ~
রিটার্ন দেয়, 5 টি \n
রিটার্ন করে এবং 5 প্রিন্ট করে যা সত্য
- প্রশ্ন = 3
O
0 প্রদান করে, ~
3 প্রদান করে, 3 \n
ফেরত দেয় এবং 3 টি প্রিন্ট করে যা সত্য
- Q = 0
O
অপ্রাসঙ্গিক কিছু দেয়, ~
0 দেয়, \n
ফেরত দেয় এবং 0 মুদ্রণ করে যা মিথ্যা
- প্রশ্ন = অপ্রাসঙ্গিক কিছু
- ফুরান