কতগুলি স্কোয়ার, কিউবস, চতুর্থ শক্তি ইত্যাদির দরকার হয়?


14

আপনাকে একটি nonnegative পূর্ণসংখ্যা nএবং একটি পূর্ণসংখ্যা দেওয়া হয় p >= 2। পেতে আপনাকে একসাথে কিছু- pশক্তি যোগ করতে হবে ( p=2মানে স্কোয়ারগুলি, p=3মানে কিউবগুলি) n। এটি সর্বদা যে কোনও nঅ- নেজেটিভের জন্য , তবে আপনি যে অনেকগুলি- pশক্তি (কোন ধনাত্মক পূর্ণসংখ্যার) প্রয়োজন তা জানেন না ।

এটি আপনার কার্য: সর্বনিম্ন- pতৃতীয় শক্তিগুলির সংখ্যার সন্ধান করুন n

উদাহরণ

>>> min_powers(7, 2)
4                       # you need at least four squares to add to 7
                        # Example: (2)^2 + (1)^2 + (1)^2 + (1)^2 = 4 + 1 + 1 + 1 = 7
>>> min_powers(4, 2)
1                       # you need at least one square to add to 4
                        # Example: (2)^2 = 4
>>> min_powers(7, 3)
7                       # you need at least seven cubes to add to 7
                        # Example: 7*(1)^3 = 7
>>> min_powers(23, 3)
9                       # you need at least nine cubes to add to 23
                        # Example: 2*(2)^3 + 7*(1)^2 = 2*8 + 7*1 = 23

এই সমস্যা সম্পর্কিত উইকিপিডিয়া নিবন্ধ, ওয়ারিংয়ের সমস্যা

বিধি

  • আপনার কোড অবশ্যই একটি প্রোগ্রাম বা একটি ফাংশন হতে হবে

  • ইনপুট দুটি পূর্ণসংখ্যা nএবং pযে কোনও ক্রম। আপনি সমস্ত ইনপুটগুলি বৈধ বলে ধরে নিতে পারেন ( nকোনও ধনাত্মক পূর্ণসংখ্যা,p >= 2

  • আউটপুট হল পূর্ণসংখ্যা যা যোগফলের জন্য প্রয়োজনীয় সংখ্যার প্রতিনিধিত্ব করে n

  • এটি কোড গল্ফ, তাই সবচেয়ে সংক্ষিপ্ত প্রোগ্রামটি জিতে।

  • যে কোনও এবং সমস্ত বিল্ট-ইন অনুমোদিত।

সর্বদা হিসাবে, সমস্যাটি যদি অস্পষ্ট হয় তবে দয়া করে আমাকে জানান। শুভকামনা এবং ভাল গল্ফিং!


ঠিক আছে, দেখে মনে হচ্ছে নিষ্ঠুর শক্তি জিতবে। আমি আশা করি না যদিও।
lirtosiast

3
এই সমস্যাটি অবিশ্বাস্যরকম শক্ত এবং আমি সন্দেহ করি যে সঠিক ফলাফল দেওয়ার সময় কোনও উত্তরই শেষ হবে।
orlp

কমপক্ষে উপরের সীমানা থাকতে হবে
qwr

উত্তর:


5

পাইথ, 20 19 বাইট

সংরক্ষিত 1 বাইট FryAmTheEggman ধন্যবাদ।

L&bhSmhy-b^dQS@bQyE

দুটি লাইনে ইনপুট নেয়, pপ্রথমে এবং তারপরেn

এটি অনলাইনে চেষ্টা করুন। পরীক্ষা স্যুট.

ব্যাখ্যা

কোডটি পুনরাবৃত্ত ফাংশন সংজ্ঞায়িত করে y(b)যা ফলাফল প্রদান করে min_powers(b, p)

L                      define a function y(b):
 &b                      return b if it's 0
             S           get a list of positive integers less than or equal to
              @bQ        the p:th root of b
     m                   map the integers to:
        -b                 subtract from b
          ^dQ              the p:th power of the current integer
       y                   recurse on the above
      h                    increment the result
    hS                   find the smallest result number and return it
                 yE    calculate y(n) and print

8

গণিতের 61 50 বাইট

LegionMammal978 দ্বারা 11 বাইট সংরক্ষণ করা হয়েছে।

সংখ্যা গণনা করার ক্ষমতাগুলিতে সীমাবদ্ধ থাকাকালীন, এই সমস্যাটি সোজা (গণিতের ক্ষেত্রে)। যখন পূর্ণসংখ্যার শক্তিগুলি অন্তর্ভুক্ত করার জন্য বাড়ানো হয়, এটি একটি দুঃস্বপ্ন।

(k=0;While[PowersRepresentations[#,++k,#2]=={}];k)&

পরীক্ষার কেস

(k = 0; While[PowersRepresentations[#, ++k, #2] == {}]; k) &[7, 2]
(k = 0; While[PowersRepresentations[#, ++k, #2] == {}]; k) &[4, 2]
(k = 0; While[PowersRepresentations[#, ++k, #2] == {}]; k) &[7, 3]
(k = 0; While[PowersRepresentations[#, ++k, #2] == {}]; k) &[23, 3]

4

1

7

9


PowersRepresentationsp[n,k,p]চতুর্থ শক্তিতে উত্থাপিত ধনাত্মক পূর্ণসংখ্যার nযোগফল হিসাবে প্রকাশিত হতে পারে এমন সমস্ত ক্ষেত্রে সন্ধান করে।kp


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

PowersRepresentations[1729, 2, 3]

{{1, 12}, {9, 10}

পরীক্ষা করা হচ্ছে,

1^3 + 12^3

1729


9^3 + 10^3

1729


প্রতিযোগিতামূলকভাবে ম্যাথমেটিকার মতো ভাষাগুলি এইগুলির উদ্দেশ্যকে পরাজিত করে ... কোনও ফাংশনের নাম জানতে কোনও সৃজনশীলতা লাগে না। কিন্তু এখনও, ভাল লেখা।
csga5000

1
@ csga5000 আরে, গল্ফিংয়ের ভাষাগুলি এই সাইটে 99% চ্যালেঞ্জ
জিতেছে

@ লিজিওনম্যামাল ৯78৮ যদিও আমি সিএসগা এর সাথে একমত নই, গল্ফিং ভাষায় গল্ফিং জিনিসগুলির জন্য বিপুল পরিমাণে সৃজনশীলতার প্রয়োজন।
ডুরকনব

2
সম্মত, এই জমা দেওয়ার উপর সৃজনশীলতার জন্য কোনও পুরষ্কার নেই। সংক্ষিপ্ততার জন্যও নয়: পাইথ জমা দেওয়ার দৈর্ঘ্যের অর্ধেকেরও কম। সমস্যাগুলি ম্যাথমেটিকার মতো ভাষার জন্য চ্যালেঞ্জ হয়ে ওঠে যখন এগুলি আরও সাধারণ ঘটনার উদাহরণ হিসাবে পুনরুদ্ধার করা যায় এবং যখন উচ্চ-স্তরের ক্রিয়াকলাপগুলির অস্বাভাবিক সংমিশ্রণ ভূমিকা নিতে পারে। তারা আরও আকর্ষণীয় হয়ে ওঠে।
ডেভিডসি

3

জাভা - 183 177 বাইট

int p(int a,int b){int P,c,t,l=P=t=a,f=0;double p;while(P>0){a=t=l;c=0;while(t>0){if(a-(p=Math.pow(t,b))>=0&&t<=P){while((a-=p)>=0)c++;a+=p;}t--;}f=c<f||f==0?c:f;P--;}return f;}

183 বাইট

int p(int a,int b){int P,c,t,l,f=0;P=t=l=a;double p;while(P>0){a=t=l;c=0;while(t>0){if(a-(p=Math.pow(t,b))>=0&&t<=P){while((a-=p)>=0){c++;}a+=p;}t--;}f=c<f||f==0?c:f;P--;}return f;}

Ungolfed

int p(int a, int b){
    int P,c,t,l=P=t=a,f=0;
    double p;
    while (P>0){
        a=t=l;
        c=0;
        while (t>0){
            if (a-(p=Math.pow(t, b))>=0 && t<=P){
                while((a-=p)>=0)c++;
                a+=p;
            }
            t--;
        }
        f=c<f||f==0?c:f;
        P--;
    }
    return f;
}

ফলাফল

System.out.println(p(7, 2));    // 4
System.out.println(p(4,2));     // 1
System.out.println(p(7,3));     // 7
System.out.println(p(23,3));    // 9

এই উত্তরটি অবৈধ। p(32,2)ফিরে আসার 5পরে তা ফিরে আসে 2( 4^2 + 4^2 = 32)।
পুর্কাকোদারী

@ Pietu1998 ঠিক আছে আমি এটি পরিবর্তন করব।
ইয়াসিন হাজাজ

@ Pietu1998 আপনি এটি কীভাবে করবেন?
ইয়াসিন হাজাজ

আমি এটি পুনরাবৃত্তভাবে করেছি, প্রতিটি সংখ্যার জন্য প্রতিটি সম্ভাব্য শক্তি পরীক্ষা করে।
পুর্কাকুডারী

1
জাভা এবং এটি নিজেই করার জন্য @ ইয়াসিনহাজ্ব +1 করুন
csga5000

1

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

f=lambda n,p:n and-~min(f(n-k**p,p)for k in range(1,n+1)if n/k**p)

অবিচ্ছিন্নভাবে প্রতিটি- pতম পাওয়ারকে বিয়োগের চেষ্টা করে যা বাকী অংশটিকে অ-নেতিবাচক ছেড়ে দেয়, প্রতিটি অবশিষ্ট অংশের জন্য এর মান গণনা করে এবং সর্বনিম্ন 1 যোগ করে 0 এ 0 আউটপুট দেয়।

কুৎসিত চেক if n/k**p(সমতুল্য if k**p<=n) হ'ল ফাংশনটিকে negativeণাত্মক অবস্থানে যেতে বাধা দেওয়া minএবং খালি তালিকার তালিকাটি নেওয়ার চেষ্টা করা । পাইথন থাকলে, এটির min([])=infinityপ্রয়োজন হবে না।


কি দারুন. এটি পাইথনের আমার পরীক্ষার কোডের চেয়ে অনেক ছোট। +1 টি!
শার্লক 9

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