আনুমানিক প্লাস্টিকের নম্বর


24

চ্যালেঞ্জ

প্লাস্টিক সংখ্যা সুবর্ণ অনুপাত এর সাথে সম্পর্কিত একটি সংখ্যা অনেক আকর্ষণীয় গাণিতিক বৈশিষ্ট্য সঙ্গে হল। এই হিসাবে, অনেকগুলি পন্থা রয়েছে যা ব্যবহার করে সংখ্যা গণনা করা যায়।

এই চ্যালেঞ্জের উদ্দেশ্যে নির্দিষ্টভাবে সংখ্যা নির্দিষ্ট করতে, আমরা নিম্নলিখিত সংজ্ঞাটি ব্যবহার করব (যদিও এখানে সমান সংখ্যক সংজ্ঞা রয়েছে এবং আপনি যে কোনও সংজ্ঞা ব্যবহার করতে পারেন যতক্ষণ না এটি একই সংখ্যায় আসে):

প্লাস্টিকের নম্বরটি আসল সংখ্যা ρ যেমন ρ ³ = ρ +1।

আপনার চ্যালেঞ্জটি হ'ল এমন একটি প্রোগ্রাম বা ফাংশন লিখুন যা ইনপুট হিসাবে পূর্ণসংখ্য x গ্রহণ করে ( x > 1 সহ), এবং আউটপুট হিসাবে to এর সান্নিধ্য তৈরি করে , যেমন x এর মান যত বড় হয় , আউটপুট আরও কাছাকাছি যায় ρ ( সবচেয়ে finitely অনেক ব্যতিক্রম এ সঙ্গে; এই কাজের জন্য "কাছাকাছি" হিসাবে একই মান গন্য এ স্থিত), এবং কোন ধনাত্মক সংখ্যা জন্য δ , কিছু ইনপুট এর এক্স আপনার প্রোগ্রাম মধ্যে যে একটি আউটপুট যে উৎপন্ন δ এর ρ

ব্যাখ্যা

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

পরীক্ষা ক্ষেত্রে

প্লাস্টিকের নম্বরটির প্রথম কয়েকটি অঙ্ক এখানে দেওয়া হল:

1.32471795724474602596090885

ওআইআইএস-এ আরও বেশি সংখ্যা পাওয়া যায় ।

বিজয় শর্ত

জন্য যথারীতি কম, বাইটে পরিমাপ করা ভাল। তবে জবাব না পেলেও নির্দ্বিধায় জবাবদিহি করুন, যতক্ষণ না তারা বিদ্যমান উত্তরের সাথে কিছু যুক্ত করে (যেমন একটি আলাদা ভাষা, বা ভিন্ন অ্যালগরিদম)।


1
এইচএমএম, (সিবিআরটি (108 + 12 * বর্গফুট (69)) + সিবিআরটি (108-12 * স্ক্র্যাট (69%)) / 6 এটি 'ড্রেক আনুমানিক': স্কয়ার্ট (69) = 8 ব্যবহার করার জন্য ভাল সময় বলে মনে হচ্ছে। কিছুটা বিট.লি / ২২ সিসিএইচডিএক্স ^ _ ^
ড্রকোয়ারিয়াস

2
আমরা কি পুনরাবৃত্তি / স্ট্যাকের গভীরতা সীমাহীন বলে ধরে নিতে পারি?
xnor

দ্বিতীয় বিষয়টি স্পষ্ট করার জন্য, আমরা কি নির্বিচারে নির্ভুলতা গ্রন্থাগারগুলি ব্যবহার করতে পারি (উদাহরণস্বরূপ পাইথনের এমপিমেথ)? তারা একটি সহায়ক তথ্য প্রকার ব্যবহার করে, তবে আপনি কি "প্রতীকীভাবে" জিনিসগুলি সংরক্ষণ করা হিসাবে গণনা করেন?
ব্যাটম্যান

1
ওয়েল, খুব কমপক্ষে আমি বিন্দুতে মিলিত উত্তর আশা করতে চাই ρ । এছাড়াও, একটি "সৎ" সমাধান সহজে পরীক্ষা x> y -> | ρx - ρ | ব্যর্থ হতে পারে > | ρy - ρ | সীমাবদ্ধ সংখ্যার (x, y) জোড়ার জন্য। যদি তা গ্রহণযোগ্য না হয় তবে আমি মনে করি এটি অনুমানের মধ্যে আরও স্পষ্ট করা উচিত।
ডেনিস

6
অনেক উত্তরদাতারা একটি x অঙ্কের সান্নিধ্যের সাথে ρ গণনা করার ফাঁদে পড়েছেন? সমস্যাটি হ'ল সম্ভবত এমন অনেক x রয়েছে যা একটি (x + 1)-ডিজিটের অনুমানের চেয়ে এক্স ডিজিটের অনুমানের চেয়ে ভাল নয়। আপনি সম্ভবত এটি পরিষ্কার করার ইচ্ছা করেছিলেন কিনা তা পরিষ্কার করে দেওয়া উচিত। যদি আপনি তা না করেন তবে "কাছাকাছি "টিকে" কঠোরভাবে কাছাকাছি "দিয়ে প্রতিস্থাপন করুন; যদি আপনি করেন, "কমপক্ষে যতটা নিকটবর্তী", বা কিছু। ক্রমটি ρ এ রূপান্তরিত করে এমন আলগা প্রয়োজনীয়তাটিও আপনি বিবেচনা করতে পারেন যা এক্সনোরের উত্তরকে অতিরিক্ত অনুমতি দেয়।
অ্যান্ডারস ক্যাসরগ

উত্তর:


10

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

n=x=input()
while n**3/x/x<n+x:n+=1
print n,'/',x

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

ধারণা প্রকাশ করতে ρসঙ্গে ρ³=ρ+1হিসাবে একটি ভগ্নাংশ n/xযার হর xইনপুট সঠিকতা প্যারামিটার। আমরা পেতে (n/x)³=n/x+1এবং ডিনোমিনেটর পরিষ্কার করতে n³=x²(x+n)

যেহেতু এলএইচএস nআরএইচএসের চেয়ে দ্রুত বৃদ্ধি পায় , তাই আমরা nসামান্যতম হিসাবে সমতা পয়েন্টটি অনুমান করতে পারি n³≥x²(x+n)। কোডটি nযতক্ষণ না xছোট হয় তার প্রেক্ষাপট পর্যন্ত এটি গণনা করা হয়।

একটি ছোট বাইট সেভ হ'ল লেখার দ্বারা উভয় পক্ষকে ভাগ করা n³/x²≥x+n( whileশর্তে অবহেলিত )। এটি কোডের মেঝে বিভাগ, তবে হারিয়ে যাওয়া ভগ্নাংশটি নগণ্য।

পরিবর্তে একটি একই দৈর্ঘ্যের বিকল্পটি xসংখ্যা হিসাবে রাখে :

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

n=x=input()
while x**3/n/n<n+x:n-=1
print x,'/',n

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


যদিও এই আউটপুটটি ρ (∀ε> 0 ₀x₀ ∀x ≥ x₀ | f (x) - ρ | <ε) এ রূপান্তরিত হয়, এটি সন্তুষ্ট হয় না "x এর মান যত বড় হয়, আউটপুটটি আরও কাছাকাছি যায় gets (সর্বাধিক চূড়ান্তভাবে অনেক ব্যতিক্রম সহ) "" (₀x₀ ∀x ≥ x₀ | f (x + 1) - ρ | <| f (x) - ρ |)।
অ্যান্ডারস কাসরগ

এই সমস্যাটি 2**input()কেবল ব্যবহার না করে ব্যবহারের মাধ্যমে সমাধান করা যেতে পারে input(); তারপরে, প্রতিটি আনুমানিক পূর্বের তুলনায় কমপক্ষে নির্ভুল হবে।

10

গণিত, 20 বাইট

#^3-#-1&~Root~1~N~#&

গণিতের বিল্টিন Rootফাংশন একটি বহুপদী সমীকরণের সমাধান দেয় f[x] == 0

ব্যাখ্যা

#^3-#-1&~Root~1~N~#&
                   &  (* Function *)
#^3-#-1&              (* A pure-function polynomial, x^3-x-1 *)
        ~Root~1       (* Find the first root *)
               ~N~#   (* approximate to (input) digits *)

নমুনা I / O

In[1]:= f=#^3-#-1&~Root~1~N~#&;
        f[1]

Out[1]= 1.

In[2]:= f[9]

Out[2]= 1.32471796

In[3]:= f[100]

Out[3]= 1.324717957244746025960908854478097340734404056901733364534015050302827851245547594054699347981787280

PS: একই বাইট গণনার জন্য Root[x^3-x-1,1]~N~#&(এটি xএকটি পরিবর্তনশীল এটি না বললেও ) কাজ করে।
গ্রেগ মার্টিন

@ আন্ডারস ক্যাসরগ: আমি এই নিয়মটি পরিবর্তন করেছি কারণ এটি স্পষ্টভাবে ভেঙে গেছে। কোনও বৈধ উত্তর অবৈধ করা হয়নি, তবে কিছু উত্তর (এর মতো) বৈধ হয়ে উঠেছে।

6

গণিত, 27 বাইট

x/.Solve[x^3==x+1>2,x]~N~#&

মার্টিন থেকে -1 বাইট
ov থেকে বাই 2

ইনপুট

[27]

আউটপুট

{1,32471795724474602596090885}


Solve[x^3==x+1>2,x]~N~#&24 বাইটের জন্য
ovs

1
{{x -> 1.32...}}যদিও এর ফলাফল । আপনি আইসের সাথে এটি পরীক্ষা করে দেখতে পারেন যে এটি বৈধ আউটপুট ফর্ম্যাট কিনা।
মার্টিন ইন্ডার

ঠিক আছে .. সমস্ত স্থির আমার অনুমান
J42161217

এটি এখনও {1.32...}বাস্তবে, তবে সেই ফর্ম্যাটটি সম্ভবত কম বিতর্কিত।
মার্টিন এন্ডার

1
আমি চ্যালেঞ্জটিকে আরও কিছুটা সাধারণ করে তুলেছি যাতে এটি বৈধ হবে, এটি "প্রথম x সংখ্যা" সমাধানগুলি অস্বীকার করার উদ্দেশ্যে নয়। সুতরাং এটি এখন বৈধ, যদিও এটি আগে ছিল না।

6

সেড , 67 60 (59 + 1) বাইট

s,^,1/1/1 ,
:;s,(1*/(1*)/(1*).*)1$,\2\3/\1,
t
s,(/1*).*,\1,

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

-Eপতাকার জন্য +1 (BRE এর পরিবর্তে ERE)। ইনপুট এবং আউটপুট উভয় একরকম: এক্স = 5 এর জন্য ইনপুট 11111 উদাহরণস্বরূপ আউটপুট দুটি অ্যানারি সংখ্যার একটি ভগ্নাংশ: পূর্বোক্ত 11111 ইনপুট আউটপুট 11111/1111 (দশমিকের মধ্যে 5/4) দেয়।

প্যাডোভেন ক্রমের ক্রমাগত উপাদানগুলির মধ্যে একটি ভগ্নাংশ হিসাবে প্লাস্টিকের সংখ্যাটিকে প্রায় অনুমান করে ।


1
FWIW bকমান্ডের পরে আপনার কোনও জায়গার দরকার নেই , তবে খালি লেবেল ( :এবং bকোনও যুক্তি ছাড়াই) ব্যবহার করে আপনি এটি আরও খাটো করতে পারেন । tio.run/#%23K05N@f@/…
জর্ডান

ওহ দুর্দান্ত। আমি ব্যবহার করে আরেকটি 4 বাইট সংরক্ষণ করতে পারবেন tপরিবর্তে b, যাতে সংরক্ষণ একটি প্রশংসনীয় চমৎকার। ধন্যবাদ :)
ফায়ারফ্লাই

5

গণিত, 27 বাইট

Nest[(1+#)^(1/3)&,1,#]~N~#&

নেস্টেড কিউবিক র‌্যাডিক্যাল ফর্ম un (1 + ³√ (1 + ³√ (1 + ...))) এর কাটা কাটা সংমিতি ব্যবহার করে । যদিও আউটপুটটিতে সর্বদা এক্স -১ দশমিক স্থান থাকবে, ফলাফল আসলে তার চেয়ে কম নির্ভুল, কারণ এক্সপ্রেশনটি পুনরাবৃত্তির জন্য প্রতি এক অঙ্কের চেয়ে আরও ধীরে ধীরে রূপান্তরিত হয় ( x গণনা করা নেস্টেড র‌্যাডিকালগুলির সংখ্যা হিসাবেও ব্যবহৃত হয়)। উদাহরণস্বরূপ x = 100 দেয়

_________________________________________________________________________
1.324717957244746025960908854478097340734404056901733364534015050302827850993693624204577670741656151

যেখানে ওভারলাইন করা অংশটি সঠিক।


আমি এই অ্যালগরিদমটি ভিতরে লেখার পরিকল্পনা করছিলাম dc, তবে স্তিমিত হয়ে গিয়েছিলাম কারণ দেখা যাচ্ছে যে এটির কিউব রুট অপারেশন নেই, এবং একটি সংখ্যা বাড়িয়ে পাওয়ার ক্ষেত্রেও হয় না :-( কমপক্ষে আপনি সর্বদা নির্ভর করতে পারেন ম্যাথমেটিকায় যথাযথ বিল্টিন থাকবে ...

3
@ ais523 আসলে সেখানে CubeRootকিন্তু কেউই এর জন্য বাইট পায় নি।
মার্টিন ইন্ডার

4

অক্টাভা , 50 বাইট

@(n)char(digits(n)*0+vpasolve(sym('r^3-r-1'))(1));

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

আউটপুটগুলির nসংখ্যাগুলির পছন্দসই সংখ্যার সাথে একটি বেনামী ফাংশন সংজ্ঞায়িত করে ।

এই উত্তর অপব্যবহারগুলি digitsপরিবর্তনশীল নির্ভুল গণিতের অঙ্কগুলির সংখ্যার জন্য বর্তমান সেটিংটি ফিরিয়ে দেয়। এর অর্থ আমরা 'অনেক বেশি আউটপুট আর্গুমেন্ট' সম্পর্কে ত্রুটি ছাড়াই এটি কেবল একটি বেনামে ব্যবহার করতে পারি।

এগুলি ব্যতীত, এটি সত্যই সোজাসাপ্টা: vpasolveশেষের কল অনুসারে যথাযথ সেট সহ চলক-যথার্থ পাটিগণিত সমাধানের পক্ষে সংক্ষিপ্ত digits। যেহেতু vpaঅক্টোবায় একটি সিম্বলিক ডেটা টাইপ, যা অনুমান অনুযায়ী নিষিদ্ধ, তাই আমরা char(...)স্ট্রিং আউটপুট পেতে পুরো ফাংশনটি গুটিয়ে রাখি। মনে রাখবেন যে solveএবং এর মধ্যে vpasolve, এটি অন্তর্ভুক্ত f==0, তাই r^3==r+1প্রতিস্থাপন করা হয়েছেr^3-r-1 (==0)


আমি গিয়ে প্রশ্নটি পরিবর্তন করেছিলাম যাতে এটি এর মতো উত্তরগুলি অস্বীকার করে না (এটি বোঝানো হয়নি)।

@ ais523 বিজ্ঞপ্তির জন্য ধন্যবাদ!
সানচাইজস

4

এমএটিএল ( ২৮ 28 বাইট)

7BG:"t@)y@Q)+h]tG3+)yG2+)/

আমার প্রথম সমাধান (27 বাইট)

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

এটি অবশ্যই সর্বোত্তম নয়, আমি এখনও এমএটিএল অভ্যস্ত হয়ে যাচ্ছি।

ব্যাখ্যা:

আমি ইনপুট + 3 পর্যন্ত প্যাডোভান ক্রম তৈরি করি তারপরে শেষ দুটি সংখ্যার অনুপাতটি খুঁজে পাই ।

7B     % Turn 7 into binary to give 1 1 1 
G:"    % For k=1:input do...
t@)    % Existing sequence member k
y@1+)  % Existing sequence member k+1
+h     % Add them together and concatenate to the sequence array
]      % End loop
tG3+)  % Final sequence member
yG2+)  % Second last sequence member
/      % Divide to approximate ρ

সঠিক ভগ্নাংশ আউটপুট (35 বাইট) (28 বাইট, @ সানচিইস):

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

যেমন "114/86"

7BG: "টি @) Y @ 1 + +) + H] tg3 + +) ভী '/' YcyG2 + +) VYc

7BG:"t@tQh)sh]tJ)V47hyJq)Vh&

সৌজন্যে ব্যবহারকারী @ সাঞ্চাইজস। :)

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

পুনরাবৃত্তিমূলক মূল্যায়ন:

উল্লেখযোগ্যভাবে, 'সঠিক' সংস্করণের জন্য আমার সংক্ষিপ্ততম কোডটি (23 বাইট):

1-1h69X^12**108+1I/^6/s

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

... তবে নির্বিচারে নির্ভুলতা দেয় না। আমি অবাক হয়েছি যে কেউ যদি নিয়মগুলি পূরণ করতে (ইনপুট ইত্যাদি ব্যবহার করে) এটিকে সামঞ্জস্য করতে পারে এবং এখনও 5 বাইটের চেয়ে কম যোগ করতে পারে? : P: P


1
1+সংক্ষিপ্ত করা যেতে পারে Q.যা মনে মনে, আপনি @)y@1+)+ঠিক সঙ্গে প্রতিস্থাপন করতে পারেন @tQh)s। তদতিরিক্ত, আপনি Jএকটি অ্যারের শেষ নির্দেশ করতে ব্যবহার করতে পারেন ; এবং পরিশেষে, MATL, স্বাভাবিক অ্যারে এবং চরিত্র অ্যারে মধ্যে পার্থক্য নেই তাই আপনি প্রতিস্থাপন করতে পারেন Ycদ্বারা h(আপনি অতিরিক্ত কার্যকারিতা প্রয়োজন হবে না Yc)। এটি মাত্র ২৮ বাইট দেয়: 7BG:"t@tQh)sh]tJ)V47hyJq)Vh&( &অতিমাত্রায় আউটপুট প্রতিরোধ করার জন্য লক্ষ্য করুন এবং '/'47 দ্বারা প্রতিস্থাপন )।
সাতটায় ch

1
জন্য যশ 7Bযদিও, অনেক ভালো naively ঠেলাঠেলি চেয়েlllv
Sanchises

1
@ ড্রকোরিয়াস সর্বশেষতম সংস্করণটি সর্বদা এই গিটহাব লিঙ্কে
লুইস মেন্ডো

1
@ ড্রিকিয়ারিয়াস না, আমি সাধারণত ব্যবহার করি না এমন বরং পুরানো এমএটিএল স্পেসে এই আচরণটি উপস্থিত রয়েছে। আপনি সত্যিই ছক 3. পরীক্ষা করা উচিত কেবল ক্লিপবোর্ড করে Jডিফল্টরূপে ধারণ 1jকিন্তু ক্লিপবোর্ড Lঅনেক দরকারী ইন্ডেক্স ফাংশন (নোট যে রয়েছে 1jসমান endMATL মধ্যে)।
সান্চাইজস

1
এছাড়াও, চিন্তা করবেন না, আমি একজন যান্ত্রিক প্রকৌশলী আমি মনে করি বৈজ্ঞানিক পরিবেশের বাইরে এমএটিএল (এবি) এর খুব কম ব্যবহার রয়েছে, তাই আমি অনুমান করব যে এমএটিএল (এবি) / অক্টাভা গল্ফারদের সিংহভাগই সিএসের বাইরের।
সান্চাইজস

4

এম , 15 14 বাইট

²×3’
*3Ḥ‘÷Ç
Ç¡

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

অ্যালগরিদম

এটি যুক্তি এবং নিউটনের পদ্ধতি ব্যবহার করে। বিশেষত, ইনপুট এক্সের জন্য , প্রারম্ভিক মান x সহ প্রথম এক্স পুনরাবৃত্তি প্রয়োগ করা হয়।

আমরা বহুপদী p (t) = t³ - t - 1 এর একটি নির্দিষ্ট মূল আবিষ্কার করার চেষ্টা করছি । নিউটনের পদ্ধতিটি প্রারম্ভিক মান টি 0 নিয়ে পর্যাপ্ত পরিমাণে ρ - এবং পুনরাবৃত্তভাবে
টি এন + 1 = টি এন - পি (টি এন ) / পি '(টি এন ) দ্বারা ক্রম সংজ্ঞায়িত করে এটি অর্জন করে ।

যেহেতু P '(T) = 3t² -1 , আমরা পেতে
টন এন + 1 টি = T এন - (টি এন ³ - টি এন - 1) / (3t এন ² এর - 1) = (3t এন ³ - টি এন - টি এন ³ + T এন +1) / (3t এন ² এর - 1) = (2T এন ³ +1) / (3t এন ² এর - 1)

দ্রষ্টব্য যে এক্সটি বাড়ার সাথে সাথে প্রাথমিক আনুমানিক x ক্রমান্বয়ে খারাপ হয় । কিছুদিনের জন্য আউটপুট এক্স = 3 জন্য আউটপুট চেয়ে সামান্য কম সুনির্দিষ্ট এক্স = 2 , যেহেতু নিউটনের পদ্ধতি এগোয় quadratically করার ρ , এই বৃহৎ মানের জন্য একটি বিষয় হওয়া উচিত নয় এক্স

কিভাবে এটা কাজ করে

Ç¡    Main link. Argument: x

Ç¡    Call the second helper link x times, which initial argument x.


*3Ḥ‘÷Ç  Second helper link. Argument: t

*3      Compute t³.
  Ḥ     Unhalve; yield 2t³.
   ‘    Increment; yield 2t³+1.
     Ç  Call the first helper link with argument t.
    ÷   Divide the left result by the right one.


²×3’    First helper link. Argument: t

²       Compute t².
 ×3     Compute 3t².
   ’    Decrement; yield 3t²-1.

খুব খারাপ আপনি ব্যবহার করতে পারবেন না ... µ¡...
এরিক আউটগল্ফার



1

কাঠকয়লা , 28 বাইট

AIθθAθνW‹∕∕Xν³θθ⁺νθA⁺ν¹νI∕νθ

এটি অনলাইন চেষ্টা করুন! ভার্বোজ মোডের লিঙ্ক। এছাড়াও আমি স্পষ্টতই গণ্ডগোল করেছি Divideএবং IntDivide: |
পাইথন এবং জাভাস্ক্রিপ্ট উত্তরের মতো একই পদ্ধতি ব্যবহার করে।


1

নিউস্ট্যাক , 14 বাইট

¹Fᵢ{E2x³⁺÷3x²⁻

ভাঙ্গা:

¹                Add arbitrary number 1 to the stack.
 Fᵢ{             Define for loop with a user's input amount of itterations.
    E            Define new edit for element 0 (element 0 being the 1 added. earlier).
     2x³⁺÷3x²⁻   update x to equal (2x^3+1)/(3x^2-1). (x = element 0).

কিভাবে এটা কাজ করে:

সূত্রটি (2x 3 +1) / (3x 2 -1) এক্স 3 = x + 1 সমতা জন্য নিউটনের পদ্ধতির সরলকরণ থেকে এসেছে । আপনি এটি এখানে খুঁজে পেতে পারেন । এই প্রক্রিয়াটির পুনরাবৃত্তি একটি অসীম পরিমাণ বার বার প্লাস্টিকের সংখ্যায় রূপান্তর করে। এর কনভার্জেন্সের হারটি পুনরাবৃত্তির জন্য প্রায় ২.6 দশমিক at এর চেয়ে দ্রুত।

INPUT ITERATION >> VALUE
0 >> 1
1 >> 1.5
2 >> 1.3478260869565217
3 >> 1.325200398950907
4 >> 1.3247181739990537
5 >> 1.3247179572447898
6 >> 1.324717957244746    <- 16 decimal precision in 6 iterations!
...
100 >> 1.324717957244746

পদোভান ক্রম বিকল্প, 27 25 17 বাইট

¹Fᵢ{[ƨ2+ƨ3]ℲƤƨ/ƨ2

ভাঙ্গা:

¹                  Append first element of Padovan sequence.
 Fᵢ{       Ⅎ       Define for loop of user's input amount of iterations.
    [ƨ2+ƨ3]        Append sum second and third to last elements.
            Ƥƨ/ƨ2  Print ratio of last two elements.

আরও ভাল মুদ্রণ কৌশল চয়ন করে বাইট

সূচক স্ট্যাকের আরও ভাল উপায় চয়ন করে -8 বাইট

কিভাবে এটা কাজ করে:

হিসাবে Padovan ক্রম অব্যাহত, গত দুই উপাদানের অনুপাত প্লাস্টিক নম্বরে মিলিত হয়।

INPUT ITERATION >> VALUE
0 >> 1
1 >> 2
...
10 >> 1.3157894736842106
...
89 >> 1.324717957244746    <- 16 decimal precision in 89 iterations
...
100> > 1.324717957244746

0

Clojure, 46 বাইট

#(nth(iterate(fn[i](Math/pow(inc i)(/ 3)))1)%)

পুনরুক্তি করা কিউব-মূল সূত্র ব্যবহার করে। এটি কিছুটা আকর্ষণীয় তবে দীর্ঘ:

(def f #(apply comp(repeat %(fn[i](Math/pow(inc i)(/ 3))))))

((f 10)1)
1.3247179361449652

"আপনি পারে ধরেই নিতে না যে আপনার ভাষায় ভাসমান-পয়েন্ট পাটিগণিতগুলি নির্বিচারে সঠিক, তবে অবশ্যই এর প্রকৃত যথার্থতাটি ব্যবহার করা উচিত (অর্থাত্ ভাসমান-পয়েন্ট সংখ্যার আউটপুট কেবল এমন ভাষায় সম্ভব হবে যেখানে ভাসমান-পয়েন্ট সংখ্যাগুলির যথার্থতা হতে পারে রানটাইমের সময় নিয়ন্ত্রিত থাকুন)
আন্ডারস ক্যাসরগ

ওহ আমি তা খেয়াল করিনি, কী বমর। এবং বিগডিসিমালের সাথে কিউবিক রুট বাস্তবায়ন করা বেশ জটিল বলে মনে হচ্ছে।
নিকোনিহার

0

জাভাস্ক্রিপ্ট, 36 বাইট

f=(x,n=x)=>n**3/x/x<n+x?f(x,++n):n/x

শীর্ষ অজগর উত্তর হিসাবে একই কাজ করে। কোনওটি console.logঅন্তর্ভুক্ত ছিল না কারণ আপনি f(x)কনসোলে চালালে এটি স্বয়ংক্রিয়ভাবে লগ হয়ে যায়।

f=(x,n=x)=>n**3/x/x<n+x?f(x,++n):n/x
console.log(f(300))


0

> <> , 38 + 3 = 41 বাইট

11\n;
?!\}2,:01{::::}**-+0(?$-{+{1-:}

প্রোগ্রাম শুরু হওয়ার সময় স্ট্যাকটিতে ইনপুট উপস্থিত থাকার প্রত্যাশা করে, তাই -vপতাকাটির জন্য +3 বাইট ।

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

কার্যকরভাবে আউটপুট মান সংকুচিত করতে একটি বাইনারি অনুসন্ধান সম্পাদন করে। বৃদ্ধি xবৃদ্ধি পুনরাবৃত্তিও সংখ্যা সঞ্চালন।

সম্পাদনা করুন: 1 বাইট, পূর্ববর্তী সংস্করণটি সংরক্ষণ করার জন্য রিফ্যাক্টর গণনা সামান্য:

11\n;
?!\}2,:0{::::}**$-1-0)?$-{+{1-:}


0

টিআই-বেসিক, 21 বাইট

:Prompt X //Prompt for input, 3 bytes
:While X  //While X, 3 bytes
:³√(1+Y→Y //Calculate cube root of 1+Y and store to Y, 7 bytes
:DS<(X,0  //Decrement X and skip next command (which doesn't do anything), 5 bytes
:End      //End While loop, 2 bytes
:Y        //Display Y, 1 byte

এই পুনরাবৃত্তির সূত্রটি ব্যবহার করে ।

মজার বিষয় হল, নম্বরটি হার্ড-কোডিং করা এবং এটির গোল করা একই বাইট-কাউন্ট দেয়:

টিআই-বেসিক, 21 বাইট

:Prompt X    //Prompt for input, 3 bytes
:.5√(3       //Store √(3)/2 to Ans, 5 bytes
:Ansֿ¹cosh(3ֿ¹coshֿ¹(3Ans //Store the plastic number to Ans, 9 bytes
:round(Ans,X //Round the plastic number X decimal digits, 4 bytes

এই ত্রিকোণমিতিক সূত্র ব্যবহার করে ।


আমি মনে করি না আপনি এখানে টিআই-বেসিকের ফ্লোট ব্যবহার করতে পারবেন:Your answer must work in a hypothetical variant of your language in which integers can be arbitrarily large, and memory (including stack) is unlimited. You may not assume that floating-point arithmetic in your language is arbitrarily accurate, but must instead use its actual accuracy (meaning that outputting a floating-point number is only going to be possible in languages where the accuracy of floating-point numbers can be controlled at runtime).
লিটারোসিয়াসট

0

সি # , 317 বাইট

using m=System.Math;a=x=>{if(a==0)return "1/1";var d=a(x-1).Split('/');var b=int.Parse(d[0]);var c=int.Parse(d[1]);return string.Format("{0}/{1}",(2*m.Pow(b,3)+m.Pow(c,3)).ToString(new string('#',int.MaxValue.ToString().Length)),(3*m.Pow(b,2)*c-m.Pow(c,3)).ToString(new string('#',int.MaxValue.ToString().Length)));};

এটি ভগ্নাংশ হিসাবে ফলাফল প্রদান করে।

ব্যাখ্যা

এটি বহুতল p ^ 3-p-1 = 0 এর মূল অনুসন্ধানের জন্য এক্স পুনরাবৃত্তির সাথে নিউটনের পদ্ধতিটি ব্যবহার করে। সূত্রটি হল x_n = 1- (f (x_ (n-1))) / (f '(x_ (n-1))), এবং x_0 একটি সূচনা পয়েন্ট।

বহুভুজ ডেরিভেটিভ 3p ^ 2-1, এবং এর x_ (n-1) = খ / সি বলা যাক। তারপরে, আমরা পেয়েছি উপরের সূত্রটি ব্যবহার করে, সেই x_n = (2 বি ^ 3 + সি ^ 3) / (3 বি ^ 2 সিসি ^ 3)। আসুন আমরা এটাও বলি যে, আমরা 1 থেকে শুরু করি, এটি ঘটবে, যখন x = 2, কারণ x> 1, এবং এটি একটি পূর্ণসংখ্যা। পোড়া এবং মন্তব্য কোড:

using System;
string PlasticNumber(int x)
{
    if (x == 2) 
        return "1/1";                 

//If x=2, we return our starting value, but we need to return it as a fraction

    var d = PlasticNumber(x - 1).Split('/');
    var b = System.Convert.ToInt32(d[0]);
    var c = int.Parse(d[1]);

//We parse the previous value of the fraction, and put it into two variables

    return string.Format("{0}/{1}", 
        (2 * Math.Pow(b, 3) + Math.Pow(c, 3))
        .ToString(new string('#', int.MaxValue.ToString().Length)),
        (3 * Math.Pow(b, 2) * c - Math.Pow(c, 3))
        .ToString(new string('#', int.MaxValue.ToString().Length)));

//We return the result as a fraction, but it's important not to return it in
  scientific notation, because that will cause issues in the parsing process 

}


0

অ্যাক্সিয়োম, 96 বাইট

h(n:NNI):Float==(n>1.E5=>-1;n:=n+1;j:=digits(n::PI);r:=solve(x^3-x=1,10.^-n);digits(j);rhs(r.1))

ফলাফল

(31) -> [h(i) for i in 0..10]
   (31)
   [1.0, 1.3, 1.33, 1.325, 1.3247, 1.32472, 1.324718, 1.324718, 1.32471796,
    1.324717957, 1.3247179572]
                                                         Type: List Float

আপনি কীভাবে h (2) দেখতে পারবেন তা 1.32 হওয়া উচিত এবং 1.33 নয় তাই শেষ সংখ্যাগুলিতে কিছু ত্রুটি রয়েছে

তারপরে এটি 110 বাইটের মধ্যে একটি হবে

g(n:NNI):Float==(n>1.E5=>-1;n:=n+1;j:=digits(n::PI);x:=sqrt(23./108);r:=(.5+x)^(1/3)+(.5-x)^(1/3);digits(j);r)

এটি x ^ 3-3 * পি * x-2 * কিউ = 0 প্রকারের তৃতীয় গ্রেডের সমাধান সমীকরণের সূত্রটি ব্যবহার করে Q q 2-p ^ 3> = 0 যা এম = স্কয়ার্ট (q ^ 2- পি ^ 3) এবং x = (কিউ + মিটার) ^ (1/3) + (কিউএম) ^ (1/3)

আমাদের ক্ষেত্রে r ^ 3-r-1 = 0 এ r ^ 3-3 * (1/3) আর -2 * (1/2) = 0 হিসাবে লেখা যেতে পারে তাই পি = 1/3 কিউ = 1/2 মি = 1 / 4-1 / 27 = 23/108 x = (0.5 + মি) ^ (1/3) + (0.5-মি) ^ (1/3)

এইটি যা নিউটোন পুনরাবৃত্তিটি আরম্ভ পয়েন্ট r = 1 সহ ব্যবহার করে

f(n:NNI):Float==(n>1.E5=>-1;n:=n+1;j:=digits(n::PI);e:=10^-n;r:=1.;repeat(v:=(r^3-r-1)/(3*r^2-1);abs(v)<e=>break;r:=r-v);digits(j);r)

এটি ফাংশনে পরিবর্তিত হয়, ভাসমান পয়েন্টের পরে n + 1 ডিজিটের একটি উদ্দেশ্য অর্জনের জন্য ডিজিটের মান। শেষে অঙ্কগুলি () মানটি পূর্বনির্ধারিত মানকে বরাদ্দ করা হয়।


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