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


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.