ধনাত্মক পূর্ণসংখ্যা n এর জন্য ক্রিয়াটি f (n) সংজ্ঞায়িত করুন :
- n / 2 , যদি n হয় হয়
- 3 * n + 1 , যদি n বিজোড় হয়
যদি আপনি বারবার 0 টির চেয়ে বড় এন- তে এই ফাংশনটি প্রয়োগ করেন তবে ফলাফলটি সর্বদা 1 তে রূপান্তরিত হয় বলে মনে হয় (যদিও কেউ এখনও এটি প্রমাণ করতে সক্ষম হয়নি)। এই সম্পত্তিটি কোলাটজ কনজেকচার হিসাবে পরিচিত ।
একটি পূর্ণসংখ্যা এর নির্ধারণ বাঁধন সময় যতবার হিসাবে আপনি Collatz ফাংশন মাধ্যমে এটি পাস করতে হবে চ আগেই পৌঁছে 1. এখানে প্রথম 15 পূর্ণসংখ্যার বাঁধন বার আছেন:
1 0
2 1
3 7
4 2
5 5
6 8
7 16
8 3
9 19
10 6
11 14
12 9
13 9
14 17
15 17
একই থামার সময় কোলাটজ চাচাত ভাইদের সাথে কোনও সংখ্যার সেট কল করুন । উদাহরণস্বরূপ, 5 এবং 32 হ'ল কোলাটজ চাচাতো বোন, 5 এর বিরতি সময় রয়েছে।
আপনার টাস্ক: এমন একটি প্রোগ্রাম বা ফাংশন লিখুন যা একটি ননজেগটিভ পূর্ণসংখ্যার গ্রহণ করে এবং কোলাটজ চাচাতো ভাইয়ের সেট তৈরি করে যার বিরতি সময় সেই সংখ্যার সমান।
ইনপুট
STDIN, ARGV বা ফাংশন আর্গুমেন্টের মাধ্যমে প্রদত্ত একটি nonnegative পূর্ণসংখ্যা এস।
আউটপুট
সমস্ত নম্বর যার বাঁধন সময় এস হল একটি তালিকা অনুসারে বাছাই করা মধ্যে আরোহী অর্ডার। তালিকাটি আপনার প্রোগ্রামের আউটপুট, বা ফিরে আসা বা আপনার ফাংশন দ্বারা আউটপুট হতে পারে। আউটপুট ফর্ম্যাটটি নমনীয়: স্পেস-বিচ্ছিন্ন, নিউলাইন-পৃথক, বা আপনার ভাষার কোনও মানক তালিকা ফর্ম্যাট যতক্ষণ সংখ্যক সহজেই একে অপরের থেকে পৃথক হয়।
আবশ্যকতা
আপনার জমা দিতে অবশ্যই যে কোনও এস ≤ 30 এর জন্য সঠিক ফলাফল দিতে হবে It এটি কয়েক ঘন্টা বা দিন নয়, সেকেন্ড বা মিনিটে শেষ হওয়া উচিত।
উদাহরণ
0 -> 1
1 -> 2
5 -> 5, 32
9 -> 12, 13, 80, 84, 85, 512
15 -> 22, 23, 136, 138, 140, 141, 150, 151, 768, 832, 848, 852, 853, 904, 906, 908, 909, 5120, 5376, 5440, 5456, 5460, 5461, 32768
এস = 30 এর আউটপুটটির একটি সংক্ষিপ্তসার এখানে ।
এটি কোড-গল্ফ : বাইট জেতে সংক্ষিপ্ততম প্রোগ্রাম। শুভকামনা!