ÆlÐĿĊḊi1
এটি অনলাইন চেষ্টা করুন! বা সমস্ত পরীক্ষার কেস যাচাই করুন ।
পটভূমি
আমরা ধারাবাহিকভাবে ইনপুটটির প্রাকৃতিক লোগারিদম গ্রহণ করে এবং পরবর্তী ফলাফলগুলি পরিবর্তন না করা পর্যন্ত পরবর্তী ফলাফলগুলি নিয়ে শুরু করি। জটিল প্লেনে প্রাকৃতিক লোগারিদমের সম্প্রসারণের একটি নির্দিষ্ট পয়েন্ট রয়েছে বলে এটি কাজ করে ; যদি z- র = ই -w (-1) ≈ 0.318 + + 1.337i - যেখানে ওয়াট উল্লেখ করে ল্যাম্বার্ট ডব্লিউ ফাংশন - আমরা আছে লগ (z- র) = z- র ।
ইনপুট এন এর জন্য , গণনার পরে [এন, লগ (এন), লগ (লগ (এন)),…, জেড] , আমরা প্রথমে প্রতিটি ফলাফলের সিলিং ফাংশনটি প্রয়োগ করি। জেলি বাস্তবায়ন ( Ċ
) প্রকৃতপক্ষে এর কাল্পনিক অংশ নির্ণয় জটিল পরিবর্তে সংখ্যা † , কিন্তু আমরা এই যাহাই হউক না কেন আগ্রহী নন।
একবার ট ম প্রয়োগের লগ একটি মান কম উৎপাদ চেয়ে বা সমান 1 , Ċ
ফিরে আসবে 1 প্রথমবারের। প্রথম 1 এর 0 ভিত্তিক সূচকটি পছন্দসই ফলাফল।
সোজা বাস্তবায়ন (গণনা 1-ভিত্তিক সূচক, হ্রাস) ব্যর্থ হয়েছে কারণ প্রান্ত কেস 0 , যার লগারিদমের তালিকায় এর 1 নেই । আসলে, ইনপুট 0 এর জন্য , লগারিদমের ক্রম
[0, None]
জেলির লোগারিদম ( Æl
) অতিরিক্ত চাপ হওয়া কারণ এটি ; এটি প্রথমে চেষ্টা করে math.log
(বাস্তব লোগারিদম), তারপরে cmath.log
(জটিল লোগারিদম) এবং অবশেষে "ছেড়ে দেয়" এবং ফিরে আসে None
। ভাগ্যক্রমে, Ċ
একইভাবে অতিরিক্ত লোড করা হয় এবং কেবল যদি এটি কোনও কল্পিত অংশ নিতে না পারে বা ব্যয় করতে পারে তবে এটি যুক্তি ফিরিয়ে দেয়।
তেমনিভাবে ইনপুট 1 রিটার্ন দেয়
[1, 0, None]
যা এতে বা জড়িত না এমন অন্যান্য পদ্ধতির ক্ষেত্রে সমস্যা তৈরি করতে পারে Ċ
।
এই সমস্যাটি সমাধানের একটি উপায় হ'ল Ḋ
লগারিদমের অ্যারেতে (ডেলিউ; প্রথম উপাদানটিকে সরিয়ে দেয়) প্রয়োগ করা । এই মানচিত্র
0ÆlÐĿ -> [0, None] -> [None]
1ÆlÐĿ -> [1, 0, None] -> [0, None]
সুতরাং উভয় তালিকার এখনই 1 টি নেই । এইভাবে, প্রথম 1 এর সূচকটি খুঁজে বের করে 0 (খুঁজে পাওয়া যায় না) ফিরে আসবে , যা ইনপুট 0 এবং 1 এর জন্য পছন্দসই আউটপুট ।
কিভাবে এটা কাজ করে
ÆlÐĿĊḊi1 Main link. Argument: n (non-negative integer)
ÐĿ Apply the following link until the results are no longer unique.
Æl Natural logarithm.
Return the array of all unique results.
Ċ Round all resulting real numbers up to the nearest integer. This takes
the imaginary part of complex numbers and does nothing for non-numbers.
Ḋ Dequeue; remove the first item (n) of the array of results.
i1 Find the first index of 1 (0 if not found).
† এটি জেলির মধ্যে কেবলমাত্র তিনটি পরমাণুর মধ্যে একটি যা অ-সুস্পষ্ট উপায়ে ওভারলোড হয়।