বহুবর্ষটি সন্ধান করুন


20

আমরা জানি যে চ একটি অ-নেতিবাচক পূর্ণসংখ্য সহগ সহ একটি বহুপদী।

প্রদত্ত চ (1) এবং চ (1 + চ (1)) ফেরত চ । আপনি সহগের তালিকা হিসাবে একটি এএসসিআইআই ফর্ম্যাট বহুপাক্ষিক বা অনুরূপ হিসাবে চ আউটপুট করতে পারেন ।

উদাহরণ:

f(1)  f(1+f(1))  f
0     0          0
1     1          1
5     75         2x^2 + 3
30    3904800    4x^4 + 7x^3 + 2x^2 + 8x + 9
1     1073741824 x^30

1
এলোমেলো প্রশ্ন: আমি এখনই এটিকে প্রমাণ / অস্বীকার করার চেষ্টা করতে খুব ক্লান্ত হয়ে পড়েছি, তবে এটি কি নিশ্চিত যে আমরা সর্বদা f(1)এবং এর উত্তর পেতে সক্ষম হব f(1+f(1))?
— হাইপারনিউট্রিনো

4
@ হাইপারনিউট্রিনো আমি অন্যথায় এই চ্যালেঞ্জটি তৈরি করতাম না।
— orlp

ঠিক আছে, এটি একটি ভাল পয়েন্ট। হুঁ। আকর্ষণীয়, আমি আগামীকাল তা প্রমাণ করতে যাব কারণ এটি খুব আকর্ষণীয়। আকর্ষণীয় চ্যালেঞ্জের জন্য ধন্যবাদ!
— হাইপারনিউটারিনো

1
বেস-রূপান্তর ট্যাগ ইঙ্গিতে হতে অনুমিত হয়?
— থুন্ডা

9
যতটা এটি একটি সুন্দর ধাঁধা, আমি মনে করি কোডটি মূলত বেস রূপান্তর। সম্ভবত দুপ?
— এক্সনোর

উত্তর:


27

জেলি , 3 বাইট

‘b@

এটি অনলাইন চেষ্টা করুন!

গুণফলের তালিকা হিসাবে বহুবর্ষটি ফেরত দেয়।

যেহেতু আমরা জানি যে বহুপথের অ-নেতিবাচক পূর্ণসংখ্যার সহগ রয়েছে, তাই চ (খ) একটি বেসের সংজ্ঞা দ্বারা " বহুবর্ষের সহগগুলি, বেস বি সংখ্যা হিসাবে নেওয়া হয়" হিসাবে ব্যাখ্যা করা যেতে পারে । এটি এই শর্তের সাপেক্ষে যে সহগের কোনটিই খ -এর চেয়ে বেশি হয় না বা তার সমান হয় না , তবে আমরা জানি যে, খ , সহগের যোগফলের চেয়ে বড় (যা চ (1) )।

প্রোগ্রামটি 1 + f (1)‘ পাওয়ার জন্য প্রথম আর্গুমেন্টকে সহজেই বৃদ্ধি করে , তারপরে বেস হিসাবে রূপান্তর অণু ( ) কে প্রথম আর্গুমেন্ট দিয়ে এবং দ্বিতীয় আর্গুমেন্টটিকে সংখ্যা হিসাবে আর্গুমেন্টের ক্রমটি অদলবদল করে, যেহেতু সাধারণত সংখ্যাটি প্রথম এবং দ্বিতীয় হয়)।b@b

এটি ছিল বেশ চালাক চ্যালেঞ্জ; ধন্যবাদ orlp!


13
বিশ্বে এটি কীভাবে সম্ভব
— থুন্ডা

আমার জেলি শিখতে হবে ...
— sagiksp

ডেনিসকে অবশ্যই এটি দেখতে হবে।
— এরিক আউটগল্ফার

6

গণিত, 29 28 বাইট

জংহওয়ান মিনকে 1 বাইট বাঁচানোর জন্য ধন্যবাদ! (হাস্যকরভাবে, একটি সহ Max)

#2~IntegerDigits~Max[#+1,2]&

খাঁটি ফাংশন দুটি ননজেটিভ পূর্ণসংখ্যা গ্রহণ করে এবং (ননেনিজেটিভ পূর্ণসংখ্যা) সহগের একটি তালিকা ফেরত দেয়। ডুরকনব জেলি উত্তর#2~IntegerDigits~(#+1) মত একই অ্যালগরিদম হবে ; দুর্ভাগ্যক্রমে, ম্যাথামেটিকার চোকগুলি যখন বেস 1 এর সমান হয় তাই অতিরিক্ত বাইটের প্রয়োজন ।IntegerDigitsMax[...,2]


2
হাহাহা, খুব সুন্দর।
— জংহওয়ান মিন


3

ভিবিএ, 75 বাইট

Sub f(b,n)
b=b+1
Do While n>0
s=n Mod b &" " &s
n=n\b
Loop
Debug.?s
End Sub

যখন এটি স্বয়ংক্রিয়ভাবে ফর্ম্যাট হয়, তখন এটির মতো দেখাচ্ছে:

Sub f(b, n)
    b = b + 1
    Do While n > 0
        s = n Mod b & " " & s
        n = n \ b
    Loop
    Debug.Print s
End Sub

\অপারেটর একটি মেঝে ডিভাইড হয়


1

এএইচকে , 63 বাইট tes

a=%1%
b=%2%
a+=1
While b>0
{s:=Mod(b,a) " "s
b:=b//a
}
Send,%s%

অটোহটকি আগত পরামিতিগুলির জন্য ভেরিয়েবলের নাম হিসাবে 1-n সংখ্যা নির্ধারণ করে। আপনি যখন এগুলি ফাংশনগুলিতে ব্যবহার করার চেষ্টা করেন তখন এটি কিছু সমস্যা সৃষ্টি করে কারণ এটি মনে করে যে আপনি 1 নামক ভেরিয়েবলের পরিবর্তে আক্ষরিক সংখ্যা 1 বোঝাচ্ছেন I


1

জাভা, 53 বাইট

a->b->{while(b>0){System.out.println(b%-~a);b/=a+1;}}

সহগের একটি তালিকা আউটপুট করে। গণিতের জন্য ওভিএসকে ধন্যবাদ।

এক্সপ্রেশনটি একটিতে নির্ধারিত হবে Function<Integer, IntConsumer>এবং প্রথমে applyফাংশনটি আইএন দিয়ে কল করা হবে, তারপরে acceptইনগ্রেশন করতে হবে int। জাভা 9 এর সাথে কোনও আমদানির প্রয়োজন নেই jshell:

C:\Users\daico>jshell
|  Welcome to JShell -- Version 9-ea
|  For an introduction type: /help intro

jshell> Function<Integer, IntConsumer> golf =
        a->b->{while(b>0){System.out.println(b%-~a);b/=a+1;}}
golf ==> $Lambda$14/13326370@4b9e13df

jshell> golf.apply(30).accept(3904800)
9
8
2
7
4

1

কমন লিস্প, 87 বাইট

(defun p(x y)(multiple-value-bind(q m)(floor y (1+ x))(if(= 0 q)`(,m)`(,m ,@(p x q)))))

Ungolfed:

(defun find-polynomial (f<1> f<1+f<1>>)
  (multiple-value-bind (q m)
      (floor f<1+f<1>> (1+ f<1>))
    (if (zerop q) `(,m)
      (cons m (find-polynomial f<1> q)))))

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