এই চ্যালেঞ্জটি আমি প্রায়শই একটি প্রোগ্রামিং ব্লগ দ্বারা অনুপ্রাণিত হয়েছিল। দয়া করে এখানে মূল পোস্টটি দেখুন: একটি প্রোগ্রামিং ধাঁধা
চ্যালেঞ্জ
কোনও ফাংশনটি f:Q->Q
এমনভাবে সংজ্ঞায়িত করুন যে f(f(n)) = -n
সমস্ত অ-শূন্য পূর্ণ পূর্ণসংখ্যার জন্য n
এবং যেখানে Q
যুক্তিযুক্ত সংখ্যার সেট।
বিস্তারিত
যাই হোক না কেন আপনার পছন্দের ভাষায়, নির্ধারণ দয়া এক ফাংশন বা প্রোগ্রাম f
যে প্যারামিটার হিসাবে গ্রহণ করে এক নম্বর n
এবং আয় বা আউটপুট এক নম্বর f(n)
।
আপনার ভাষার জন্য যে কোনও পদ্ধতির মাধ্যমে ইনপুট সরবরাহ করা যেতে পারে: ফাংশন আর্গুমেন্ট, এসটিডিএন থেকে পাঠানো, কমান্ড-লাইন আর্গুমেন্ট, স্ট্যাক অবস্থান, ভয়েস ইনপুট, গ্যাং লক্ষণ ইত্যাদি etc.
আউটপুট কোনও ফাংশন / প্রোগ্রাম থেকে ফেরত মান হওয়া বা STDOUT এ মুদ্রিত হওয়া উচিত।
আমি ফাংশনগুলির বাইরে থেকে দৃশ্যমান প্রোগ্রামের অবস্থা বা গ্লোবাল মেমরি / ডেটার সুবিধা গ্রহণ না করে এমন ফাংশনগুলির উত্তরগুলিকে সীমাবদ্ধ রাখতে চাই f
। উদাহরণস্বরূপ, এর বাইরে কাউন্টার রাখা f
কতবার কল করা f
হয়েছিল তা গণনা করা এবং এই গণনার উপর ভিত্তি করে কেবল একটি প্রত্যাখ্যান করা কারও পক্ষে খুব চ্যালেঞ্জিং বা আকর্ষণীয় নয়। সিদ্ধান্তগুলি f
কেবলমাত্র f
এর লেজিকাল স্কোপের মধ্যে থাকা ডেটার উপর নির্ভর করে ।
তবে এই সীমাবদ্ধতা সম্ভবত কিছু স্ট্যাক-ওরিয়েন্টেড ভাষা বা অন্যান্য ধরণের ভাষার জন্য অনুপযুক্ত যা এই ধরণের ডেটা বা স্কোপগুলিকে আলাদা করে না। এই চ্যালেঞ্জের চেতনা ধরে রাখতে দয়া করে আপনার সর্বোত্তম রায়টি ব্যবহার করুন।
স্কোরিং
প্রচলিত কোড গল্ফ নিয়ম প্রযোজ্য your আপনার স্কোরটি আপনার উত্স কোডে বাইট সংখ্যা ।
সংক্ষিপ্ত উত্তর ডোমেন এবং এর codomain প্রয়োজন f
rationals একটি উপসেট হতে Q
। আপনি যদি আপনার ডোমেন এবং কোডোমেনটিকে f
পূর্ণসংখ্যার মধ্যে সীমাবদ্ধ করেন Z
, তবে আপনার স্কোরটি আপনার উত্স কোডে বাইটের সংখ্যার 90% সিলিং ।
Tiebreak
টাই হওয়ার ক্ষেত্রে, নিম্নলিখিতগুলি ক্রমে ব্যবহৃত হবে:
- আপনার উত্স কোডে মুদ্রণযোগ্য অ-শ্বেত স্পেস প্রতীকগুলির সংখ্যা সবচেয়ে কম
- উত্তর জমা দেওয়ার প্রথম তারিখ এবং সময়
সম্পাদন করা
আপনাকে নির্বিচারে আকারের সংখ্যাগুলি সমর্থন করার দরকার নেই। দয়া করে আপনার নির্বাচিত ভাষায় সেটগুলি Z
এবং Q
ডেটাটাইপ হিসাবে ব্যাখ্যা করুন (সাধারণত যথাক্রমে পূর্ণসংখ্যা এবং ভাসমান পয়েন্ট)।
যদি আপনার সমাধানটি পুরোপুরি কোনও ডেটা টাইপের অন্তর্নিহিত কাঠামো বা বিট প্যাটার্নের উপর নির্ভর করে তবে দয়া করে এর সীমাবদ্ধতাগুলি এবং এটি কীভাবে ব্যবহৃত হচ্ছে তা বর্ণনা করুন।
f:Q->Q
বোঝাতে পারবেন?
f
হ'ল Q
অন্য সদস্যদের (সম্ভবত একই) এর সদস্যদের (যুক্তিসঙ্গত সংখ্যা) ম্যাপিং একটি ফাংশন Q
। দেখতে en.wikipedia.org/wiki/Function_(mathematics)#Notation