নিকটতম পার্টিশন নম্বর


12

পূর্ণসংখ্যার পার্টিশনের সংখ্যা হ'ল ধনাত্মক পূর্ণসংখ্যার যোগফল হিসাবে পূর্ণসংখ্যাকে উপস্থাপন করা যায়।

উদাহরণ স্বরূপ:

5
4 + 1
3 + 2
3 + 1 + 1
2 + 2 + 1
2 + 1 + 1 + 1
1 + 1 + 1 + 1 + 1

5 নম্বরটি উপস্থাপনের জন্য 7 টি উপায় রয়েছে, সুতরাং 7টি 5 নম্বরটির সাথে বিভাজন নম্বর।

পার্টিশন নম্বর: ওইআইএস: # A000041

দিকনির্দেশ

এমন একটি প্রোগ্রাম লিখুন যা ইতিবাচক পূর্ণসংখ্যাকে ইনপুট হিসাবে গ্রহণ করে এবং দুটি সংখ্যা আউটপুট দেয় যা দুটি নিকটতম পার্টিশন নম্বরগুলি ইনপুট সংখ্যায় উত্পন্ন করে।

  • ইনপুট অবশ্যই 1 ধনাত্মক পূর্ণসংখ্যার হতে হবে।
  • যদি ইনপুটটি কোনও পার্টিশন নম্বর না হয় তবে আউটপুটটি অবশ্যই 2 টি বিভিন্ন ধনাত্মক পূর্ণসংখ্যার হতে পারে যা ইনপুট সংখ্যায় দুটি নিকটতম পার্টিশন সংখ্যা উত্পন্ন করে। (দুটি পার্টিশন নম্বর যদি আউটপুট সংখ্যার কোনওটির জন্য সমান প্রার্থী হয় তবে আপনি কোনটি চয়ন করবেন তা বিবেচ্য নয়))
  • ইনপুট যদি হয় একটি পার্টিশন নম্বর, আউটপুট 1 ধনাত্মক পূর্ণসংখ্যা যে ইনপুট সংখ্যা উত্পন্ন হওয়া আবশ্যক।
  • ইনপুট এবং আউটপুট যে কোনও যুক্তিসঙ্গত বিন্যাসে থাকতে পারে।
  • আপনি ধরে নিতে পারেন যে ইনপুটটি 100 মিলিয়নের বেশি হবে না (যেমন, আউটপুট কখনই 95 এর চেয়ে বড় হবে না)।
  • বিল্ট-ইন ক্যালকুলেট পার্টিশন নম্বরে ফাংশন হয় না অন্যান্য সহ অনুমতি দেওয়া স্ট্যান্ডার্ড সমস্যা
  • এটি , তাই কমপক্ষে সংখ্যা বাইট জেতে।

পার্টিশন নম্বর: ওইআইএস: # A000041

উদাহরণ

Input: 66
Output: 11, 12

(11 এবং 12 সংখ্যার সাথে মিলিত পার্টিশন সংখ্যাগুলি 56 এবং 77, যা দুটি নিকটতম পার্টিশন সংখ্যা 66 66 এর সাথে রয়েছে।)

Input: 42
Output: 10

(৪২ নম্বর ইতিমধ্যে একটি পার্টিশন নম্বর, সুতরাং পার্টিশন সংখ্যার সাথে সঙ্গতিপূর্ণ সংখ্যাটি আউটপুট করুন))

Input: 136
Output: 13, 14

(১৩ closest-এর নিকটতম দুটি পার্টিশন সংখ্যা আসলে ১৩ than এর চেয়ে কম উভয় (উদাহরণস্বরূপ 101 এবং 135), সুতরাং আউটপুটটি 14 এবং 15 এর বিপরীতে 13 এবং 14 হয়))

Input: 1
Output: 0   or   1

(0 এবং 1 উভয়ই এই বিশেষ ক্ষেত্রে কার্যকর আউটপুট)

Input: 2484
Output: 26, 25   or   26, 27

(এই আউটপুট উভয়, বৈধ কারণ 2484 সমান ঘ আমি 1958 এবং 3010. থেকে ভঙ্গি)

Input: 4
Output: 3, 4

(হা)


পার্টিশনের নম্বরটি আপনি সংজ্ঞায়িত করেননি
গর্বিত হাসেলেলার

@ গ্রুপডেস্কিলার পার্টিশন নম্বরগুলি সংযুক্ত ওইআইএস ক্রমের সাথে সংযুক্ত নম্বর are পার্টিশনের সংখ্যাটি কী 5শীর্ষে রয়েছে তার ব্যাখ্যা। (আপনি যদি মনে করেন এটি যথেষ্ট পরিষ্কার নয় তবে আমি স্পষ্টতা যোগ করব))
kukac67

1
এটি পূর্ববর্তী পার্টিশনের প্রশ্নের দ্বীপ হওয়ার খুব কাছাকাছি ।
পিটার টেলর

উত্তর:


2

পাইথ , 53

L?!b<b1sm&d*^_1tdy-b/*dt*3d2r_bhbJo^-QyN2U99<J-2qQyhJ

ব্যাখ্যা এবং অনুসরণ করতে আরও গল্ফ করা।


4

পাইথন 2, 179 বাইট

Z=range(1,99)
R=Z+[1]
for i in Z:R[i]=sum(-(-1)**k*(3*k*k-k<=i*2and R[i-k*(3*k-1)/2])for k in range(-i,i+1)if k)
f=lambda n:zip(*sorted((abs(n-R[i]),i)for i in Z))[1][:2-(n in R)]

ইউলারের পেন্টাগোনাল উপপাদ্য থেকে পুনরাবৃত্ত সূত্র ব্যবহার করে ।

সাথে কল f(2484)। আউটপুট এক বা দুটি সংখ্যা সহ একটি টুপল।


2

গণিত, 124 123 বাইট

f@n_:=(p=SeriesCoefficient[1/Product[1-x^k,{k,#}],{x,0,#}]&;s=SortBy[Range@95,Abs[n-p@#]&];If[p@s[[1]]==n,s[[1]],s~Take~2])

ওইআইএস পৃষ্ঠা থেকে নেওয়া পার্টিশন নম্বরগুলির সূত্র । (ঠকানো বা নাও হতে পারে ... আমি সিদ্ধান্ত নিতে পারিনি couldn't)

ব্যবহার:

In: f[136]

Out: {14, 13}

আমি জয়ের জবাব দিচ্ছি না। এবং আমি নিশ্চিত যে এটি আরও গল্ফ করা যেতে পারে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.