এই মজা ছিল! তবে মাত্র তিনটি অঙ্ক সহ, মজা খুব শীঘ্রই শেষ হয়ে গেল। এই চ্যালেঞ্জটি একই রকম, তবে আমরা মজাটি চালিয়ে যাব।
চ্যালেঞ্জ
যতটা সম্ভব সোনার অনুপাতের বেশি অঙ্ক মুদ্রণ করুন । গোল্ডেন অনুপাতটি এমন সংখ্যার হিসাবে সংজ্ঞায়িত করা হয়েছে যা φ = (φ + 1) / satisf কে সন্তুষ্ট করে এবং প্রথম 100 টি সংখ্যার দ্বারা দেওয়া হয়:
1,6180339887498948482045868343656381177203091798057628621354486227052604628189024497072072041893911375 ...
এই চ্যালেঞ্জটি কম্পিউটিং about সম্পর্কে নয় ! এটি দু'বার করার জন্য কোনও পদ্ধতি ব্যবহার না করে যথাসম্ভব বেশি অঙ্ক মুদ্রণের বিষয়ে। সুতরাং আপনার সংখ্যাগুলি পাওয়ার জন্য যতগুলি সৃজনশীল উপায় সন্ধান করুন!
বিধিনিষেধ
নিজেই, φ এর অঙ্কগুলি মুদ্রণ করা কিছুটা সহজ হবে, সুতরাং এখানে বিধিগুলি রয়েছে:
- আপনি সংখ্যা গঠন করা আছে অনুক্রমে বাঁ দিক থেকে ডানদিকে , হয় এটা এক এক করে মুদ্রণ করে অথবা বাঁ দিক থেকে ডানদিকে একটি স্ট্রিং নির্মাণের এবং শেষে এটা মুদ্রণ দ্বারা - আপনি এমনকি অঙ্ক অক্ষরের একটি অ্যারের উৎপন্ন পারে এবং তারপর এটি যোগ দিতে এবং এটি মুদ্রণ করুন, আপনি যতক্ষণ না এটি ক্রম করেন। নিম্নলিখিত নিয়মগুলিতে "মুদ্রণ" এবং "আউটপুট" processes প্রসেসগুলির মধ্যে
1.6
যে কোনওটিকে বোঝায় (উদাহরণস্বরূপ যদি আপনি একটি স্ট্রিং তৈরি করছেন, এবং স্ট্রিংটিতে1.6
ইতিমধ্যে মুদ্রিত রয়েছে বলে গণনা করা হয়েছে )। - আপনার কোডের জন্য আপনি প্রতি অঙ্কের 15 টি অক্ষরের বাজেট পাবেন । পিরিয়ডটি সেই বাজেটের জন্য গণনা করা হয় না, তবে পাশাপাশি মুদ্রণ করতে হবে। মনে রাখবেন যে বিধিনিষেধটি কেবলমাত্র কোডের আকারে: আপনি যতক্ষণ না গড় হিসাবে বেশি ব্যবহার না করেন ততক্ষণ আপনি কোনও অঙ্কের জন্য 15 টিরও বেশি অক্ষর ব্যবহার করতে পারেন। প্রকৃতপক্ষে, আপনি অক্ষরগুলিতে একটি "buildণ" তৈরি করতে পারেন এবং পরে "এটি পরিশোধ" করতে পারেন। উদাহরণস্বরূপ আপনার মুদ্রণের
1.618
জন্য 60 টি অক্ষর রয়েছে। - স্ট্যান্ডার্ড-লাইব্রেরিতে অন্তর্ভুক্ত / আমদানি কোড আকারের সাথে গণনা করা হয় না। তবে আপনি বিনামূল্যে শর্টহ্যান্ড এলিয়াসগুলি দিতে পারবেন না!
- আপনি বর্তমানে যে অঙ্কটি তৈরি করছেন তা অবশ্যই ব্যবহার করবেন না বা আপনার ইতিমধ্যে মুদ্রিত কোনওটিই ব্যবহার করা উচিত নয়। উদাহরণস্বরূপ
1
আপনার উত্স কোডে কোথাও উপস্থিত হতে পারে না কারণ এটি খুব প্রথম সংখ্যা। কোডটি আউটপুট8
মধ্যে1.618
যেকোনো বা ডিজিটের সব ব্যবহার করতে পারেন[0234579]
, কিন্তু কেউই[168]
। এই উদ্দেশ্যে, সমস্ত আক্ষরিক যা একক অঙ্কের সমতুল্য সেই অঙ্ক হিসাবে গণ্য হবে । সুতরাং আপনার ভাষা উপস্থাপন করতে পারেন যদি9
যেমন'\t'
আপনি যে কোন জায়গায়, যেখানে আপনি একটি ব্যবহার করতে পারছিল না ব্যবহার করার জন্য অনুমতি দেওয়া হয় না9
পরিবর্তে। - আপনার একবারে একাধিক সংখ্যা উত্পাদন করা উচিত নয়। আপনার কোডগুলি স্পষ্টভাবে খণ্ডগুলিতে বিভক্ত করা উচিত যা একবারে একটি অঙ্ক তৈরি করে।
আপনি কোনও বিল্ট-ইন ফাংশন, গাণিতিক / বুলিয়ান / বিট-ওয়াইজ / স্ট্রিং অপারেটর, ভেরিয়েবল বা ধ্রুবককে অবশ্যই উল্লেখ করবেন না যা আপনি কোড ব্যবহার করেছেন যা পূর্ববর্তী অঙ্ক তৈরি করেছিল। ব্যতিক্রমগুলি হল পূর্ণসংখ্যার থেকে স্ট্রিং রূপান্তর, স্ট্রিং কনটেনটেশন এবং মুদ্রণ ফাংশন যা আপনার প্রতিটি একক সংখ্যার জন্য প্রয়োজন হতে পারে। মনে রাখবেন যে আপনি কোনও বিল্ট-ইনকে কোন নামে উল্লেখ করেছেন তা বিবেচনাধীন নয় : কেবলমাত্র
PI
আপনি উভয়টিতে বিল্ট-ইন ব্যবহার করেp
এবং এরq
অর্থ এই নয় যে আপনিp
একবার এবংq
একবার ব্যবহার করবেন to অনুরূপভাবে, আপনি হয় একটি নাম দুইবার ব্যবহার করতে হলে স্ট্রিং মত, দুটি ভিন্ন বিল্ট-ইন বোঝায় অনুমতিlength
এবং অ্যারেlength
।যদি আপনার প্রোগ্রামিং ভাষায় ফাংশন না থাকে তবে তার সমতুল্য কী হবে তার সর্বোত্তম রায় ব্যবহার করে - যেমন বাশ স্ক্রিপ্টিংয়ের জন্য, অন্যান্য প্রোগ্রামগুলি আহ্বান করে ফাংশনগুলিতে আরোপিত নিয়মগুলি অনুসরণ করা উচিত
- আপনার জমাটি অবশ্যই একটি ভাষায় লেখা উচিত। সুতরাং সেই ভাষার বিল্ট-ইনগুলিতে অ্যাক্সেস পেতে অন্য ভাষার দোভাষীকে মৃত্যুদন্ড কার্যকর করবেন না।
প্রভাব
নিম্নলিখিত পয়েন্টগুলি উপরের সমস্ত বিধি দ্বারা আবদ্ধ করা হয়েছে, তবে আমি ইতিমধ্যে স্যান্ডবক্সে আসা প্রশ্নগুলি এড়াতে এগুলি এখানে যুক্ত করছি:
'\b'
এর মধ্যে কিছু ব্যাকস্পেস (সাধারণত ) মুদ্রণ করে আপনার আউটপুটটির অংশগুলি ওভাররাইট করার অনুমতি নেই ।- একাধিক অঙ্ক উত্পন্ন / আউটপুট উত্পাদিত লুপগুলি নিষিদ্ধ। (একক অঙ্কের গণনা করা লুপগুলি ভাল, যদিও))
(1 + √5)/2
একক অঙ্কের বেশি পাওয়ার জন্য একটি অস্পষ্ট সংস্করণ ব্যবহার করা বা ফিবোনাচি সংখ্যা বিভক্ত করা নিষিদ্ধ।- আপনি 10 টি সংখ্যার প্রাক্কলক করতে পারবেন না এবং এগুলিকে 10 ভেরিয়েবলে সংরক্ষণ করতে পারবেন এবং কেবল সেগুলি উল্লেখ করুন, কারণ সেই পরিবর্তনশীল উল্লেখগুলি অঙ্কটি তৈরি করে না - ভেরিয়েবলটি পূরণ করে এমন কোডটি তাই এই বিধি 6 এর লঙ্ঘন।
- প্রকৃতপক্ষে, আপনি কোনও পূর্ববর্তী (বা মধ্যবর্তী ফলাফল) পুনরায় ব্যবহার করতে পারবেন না, কারণ এর অর্থ হ'ল দুটি অঙ্ক উত্পন্ন হওয়ার জন্য কোড ভাগ করবে ।
- অন্যথায়, আপনি অঙ্কগুলি উত্পন্ন করতে কোনও উপায় (যা খাঁটি গাণিতিকের দরকার নেই) ব্যবহার করতে পারেন। (এবং আপনার উচিত!)
- বাস্তবে কোনও কিছু গণনা করার দরকার নেই, যদি আপনি নিজের স্ট্যান্ডার্ড লাইব্রেরি ব্যবহার করে বিভিন্ন স্থান থেকে সঠিক অঙ্কগুলি বের করতে পারেন।
- একক অঙ্ক তৈরি করার সময় আপনি একাধিকবার অপারেটর ব্যবহার করতে পারেন, তাই
2+2+2
প্রথমটি উত্পন্ন করার জন্য ন্যায্য খেলাটি6
(যদিও এটি সবচেয়ে কম সম্ভাবনা রয়েছে)। - আপনি পারে , যেমন ঘন ঘন আপনি চান হিসাবে কোন আক্ষরিক ব্যবহার কারণ তারা বিল্ট-ইন করা হয় না ধ্রুবক। সুতরাং যতক্ষণ আপনার মুদ্রণ করতে হবে না
5
, আপনি নিজের কোডটিতে5
যতগুলি চান হিসাবে দেখতে পারেন। - আপনি আউটপুট হার্ডকোড করতে পারবেন না, কারণ এটির মধ্যে আপনি যে অঙ্কগুলি আউটপুট করছেন তা ব্যবহার করা জড়িত।
সংক্ষেপে: দু'বার অঙ্ক তৈরির কোনও পদ্ধতি ব্যবহার করবেন না এবং আপনি বর্তমানে যে সংখ্যাটি ইতিমধ্যে আউটপুট করছেন বা কোনও ইতিমধ্যে মুদ্রিত করেছেন তা ব্যবহার করবেন না।
আপনি যদি একটি লুফোলটি স্পট করেন যা আপনাকে (অর্ধ) অনন্ত স্কোর পেতে দেয় তবে দয়া করে এটি কাজে লাগিয়ে চ্যালেঞ্জটি নষ্ট করবেন না, তবে আমাকে জানান যাতে কিছুটা না ভেঙে লুফোলটি ঠিক করা যায় কিনা তা আমি জানতে পারি।
স্কোরিং
যে প্রোগ্রামটি সর্বাধিক সংখ্যক মুদ্রণ করে সঠিকভাবে জয় করে। টাই করার ক্ষেত্রে সংক্ষিপ্ত কোডটি টাই ভেঙে দেয়।
দয়া করে একটি অব্যক্ত মন্তব্যযুক্ত সংস্করণ যুক্ত করুন যা আপনার কোডের কোন অংশটি কোন অঙ্কটি উত্পন্ন করে তা সনাক্ত করে।
PS: যদি কেউ উপরে 100 টি সংখ্যা মারধর করে তবে এখানে আরও কিছু রয়েছে ।
x = (x+1)/x
(বা x^2 = x+1
) (বা x^2-x+1
) উপর চতুর্ভুজ সূত্র ব্যবহার করছে ।