আমি কি একজন ফিবোনাচি নম্বর?


49

তোমার কাজ:

ইনপুট করা একটি নম্বর একটি ফাইওনাচি নম্বর কিনা তা পরীক্ষা করতে একটি প্রোগ্রাম বা ফাংশন লিখুন একটি ফিবোনাচি নম্বর হ'ল একটি নম্বর যা ফিবোনাচি অনুক্রমের মধ্যে থাকে।

ফিবোনাচি সিকোয়েন্সটি নিম্নলিখিত হিসাবে সংজ্ঞায়িত করা হয়: F(n) = F(n - 1) + F(n - 2)

বীজ থাকার সাথে F(0) = 0এবং F(1) = 1

ইনপুট:

0 এবং 1,000,000,000 এর মধ্যে একটি অ-নেতিবাচক পূর্ণসংখ্যা যা ফিবোনাকির সংখ্যা হতে পারে বা নাও হতে পারে।

আউটপুট:

ইনপুটটি ফিবোনাচি নম্বর কিনা তা নির্দেশ করে একটি সত্যবাদী / মিথ্যা মান।

উদাহরণ:

0-->truthy
1-->truthy
2-->truthy
12-->falsy

স্কোরের:

এটি , সর্বনিম্ন বাইট গণনা জয়।


2
আমি যে প্রোগ্রামিং ল্যাঙ্গুয়েজটি ব্যবহার করছি তা কেবল 9999 পর্যন্ত সংখ্যাগুলি সমর্থন করে (জ্যামিতি ড্যাশ)। আমি যদি ধরে নিই যে এটি তাত্ত্বিকভাবে 1000000 পর্যন্ত সমর্থন সংখ্যাগুলি করে?
মিল্কিওয়ে 90

উত্তর:


36

নিম , 2 বাইট

f𝕚

ব্যাখ্যা:

f       Push an infinite fibonacci list
 𝕚      Is the input in that list?

স্কয়ারের উত্তর হতে আমার এটি হিপের মতোই কাজ করে তবে fফাইবোনাকির জন্য একটি ভিন্ন অসীম তালিকা ব্যবহার করে:

চেষ্টা করে দেখুন!


1
কি দারুন! চিত্তাকর্ষক স্কোর।
গ্রিফন - মনিকা

2
এটি দুর্দান্ত, তবে 2 বাইট নয়। ইউটিএফ -8 এ এটি "66
এফ 0

10
@ sm4rk0 এটি দুর্দান্ত, তবে আপনি ভুল। নিম একটি কাস্টম কোডপেজ ব্যবহার করে , তাই এটির বাইট উপস্থাপনাটি হ'ল66 D5
Okx

ইনপুট তালিকায় না থাকলে এই লুপটি কি চিরতরে চলে না? যদি তাই হয়, যে মিথ্যা হিসাবে গণনা?
এনরিকো বোরবা

@ এন্টারিকো বোর্বা নিম জানে যে এই অসীম তালিকার নবম উপাদানটি সর্বদা তালিকার এন +1 তম উপাদানের সমান বা তার চেয়ে কম হবে। অতএব, এটি নিজেকে ধরে ফেলতে পারে এবং এটি চিরকাল চলবে না। আপনি কি প্রোগ্রামটি চেষ্টা করে দেখেছেন? : পি
Okx

18

জাভাস্ক্রিপ্ট (ES6), 34 বাইট

f=(n,x=0,y=1)=>x<n?f(n,y,x+y):x==n

ইনপুট এর চেয়ে বড় বা সমান কোনও আইটেম না পাওয়া পর্যন্ত পুনরাবৃত্তভাবে ফিবোনাচি ক্রম উত্পন্ন করে, তারপরে আইটেম == ইনপুট ফেরত দেয়।


এনবি: ফিবোনাচি অনুক্রমের নিষ্পাপ পুনরাবৃত্ত গণনা হ'ল ও (ফাইব (এন)) - আনুমানিক ও (1.6 ^ n)
অল

f = n => n? n> 2? f (n-1) + f (n-2): 1: 0 28 বাইটস
জ্যাককাভ

@jackkav ধন্যবাদ, কিন্তু চ্যালেঞ্জ যদি ইনপুট নির্ধারণ করা হয় হয় একটি ফিবানচি সংখ্যা।
ইটিএইচ প্রডাকশনগুলি

12

রেটিনা , 23 বাইট

^$|^(^1|(?>\2?)(\1))*1$

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

আনরি, ইনপুট 0বা ইনপুট 1

ব্যাখ্যা

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

যেহেতু আমরা শেষের সাথে দ্বিতীয় থেকে শেষ উপাদান যুক্ত করে ফিবোনাচি সংখ্যাগুলি পাই, তাই তাদের মধ্যে পার্থক্যগুলিও কেবল ফিবোনাচি সংখ্যা। সুতরাং আমাদের প্রতিটি বিভাগকে আগের দুটির যোগফল হিসাবে মেলাতে হবে। রেজেক্সের মূলটি হ'ল:

(         # This is group 1 which is repeated 0 or more times. On each
          # iteration it matches one Fibonacci number.
  ^1      # On the first iteration, we simply match 1 as the base case.
|         # Afterwards, the ^ can no longer match so the second alternative
          # is used.
  (?>\2?) # If possible, match group 2. This ends up being the Fibonacci
          # number before the last. The reason we need to make this optional
          # is that this group isn't defined yet on the second iteration.
          # The reason we wrap it in an atomic group is to prevent backtracking:
          # if group 2 exists, we *have* to include it in the match, otherwise
          # we would allow smaller increments.
  (\1)    # Finally, match the previous Fibonacci number and store it in
          # group 2 so that it becomes the second-to-last Fibonacci number
          # in the next iteration.
)*

এখন এটি 1 , অর্থাৎ 1, 1, 2, 3, 5, ... থেকে শুরু হওয়া ফিবোনাচি সংখ্যা যুক্ত করে শেষ করবে । যারা 1, 2, 4, 7, 12, ... পর্যন্ত যোগ করে । অর্থাৎ এগুলি ফিবোনাচি সংখ্যার চেয়ে কম, সুতরাং আমরা 1শেষে একটি যুক্ত করব । কেবল এটিই শূন্য নয়, তাই ^$এটি শুরু করার জন্য আমাদের কাছে বিকল্প রয়েছে have


2
খুবই ভদ্র! আমি কেবলমাত্র সম্পূর্ণতার জন্য এটি উল্লেখ করতে চাই, একটি পিসিআরইতে এটি একটি প্রাইভেট কোয়ান্টিফায়ার ব্যবহার করে কমিয়ে 20 বাইট করা যেতে পারে:^$|^(^1|\2?+(\1))*1$
ডেইডকোড

1
@ ডেডকোড আমি এগুলি অনেকটাই মিস করি না। নেট;)
মার্টিন এন্ডার

অপ্রয়োজনীয় দ্বিতীয়টি সরিয়ে 1 বাইট সংরক্ষণ করুন ^
নিল

12

রেজেক্স (ইসিএমএসক্রিপ্টের স্বাদ), 392 358 328 224 206 165 বাইট

ECMAScript রেজেক্সের সাথে (আনারিতে) ফিবোনাচি সংখ্যার সাথে ম্যাচ করার জন্য যে কৌশলগুলি খেলতে আসা দরকার তা হ'ল এটি অন্যান্য রেইগেক্স স্বাদে কীভাবে সেরা হয়েছিল তা থেকে অনেক দূরে হাহাকার। ফরোয়ার্ড / নেস্টেড ব্যাকরিফারেন্স বা পুনরাবৃত্তিগুলির অভাবের অর্থ হ'ল সরাসরি কিছু গণনা করা বা চালিয়ে যাওয়া মোটামুটি অসম্ভব। চেহারা পিছনের অভাব এমনকি প্রায়শই এটির পক্ষে কাজ করার পক্ষে পর্যাপ্ত জায়গা থাকাও একটি চ্যালেঞ্জ হয়ে দাঁড়ায়।

অনেকগুলি সমস্যার সম্পূর্ণ ভিন্ন দৃষ্টিকোণ থেকে যোগাযোগ করা উচিত এবং কিছু মূল অন্তর্দৃষ্টি না পৌঁছানো অবধি অবিশ্বাস্য বলে মনে হয়। আপনি যে সংখ্যাগুলির সাথে কাজ করছেন তার গাণিতিক বৈশিষ্ট্যগুলি কোনও নির্দিষ্ট সমস্যার সমাধানযোগ্য করতে সক্ষম হতে পারে তা সন্ধান করতে এটি আপনাকে আরও বিস্তৃত জাল ফেলতে বাধ্য করে।

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

তুমি পাগল! ... আমি ভেবেছিলাম আপনি এটি করতে পারেন।

আমার অন্যান্য ইসমাস্ক্রিপ্ট অ্যানারি গণিতের রেজেক্সেক্স পোস্টগুলির মতো, আমি একটি সতর্কতা দেব : ECMAScript রেজেজেমে অ্যানারি গাণিতিক সমস্যাগুলি কীভাবে সমাধান করবেন তা শিখার আমি সুপারিশ করছি। এটি আমার কাছে একটি আকর্ষণীয় ভ্রমণ ছিল এবং আমি যে কারও জন্য সম্ভবত এটি চেষ্টা করতে চাইতে পারি তার পক্ষে এটি লুণ্ঠন করতে চাই না, বিশেষত যারা সংখ্যা তত্ত্বের প্রতি আগ্রহী তাদের জন্য। একের পর এক সমাধানের জন্য ক্রমাগত স্পয়লার-ট্যাগযুক্ত প্রস্তাবিত সমস্যার তালিকার জন্য সেই পোস্টটি দেখুন

সুতরাং আপনি আর কিছু পড়বেন না যদি আপনি কিছু ইউনারী রেজেক্স যাদু আপনার জন্য নষ্ট করে না চান । আপনি যদি এই যাদুটি নিজেই বের করে আনতে চান তবে উপরের লিঙ্কযুক্ত পোস্টটিতে বর্ণিত ECMAScript রেজেক্সে কিছু সমস্যা সমাধানের মাধ্যমে আমি সুপারিশ করব।

আমি প্রথমে যে চ্যালেঞ্জটি মুখোমুখি হয়েছিলাম: ইতিবাচক পূর্ণসংখ্যার x হ'ল একটি ফিবোনাচি নম্বর এবং যদি কেবল 5x 2 হয় + 4 এবং / অথবা 5x 2 - 4 একটি নিখুঁত বর্গ হয়। তবে একটি রেজেজেমে এটি গণনা করার কোনও জায়গা নেই। আমাদের কেবলমাত্র কাজ করতে হবে সেই সংখ্যাটি। আমাদের কাছে 5 টি গুণ করে বা বর্গক্ষেত্র নেওয়ার জন্য পর্যাপ্ত জায়গাও নেই, উভয়কেই ছেড়ে দিন।

এটি কীভাবে সমাধান করা যায় সে সম্পর্কে টিউকনের ধারণা ( মূলত এখানে পোস্ট করা ):

রেজেক্স ফর্মের একটি স্ট্রিং সহ উপস্থাপিত হয় ^x*$ , z এর দৈর্ঘ্য হোক। জেডটি হাতে হাতে প্রথম কয়েকটি ফিবোনাচি সংখ্যার মধ্যে একটি কিনা তা পরীক্ষা করুন (21 পর্যন্ত করা উচিত)। যদি তা না হয়:

  1. কয়েকটি সংখ্যা পড়ুন, একটি <বি, যেমন খ 2 এ এর ​​চেয়ে বড় নয়।
  2. 2 , আব, এবং খ তৈরি করতে এগিয়ে চেহারা দেখুন Use 2
  3. 5A 2 + 4 বা 5a 2 - 4 হয় নিখুঁত বর্গক্ষেত্র হিসাবে জোড় করে (সুতরাং একটি অবশ্যই F n-1 হওয়া আবশ্যক কোনও n এর জন্য ) sert
  4. 5b 2 + 4 বা 5b 2 + 4 হয় একটি নিখুঁত বর্গক্ষেত্র হিসাবে জোড় করে (সুতরাং খ অবশ্যই F n হওয়া উচিত )।
  5. পূর্ববর্তী নির্মিত একটি 2 , আব এবং বি 2 ব্যবহার করে z = F 2n + 3 বা z = F 2n + 4 পরীক্ষা করুন এবং পরিচয় :
    • এফ 2 এন-1 = এফ এন 2 + এফ এন -1 2
    • এফ 2 এন = ( 2 এফ এন -1 + এফ এন ) এফ এন
সংক্ষেপে: এই পরিচয়পত্রগুলি আমাদের প্রদত্ত নম্বরটি ফিবোনাচি যাচাই করতে সমস্যাটি কমিয়ে আনতে দেয় যা অনেক কম সংখ্যার সংখ্যক জোড়া ফিবোনাচি কিনা তা পরীক্ষা করে । সামান্য বীজগণিত দেখায় যে বড় পরিমাণে এন (এন = 3 করা উচিত), এফ 2 এন + 3 > এফ এন + 5 এফ এন 2 + 4 যাতে সর্বদা পর্যাপ্ত স্থান থাকা উচিত।

এবং এখানে সি তে থাকা অ্যালগরিদমের একটি মকআপ যা আমি রেগেজেমে প্রয়োগ করার আগে একটি পরীক্ষা হিসাবে লিখেছিলাম।

সুতরাং আর কোনও অ্যাডো না দিয়ে, এখানে রেইজেক্সটি রয়েছে:

^((?=(x*).*(?=x{4}(x{5}(\2{5}))(?=\3*$)\4+$)(|x{4})(?=xx(x*)(\6x?))\5(x(x*))(?=(\8*)\9+$)(?=\8*$\10)\8*(?=(x\2\9+$))(x*)\12)\7\11(\6\11|\12)|x{0,3}|x{5}|x{8}|x{21})$

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

এবং সুন্দর-মুদ্রিত, মন্তব্য করা সংস্করণ:

^(
  (?=
    (x*)                   # \2+1 = potential number for which 5*(\2+1)^2 ± 4
                           # is a perfect square; this is true iff \2+1 is a Fibonacci
                           # number. Outside the surrounding lookahead block, \2+1 is
                           # guaranteed to be the largest number for which this is true
                           # such that \2 + 5*(\2+1)^2 + 4 fits into the main number.
    .*
    (?=                    # tail = (\2+1) * (\2+1) * 5 + 4
      x{4}
      (                    # \3 = (\2+1) * 5
        x{5}
        (\2{5})            # \4 = \2 * 5
      )
      (?=\3*$)
      \4+$
    )
    (|x{4})                # \5 = parity - determined by whether the index of Fibonacci
                           #               number \2+1 is odd or even
    (?=xx (x*)(\6 x?))     # \6 = arithmetic mean of (\2+1) * (\2+1) * 5 and \8 * \8,
                           #      divided by 2
                           # \7 = the other half, including remainder
    \5
    # require that the current tail is a perfect square
    (x(x*))                # \8 = potential square root, which will be the square root
                           #      outside the surrounding lookahead; \9 = \8-1
    (?=(\8*)\9+$)          # \10 = must be zero for \8 to be a valid square root
    (?=\8*$\10)
    \8*
    (?=(x\2\9+$))          # \11 = result of multiplying \8 * (\2+1), where \8 is larger
    (x*)\12                # \12 = \11 / 2; the remainder will always be the same as it
                           #       is in \7, because \8 is odd iff \2+1 is odd
  )
  \7\11
  (
    \6\11
  |
    \12
  )
|
  x{0,3}|x{5}|x{8}|x{21}   # The Fibonacci numbers 0, 1, 2, 3, 5, 8, 21 cannot be handled
                           # by our main algorithm, so match them here; note, as it so
                           # happens the main algorithm does match 13, so that doesn't
                           # need to be handled here.
)$

সেই মন্তব্যে গুণনের অ্যালগরিদম ব্যাখ্যা করা হয়নি, তবে আমার প্রচুর সংখ্যক রেজেক্স পোস্টের অনুচ্ছেদে সংক্ষেপে ব্যাখ্যা করা হয়েছে ।

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

"ফিবাওনাচি সূচক বিয়োগ 1 টি ম্যাচ হিসাবে ফিরিয়ে দিন" সংস্করণ (ভারীভাবে গল্ফ করা হয়নি):

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

গল্ফ অপ্টিমাইজেশনের সম্পূর্ণ প্রতিশ্রুতিবদ্ধ ইতিহাস সহ সমস্ত সংস্করণ গিথুবে রয়েছে:

ফিবোনাচি সংখ্যার সাথে মিলে যাওয়ার জন্য রেজেক্স - সংক্ষিপ্ত, গতি 0.txt (এই পোস্টে যেমন সংক্ষিপ্ত তবে সবচেয়ে ধীরতম)
ফিবোনাচি সংখ্যার সাথে মিলের জন্য সংক্ষিপ্ত, গতি 1.txt
রেজেক্স - সংক্ষিপ্ত, গতি 2.txt
রেজেক্স ফিবোনাচি সংখ্যার সাথে মিলে যায় - সংক্ষিপ্ত, গতি 3.
ফিবোনাচি সংখ্যার সাথে মিলের জন্য টেক্সট রেজেেক্স - ফিবোনাচি সংখ্যার সাথে মিলে যাওয়ার
জন্য দ্রুততম। টেক্সট রেজিএক্স - রিটার্ন ইনডেক্স। টেক্সট


9

পাইথন 3 , 48 বাইট

lambda n:0in((5*n*n+4)**.5%1,abs(5*n*n-4)**.5%1)

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


1
পাইথন হওয়ার কারণে কি এলোমেলোভাবে বড় ইনপুটগুলির জন্য পর্যাপ্ত সংস্থান দেওয়া উচিত নয়?
জোনাথন অ্যালান

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

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

@ জোনাথন অ্যালান যেহেতু হ্যান্ডেল করার সর্বাধিক মান 1e9, তাই আমি মনে করি না যে নির্বিচারে বড় ইনপুট একটি সমস্যা হবে।
জেএডি

1
@ জারকো ডাবডেলডাম হ্যাঁ, আমার মন্তব্য করার পরে সেই বিবরণটি আসলে পরিবর্তন করা হয়েছিল।
জোনাথন অ্যালান

7

পাইথন 2, 48 44 বাইট

f=lambda n,a=0,b=1:n>a and f(n,b,a+b)or n==a

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

4 বাইট বাঁচানোর জন্য জোনাথন অ্যালানকে ধন্যবাদ


এটি 47 টি বাইট হতে পারে, যদি সত্যবাদী মানগুলি Falseএবং মিথ্যা মানগুলি হতে পারে True: টিআইও!
মিঃ এক্সকোডার

আপনার রিটার্ন মান হিসাবে -1 এবং 0 এর n-aজায়গায় ব্যবহার করতে পারে n==a
ম্যাজিক অক্টোপাস উরন

@ কারাসোকম্পুটিং আমার সম্পাদনার ইতিহাসে আমার এটি ছিল তবে এটি কার্যকর হয় না, কারণ বড় পরীক্ষার মানগুলির জন্য আপনার -101পরিবর্তে বা অন্য কোনও ফলাফল হতে পারে -1
mbomb007

@ মিঃ এক্সকোডার আপনি কি সত্যিই ভাবেন যে 1 বাইট সংরক্ষণ প্রত্যেকের সন্তুষ্টির পক্ষে মূল্যবান?
ফ্রেরুগি Jun87

1
@ ফ্রেড়গি 8787 একটি বাইট সংরক্ষণ করা সর্বদা মূল্যবান
মিঃ এক্সকডার

7

05 এ বি 1 ই , 8 7 বাইট

>ÅF¹å¹m

ব্যাখ্যা:

>ÅF       # Generate Fibbonacci numbers up to n+1
   ¹å     # 0 if original isn't in the list, 1 if it is
     ¹m   # 0**0 = 1 if input was 0 (hotfix for 0).
          # or 0**n if not fibb / 1**n if it is a fibb.

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

-1 0-না-এ-ফাইবুনাচি-নম্বর কাজের জন্য জোনাথন অ্যালানকে ধন্যবাদ।


আসলে, 6 বাইট আপডেট করা হবে না। বিশ্বাস করতে পারছেন না 3 বাইটের নিচে কোনও তালিকায় 0 যুক্ত করার উপায় নেই।
ম্যাজিক অক্টোপাস আরন

@ জোনাথন অ্যালান "এএফএফোনাকির ফাংশন জেনারেট করুন 05 এ বি 1 এ 0 নেই"
ম্যাজিক অক্টোপাস উরন

@ জোনাথন অ্যালান আমি এখন বুঝতে পারছি, দুর্দান্ত ধারণা। সেখানে কী ঘটছে তা নির্ধারণ করার জন্য আমাকে এক মিনিট সময় নিয়েছে।
ম্যাজিক অক্টোপাস উরন

অন্তর্নিহিত nহিসাবে (বাইট সংরক্ষণ করা) পর্যন্ত উত্পন্ন করা কি যথেষ্ট নয় ÅFএবং ¹åএর 0উভয় পথেই ফলস্বরূপ হবে n=0?
এমিগানা

0 এএফ = []। 1 এএফ = [1,1] তাই দৃশ্যত না।
যাদু অক্টোপাস উরন


5

সিরিয়াসলি , 3 বাইট

,fu

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

সত্যবাদী হলে ফিবোনাচি সংখ্যার তালিকায় সূচক +1 প্রদান করে, অন্যথায় মিথ্যা ফিরিয়ে দেয়।

ব্যাখ্যা:

,fu
,   read input
 f  0-indexed index of that number in the fibonacci sequence (-1 if not in the sequence)
  u increment. (Makes the -1 value falsy and the 0-value truthy)

9
গুরুতরভাবে অভদ্র ^^
জোনাথন অ্যালান

5

জেলি ,  8 7  6 বাইট

-r‘ÆḞċ

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

কিভাবে?

-r‘ÆḞċ - Link: non negative number, n
-      - literal -1      = -1
 r     - inclusive range = [-1,0,1,2,3,4,5,...,n]
  ‘    - increment n     = [ 0,1,2,3,4,5,6,...,n+1]
   ÆḞ  - Fibonacci       = [ 0,1,1,2,3,5,8,...,fib(n+1)]
     ċ - count occurrences of n (1 if n is a Fibonacci number, 0 otherwise)

নোট:

  • বর্ধন, প্রয়োজন, সুতরাং এটি 2 এবং 3 এর জন্য কাজ করে , যেহেতু তারা 3 য় এবং 4 র্থ ফিবোনাচি সংখ্যা - 3 এর বাইরে সমস্ত ফিবোনাচি সংখ্যা তাদের সূচকের চেয়ে বেশি।
  • -প্রয়োজন হয় (বরং তুলনায় ‘R) আজকের জন্য কাজ করে 0 থেকে 0 হয় 0 তম ফিবানচি সংখ্যা;

উম্ম, এটি আমার উত্তরটির মতো দেখতে অনেকটা ...
এরিক দি আউটগল্ফার

ওহ, আমি আমার জন্য আপনাকে গল্ফ দিয়েছি, আমার জন্য কাজ ছাড়া 3:)
জনাথন অ্যালান

ওফফফফফফ ... ফিবোনাচি অদ্ভুত। (বিটিডব্লিউ আমার উত্তরটি মুছে
ফেলেছে

আপনি কি শেষ নোট সম্পর্কে নিশ্চিত? আমি 0, 0 থেকে শুরু করে একটি তালিকায় ফিবোনাকির পরমাণুটি চালিত হলে আউটপুট অন্তর্ভুক্ত করা হয়।
ছড়িয়ে ছিটিয়ে

1
এটি চ্যালেঞ্জের শব্দের উপর ভিত্তি করে প্রাসঙ্গিক বলে মনে হয় না, তবে আপনি ফিওনাচি সংখ্যাগুলির তালিকায় আপনার যুক্তি হিসাবে 1 দিয়ে গণনা পরমাণুটি ব্যবহার করেন তবে ফলাফলটি 2 (1 নয়)।
FryAmTheEggman

5

জেডএক্স 81 বেসিক 180 151 100 ~ 94 টোকেনাইজড বেসিক বাইট

সিনগ্লায়ারডএক্সএক্সএক্স ওয়ার্ল্ড ফোরামে মোগির ধন্যবাদ সহ, এখানে একটি আরও সুন্দর সমাধান রয়েছে যা আরও বাইট সংরক্ষণ করে।

 1 INPUT I
 2 FOR F=NOT PI TO VAL "1E9"
 3 LET R=INT (VAL ".5"+(((SQR VAL "5"+SGN PI)/VAL "2")**I)/SQR VAL "5")
 4 IF R>=I THEN PRINT F=R
 5 IF R<I THEN NEXT F

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

 1 INPUT A$
 2 LET A=SGN PI
 3 LET B=A
 4 LET F=VAL A$
 5 IF F>SGN PI THEN FOR I=NOT PI TO VAL "1E9"
 6 LET C=A+B
 7 LET A=B
 8 LET B=C
 9 IF B>=F THEN GOTO CODE "£"
10 IF F THEN NEXT I
12 PRINT STR$(SGN PI*(B=F OR F<=SGN PI)) AND F>=NOT PI;"0" AND F<NOT PI

উপরোক্ত সংশোধনীগুলি 12 টি লাইনে IFএকক বিবৃতিগুলিকে ঘনীভূত করতে আরও বেসিক বাইটস সংরক্ষণ করে PRINT; অন্যান্য বাইট ব্যবহার করে সংরক্ষণ করা হয়েছিলVAL কীওয়ার্ড এবংGOTO CODE "£" , যা জেডএক্স ৮১ অক্ষরের সেটটিতে ১২ টি রয়েছে এবং স্ট্রিংগুলি সংখ্যাগুলির চেয়ে বেশি বাইট সংরক্ষণ করে কারণ সমস্ত সংখ্যাসূচক মানগুলি ভাসমান হিসাবে সংরক্ষণ করা হয় তাই VAR স্ট্যাকের উপর আরও স্থান নিন।

এখানে চিত্র বর্ণনা লিখুন


আসলে, আমি সম্পূর্ণ 6 টি লাইনটি সরিয়ে এবং 5 থেকে লাইন পরিবর্তন করে আরও 6 টোকেনাইজড বেসিক বাইট সংরক্ষণ করতে পারি 5 IF R<F THEN NEXT I- আমার খারাপ!
শন বেবারস

4

সি #, 109 বাইট

bool f(int n){int[]i=new[]{0,1,0};while(i[0]<n||i[1]<n){i[i[2]%2]=i[0]+i[1];i[2]++;}return n==i[0]||n==i[1];}

অবশ্যই উন্নত করা যেতে পারে, তবে আমার হাতে সময় ছিল না।


পিপিসিজিতে আপনাকে স্বাগতম!
মার্টিন ইন্ডার

1
আমি নিজের উত্তরটি কেবল এটি বুঝতে পেরেছিলাম যে এটি আপনার মতই ছিল। এটি পেতে আপনি ল্যাম্বদা এক্সপ্রেশন এবং সাধারণ ভেরিয়েবলগুলি ব্যবহার করতে পারেন: n=>{int a=0,b=1,c=0;while(a<n&b<n)if(++c%2>0)a=a+b;else b=a+b;return a==n|b==n;}(মাত্র 80 বাইট)। এটি অনলাইন চেষ্টা করুন!
চার্লি

1
@ কার্লোস আলেজো এর a+=bপরিবর্তে a=a+bএবং b+=aপরিবর্তে আরও দুটি বাইট সংরক্ষণ করুন b=a+b
TheLethalCoder

4

> <> , 21 19 + 3 = 24 22 বাইট

i1\{=n;
?!\:@+:{:}(

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

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

এটি ইনপুট সংখ্যার চেয়ে বড় বা সমান না হওয়া পর্যন্ত ফিবোনাচি সংখ্যা উত্পন্ন করে কাজ করে, তারপরে ইনপুটটির সাথে সাম্যের জন্য শেষ উত্পন্ন সংখ্যাটি পরীক্ষা করে। আউটপুটগুলি 1যদি এটি ফিবোনাকির নম্বর হয়,0 অন্যথায়।

0এটি সঠিকভাবে পরিচালিত হয়েছে তা নিশ্চিত করতে , বীজটি হল -1 1- উত্পন্ন প্রথম সংখ্যাটি 0তার চেয়ে বেশি হবে 1

STDIN খালি থাকাকালীন স্ট্যাকটি iধাক্কা দিতে ব্যবহার করা যেতে পারে বলে নির্দেশ করার জন্য @ কোলকে ধন্যবাদ জানাই -1। খুব চালাক!

পূর্ববর্তী সংস্করণ:

01-1\{=n;
}(?!\:@+:{:

এখন আমি বয়সের অপচয় করার জন্য বোকা বোধ করছি অবিচ্ছিন্নভাবে প্রতিটি উত্পন্ন নম্বরটি পরীক্ষা করে দেখছি। সুন্দরভাবে সম্পন্ন!
Emigna

1
iপরিবর্তে 22 বাইট ব্যবহার 01-
কোলে

অবশ্যই @cole ব্যবহার iযেমন -1আছে যখন stdin কোন ইনপুট, আমি যে বিবেচনা করা চাই। সুন্দরভাবে সম্পন্ন!
সোক

3

গণিত, 37 বাইট

!Fibonacci@n~Table~{n,0,#+1}~FreeQ~#&

@ এনজেনিসিস থেকে -4 বাইট


Fibonacci[0]দেয় 0, তাই আপনি সংরক্ষণ করতে পারবেন 4অন্তর্ভুক্ত করে বাইট 0মধ্যে Tableপরিসীমা। আপনি ইনফিক্স স্বরলিপি ব্যবহার করে অন্য একটি বাইট সংরক্ষণ করতে পারেন Table:!Fibonacci@n~Table~{n,0,#+1}~FreeQ~#&
নেজেনিসিস

3

এমএটিএল (16 বাইট)

2^5*4-t8+hX^tk=s

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

গল্ফিয়াস্ট সমাধান নয়, তবে "5 * x ^ 2 +/- 4" নিখুঁত বর্গক্ষেত্র কিনা তা যাচাইয়ের সরাসরি পদ্ধতিটি ব্যবহার করতে চেয়েছিলেন ।

ব্যাখ্যা:

2^5*    % 5 times the input squared
4-      % push the above minus 4
t8+     % push the above plus 8 (+4 overall)
hX^     % concatenate them into an array and then take the sqrt().
tk      % push a copy of the array that is rounded using floor().
=       % test if the sqrt's were already integers
s       % sum the results, returns 0 if neither was a perfect square.

বিঃদ্রঃ:

"0" ক্ষেত্রে এটি "2" ফেরায় কারণ 4 এবং -4 উভয়ই নিখুঁত স্কোয়ার, 1 এর সাথে সমান যা "1 1" উত্পাদন করে। কোনও শূন্য-আউটপুটকে "সত্যবাদী" এবং 0 কে "মিথ্যা" হিসাবে বিবেচনা করুন।



3

পিএইচপি , 44 বাইট

for(;0>$s=$x-$argn;)$x=+$y+$y=$x?:1;echo!$s;

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

পিএইচপি , 58 বাইট

for($x=0,$y=1;$x<$argn;$x=$y,$y=$t)$t=$x+$y;echo$x==$argn;

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


2
আরো Golfed: for(;0>$s=$x-$argn;)$x=+$y+$y=$x?:1;echo!$s;
ব্যবহারকারী 63956

@ ব্যবহারকারী 95 95 95 6 vari চেইন ভেরিয়েবল অ্যাসাইনমেন্ট সহ শেখার প্রচেষ্টার জন্য আপনাকে ধন্যবাদ
জার্গ হালসারম্যান

3

জাভা, 72 69 68 63 59 55 50 49 বাইট

n->{int a=0,b=1;for(;a<n;a=b-a)b+=a;return a==n;}

নিজেই পরীক্ষা করে দেখুন!

বিকল্প (এখনও 49 বাইট)

n->{int a=0,b=1;for(;a<n;b=a+(a=b));return a==n;}

খুব আসল নয়: এটি সাধারণ এবং মৌলিক পুনরাবৃত্তি সংস্করণ।

এটি অন্তর্ভুক্ত 1,836,311,903 (47 তম ফিবোনাচি নম্বর) পর্যন্ত সংখ্যার জন্য কাজ করে। তার উপরে, ফলাফলটি অনির্ধারিত (সম্ভাব্য অসীম লুপ সহ)।

গল্ফিংয়ে সহায়তার জন্য কেভিন ক্রুইজসেন এবং ডেভিড কনরাডকে ধন্যবাদ :)


1
চমৎকার পন্থা। BTW, আপনি গলফ পরিবর্তন করে একটি বাইট করতে পারেন n==0থেকে n<1। প্রশ্নে এটি " 0 এবং 1,000,000,000 এর মধ্যে একটি অ-নেতিবাচক পূর্ণসংখ্যার " বলে।
কেভিন ক্রুজসসেন

1
@ কেভিন ক্রুজসেন আমি 1 টি নয়, 5 টি বাইটটি দিয়েছিলাম :-P ধন্যবাদ, আমি এটি লক্ষ্য করিনি।
অলিভিয়ার গ্রাগোয়ার

2
ফিবোনাচি সিকোয়েন্সের জন্য আপনার কোনও অস্থায়ী পরিবর্তনশীল লাগবে না। আপনি একের পর এক জুটি গণনা করতে পারেনb+=a;a=b-a;
ডেভিড কনরাড

1
আপনি কালো যাদু করছেন, @ ডেভিডকনরড! আমি তোমাকে বলছি! কালো যাদু! :)
অলিভিয়ার

3

সি # (.নেট কোর) , 51 বাইট

bool f(int n,int a=0,int b=1)=>a<n?f(n,b,a+b):a==n;

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

অলিভারকে -6 বাইট ধন্যবাদ!

এই সমাধানটি একটি দুর্দান্ত সোজা পুনরাবৃত্তি ফাংশন ব্যবহার করে।

  • ভেরিয়েবলটি nপরীক্ষা করার জন্য নম্বর।
  • চলক aএবং bক্রম 2 সাম্প্রতিক সংখ্যা।
  • 2 অতি সাম্প্রতিক সংখ্যার মধ্যে প্রথমটি ইনপুট থেকে কম কিনা তা পরীক্ষা করে। যখন এটি হয়, সিরিজের পরবর্তী নম্বরগুলিতে একটি পুনরাবৃত্তি কল করা হয়।
  • অন্যথায়, প্রথম সংখ্যাটি ইনপুট সমান কিনা তা পরীক্ষা করে ফলাফলটি ফেরত দিন।

টিআইও লিঙ্কটি 1134903170 এর জন্য এই কাজটি দেখায় যা চ্যালেঞ্জের জন্য প্রয়োজনীয় সর্বোচ্চ মান ছাড়িয়েছে।


সি # সমাধানগুলি ইদানীং দেখে ভাল লাগল :) - আমি মনে করি আপনি কেবল 51 বাইটেরa<n জন্য যাচাই করতে পারেন
অলিভার

ধন্যবাদ! এবং সুন্দর টিপ :)
ডানা

3

অ্যালকেমিস্ট , 205 134 বাইট

রাজ্যগুলির চেয়ে চালিত সংযোজনের জন্য, মাত্র 71১ বাইট সংরক্ষণের জন্য এএসসিআইআই-কে অনেক ধন্যবাদ !!

_->In_x+c+u
u+b->u+a+d
u+0b->v
v+c->v+b+d
v+0c->w
w+a+x->w+y
w+0a+0x->Out_"1"
w+a+0x->Out_"0"
w+0a+x+y->w+2x
w+0a+0y+d->w+c
w+0d+0a->u

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

Ungolfed

# read input, initialize (c = 1)
_ -> In_x + c + s0

# a,d <- b
s0 +  b -> s0 + a + d
s0 + 0b -> s1

# b,d <- c
s1 +  c -> s1 + b + d
s1 + 0c -> s2

s2 +  a +  x -> s2 + y            # y <- min(a,x)
s2 + 0a + 0x -> Out_"1"           # if (a == x): was Fibonacci
s2 +  a + 0x -> Out_"0"           # if (a >  x): stop (we exceeded target)
s2 + 0a +  x +  y -> s2 + 2x      # if (a <  x): x += a (since y = a) / restore x
s2 + 0a      + 0y +  d -> s2 + c  # once that's done; c <- d
s2 + 0a           + 0d->s0        # and finally loop


139 । আপনি 0অমান্য নির্ধারণের ব্যয়ে কম বাইটের জন্য কিছু চেক অপসারণ করতে পারেন
ASCII- কেবল


@ এএসসিআইআই: এটি বেশ সুন্দর! 0 ব্যর্থ যদিও, কিন্তু যোগ না bআরম্ভের উপর -atom এটি সংশোধন করা হয়েছে (এবং সংরক্ষণ 2 বাইটস): ডি ধন্যবাদ
ბიმო

2

জেলি , 5 বাইট

ȷḶÆḞi

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

ফিবোনাচি নম্বরের জন্য 0 এবং ফিবোনাচি সংখ্যার জন্য ফিবোনাচি অনুক্রমের সংখ্যার 1-সূচিযুক্ত অবস্থান প্রদান করে।

ব্যাখ্যা:

ȷḶÆḞi
ȷ        The literal number 1000
 Ḷ       Range [0,1,...,999]
  ÆḞ     Get the ith Fib number; vectorizes [1,1,2,3,5,...,<1000th Fib number>]
    i    Get the first index of element in list, or 0 if not found

0. এর জন্য কাজ করে না
Okx

@ কমরেডস্পার্কলপনি আপনি কি নিশ্চিত? সেটা আমার জন্য কাজ করে.
ছড়িয়ে ছিটিয়ে

1
0 বা কিছু 43466557686937456435688527675040625802564660517371780402481729089536555417949051890403879840079255169295922593080322634775209689623239873322471161642996440906533187938298969649928516003704476137795166849228875. চেয়ে বড় জন্য কাজ করে না
এরিক Outgolfer

1
@ মিঃ এক্সকোডার জেনারেল sensকমত্য হল যে আপনার প্রাকৃতিক ডেটাটাইপ যা সমর্থন করে তা আপনি অবশ্যই পরিচালনা করতে সক্ষম হবেন এবং জেলি স্বেচ্ছাসেবী-নির্ভুলতা পূর্ণসংখ্যাকে সমর্থন করে।
এরিক আউটগলফার

1
এখনও ধরে 26863810024485359386146727202142923967616609318986952340123175997617981700247881689338369654483356564191827856161443356312976673642210350324634850410377680367334151172899169723197082763985615764450078474174626. কিছু কাজ করে না
Outgolfer এরিক


2

আর, 43 40 বাইট

pryr::f(x%in%DescTools::Fibonacci(0:45))  

pryr::f একটি ফাংশন তৈরি করে:

function (x) 
x %in% DescTools::Fibonacci(0:45)

ব্যবহারসমূহ DescTools::Fibonaccix+1অন্তর্ভুক্তির জন্য প্রথম ফিবোনাচি সংখ্যা এবং চেক তৈরি করতে করে । x+1কারণ তৃতীয় ফিবনাম 2, এবং এটি 3 টি অন্তর্ভুক্তির জন্য চেক করার পক্ষে যথেষ্ট হবে না।

ভাগ্যক্রমে Desctools::Fibonacci(0)=0 , তাই এটি একটি দুর্দান্ত ফ্রিবি।

-3 বাইট ধন্যবাদ মিকিটি কে


-1:x+1আপনাকে একটি বাইট 0:45সংরক্ষণ করবে , তবে আপনাকে তিনটি সাশ্রয় করবে এবং প্রয়োজনীয় ব্যাপ্তিটি কভার করবে
মিকিটি

@ মিকিটি ওহ, প্রয়োজনীয় রেঞ্জের স্পেসিফিকেশনটি আমি অবশ্যই উপেক্ষা করেছি। ধন্যবাদ :)
জেএডি

একটি বিকল্প পদ্ধতির, শুধুমাত্র 36 বাইট: pryr::f(any(!(5*n^2+c(-4,4))^.5%%1))
rturnbull

আমি এটি 32 বাইটে নেমে এসেছি , দেখুন এখানে
rturnbull

আমি কোড গল্ফ নিয়মের সাথে তেমন পরিচিত নই - নন-বেস প্যাকেজগুলি কী বোঝায়? আমি একটি প্যাকেজে স্বেচ্ছাসেবী আর কোড লিখতে, এটি ইনস্টল করতে এবং আপনি যেভাবে ফাংশনটি চালিয়েছেন সেভাবে চালাতে পারতাম pryr
mb7744

2

হাস্কেল , 31 বাইট

f=0:scanl(+)1f
(`elem`take 45f)

এটি অনলাইন চেষ্টা করুন! এটি ইনপুটটি 0 থেকে 1,000,000,000 এর মধ্যে থাকবে এই সত্যটি কাজে লাগায়, সুতরাং আমাদের কেবল প্রথম 45 ফিবোনাচি নম্বর পরীক্ষা করা দরকার। f=0:scanl(+)1fফিবোনাচি সংখ্যাগুলির একটি অসীম তালিকা তৈরি করে, take 45fপ্রথম 45 ফিবোনাচি সংখ্যাগুলির elemতালিকা এবং এই তালিকায় ইনপুট রয়েছে কিনা তা যাচাই করে।


সীমিত না হওয়া সংস্করণ: 36 বাইট

f=0:scanl(+)1f
g n=n`elem`take(n+3)f

এটি অনলাইন চেষ্টা করুন! যে কোনওর জন্য n, প্রথম n+3ফিবোনাচি নম্বরগুলি গ্রহণ করা গ্যারান্টি দেয় যে nএটি কোনও ফাইবোনাচি নম্বর হলে এই তালিকায় থাকবে।

নোট করুন যে এই পদ্ধতিটি ফিবোনাচি সংখ্যা নয় এমন উচ্চ সংখ্যার জন্য অবিশ্বাস্য অযোগ্য। কারণ সমস্ত n+3ফিবোনাচি নম্বর গণনা করা দরকার।


2

জাভাস্ক্রিপ্ট (** অপারেটর ছাড়াই ES6), 44 বাইট

f=(x,c=x*(Math.sqrt(5)-1)/2%1)=>x*(c-c*c)<.5

ধারাবাহিক ফিবোনাচি সংখ্যার মধ্যে স্বর্ণের অনুপাতের সংখ্যার মধ্যে অনুপাতের উপর নির্ভর করে। গ এর মান হ'ল সুবর্ণ অনুপাত দ্বারা বিভক্ত ইনপুটটির ভগ্নাংশ -

অন্যান্য জেএস উত্তরের কয়েকটি হিসাবে সংক্ষিপ্ত নয় তবে ও (1) সময়ে চলে।


আপনি কি নিশ্চিত যে এটি সঠিক?
ব্যবহারকারী 259412

16558014 ফাইবোনচি নাম্বারটির জন্য কাজ করে না
ব্ল্যাক আউল কাই

2

জুলিয়া 0.4 , 29 বাইট

!m=in(0,sqrt(5*m*m+[4,-4])%1)

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


আপনি যদি জুলিয়া উত্তরটি এভাবে করেন না, তবে আমাকে জানান। টিআইওতে ইনপুট কীভাবে কাজ করে সে সম্পর্কে আমি অনিশ্চিত।


1
আপনাকে এটিকে একটি নিয়মিত ফাংশন (গণনা !m=) বা ল্যাম্বদা (গণনা m->) করতে হবে। আরও গুরুত্বপূর্ণ, এটি 0 হিসাবে ব্যর্থ হয়।
ডেনিস

2

আর, 32 31 বাইট

স্টিডিন, রিটার্ন TRUEবা FALSEযথাযথ হিসাবে ইনপুট নেয় ।

any(!(5*scan()^2+-1:1*4)^.5%%1)

2

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

(defun f(x)(do((a 0 b)(b 1(+ a b)))((>= a x)(= a x))))

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

পূর্ববর্তী সংস্করণে সম্মানের সাথে আকার হ্রাস:

(defun f(x)(do((a 0 b)(b 1 c)(c 1(+ b c)))((>= a x)(= a x))))

ফিবোনাচি সংখ্যার ক্রম উত্পন্ন করতে তিনটি নয়, কেবল দুটি ভেরিয়েবল প্রয়োজনীয় idea



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