"প্রাথমিক পাখি" স্কোয়ার


15

সংজ্ঞা

আপনি যদি ধনাত্মক পূর্ণসংখ্যার স্কোয়ারগুলির ক্রম নেন এবং সেগুলি অঙ্কের একটি স্ট্রিং (যেমন 149162536496481100...) এর সাথে একত্রীকরণ করেন তবে একটি "প্রাথমিক পাখি" বর্গক্ষেত্র এমনটি যা তার স্ট্রিংয়ের প্রাকৃতিক অবস্থানের আগে খুঁজে পাওয়া যায়।

উদাহরণস্বরূপ, 7 2 (সংখ্যা 49), স্ট্রিং 2 এর একটি অফসেটে পাওয়া যায়, যদিও প্রাকৃতিক অবস্থানটি অফসেটে রয়েছে 10 সুতরাং 7টি প্রথম "প্রাথমিক পাখি" বর্গক্ষেত্র।

নোট করুন যে এটি "প্রারম্ভিক পাখি" বর্গ হিসাবে বিবেচিত হওয়ার জন্য, বর্গাকার সমস্ত অঙ্ক প্রাকৃতিক অবস্থান শুরুর আগে অবশ্যই ঘটবে। একটি মিল যা প্রাকৃতিক অবস্থানকে আংশিকভাবে ওভারল্যাপ করে তা গণনা করে না।

a(n)এটি কি নবম ধনাত্মক পূর্ণসংখ্যার কে 2 যেমন একটি "প্রারম্ভিক পাখি" বর্গ।

কার্য

ধনাত্মক পূর্ণসংখ্যা n, আউটপুট দেওয়া হয়েছে a(n)

আপনি 1-ভিত্তিক বা 0-ভিত্তিক সূচক ব্যবহার করতে পারেন তবে আপনি যদি 0-ভিত্তিক সূচক ব্যবহার করেন তবে দয়া করে আপনার উত্তরে বলুন।

আপনার সমাধানটি কমপক্ষে উচ্চ হিসাবে হ্যান্ডেল করতে সক্ষম হওয়া উচিত a(53)(বা আপনি যদি 0-ভিত্তিক সূচক ব্যবহার করছেন, a(52))।

Testcases

n     a(n)
1     7
2     8
3     21
4     25
5     46
6     97
7     129
8     161
9     196
10    221
...
13    277
...
50    30015
51    35000
52    39250
53    46111

তথ্যসূত্র


পরীক্ষার কেসের টেবিলটি বেস 0 বা 1 ব্যবহার করছে?
23:51

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

@idrougege পরীক্ষার কেসগুলি 1-ভিত্তিক।
জেমস হোল্ডারেন্স

@ হাইপারনিট্রিনো আমি সমস্ত উত্তরের জন্য নিয়মিত ফলাফলের সেট পছন্দ করতে চাই, তাই দয়া করে কেবল এর একক মানটি ফিরিয়ে দিন a(n)
জেমস হোল্ডারেন্স

উত্তর:


5

05 এ বি 1 ই , 10 9 বাইট

সংরক্ষণ 1 বাইট ধন্যবাদ আদনান

µNL<nJNnå

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

ব্যাখ্যা

µ           # loop until counter equals the input
 NL         # push the range [1 ... iteration_no]
   <        # decrement each
    n       # square each
     J      # join to string
      Nnå   # is iteration_no in the string?
            # if true, increase counter

½অনুপস্থিত অবস্থায় লুপটিতে স্বয়ংক্রিয়ভাবে যুক্ত হবে এমনটি আপনি ছেড়ে দিতে পারেন ।
আদনান

@ আদনান: সত্য। আমি ট্রেনে চড়ানোর ঠিক আগে এই চ্যালেঞ্জটি লক্ষ্য করেছি (বা এটি দেরি না করা হলে যাচ্ছিল), তাই আমি এটি পুরোপুরি মিস করেছি। ধন্যবাদ :)
Emigna

7

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

1-ইন্ডেক্স।

f=(n,s=k='')=>n?f(n-!!s.match(++k*k),s+k*k):k

ডেমো

ফর্ম্যাট এবং মন্তব্য

f = (                         // f = recursive function taking:
  n,                          //   n = input
  s = k = ''                  //   s = string of concatenated squares, k = counter
) =>                          //
  n ?                         // if we haven't reached the n-th term yet:
    f(                        //   do a recursive call with:
      n - !!s.match(++k * k), //     n decremented if k² is an early bird square
      s + k * k               //     s updated
    )                         //   end of recursive call
  :                           // else:
    k                         //   return k

অপরিবর্তিত সংস্করণ, 53 বাইট

এটি আপনার ইঞ্জিন স্ট্যাকের আকারের উপর নির্ভর করে না।

n=>{for(k=s='';n-=!!(s+=k*k).match(++k*k););return k}

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


6

পাইথ , 12 বাইট

e.f/jk^R2Z`*

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

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

ef / jk ^ R2Z` * ~ সম্পূর্ণ প্রোগ্রাম। প্রশ্ন আমাদের ইনপুট হতে দিন।

 .f ~ সত্যিকারের ফলাফলের সাথে প্রথম প্রশ্ন ইতিবাচক পূর্ণসংখ্যার। ভেরিয়েবল Z ব্যবহার করে
      ^ R2Z ~ প্রতিটি পূর্ণসংখ্যার স্কোয়ার [0, জেড)।
    jk a একটি একক স্ট্রিং মধ্যে সংঘবদ্ধ।
   / Of এর উপস্থিতিগুলি গণনা করুন ...
          `* Z জেড স্কোয়ারের স্ট্রিং প্রতিনিধিত্ব।
               মিথ্যা বললে 0 এবং সত্যবাদী হলে 1 ডলার দেয়।
e the সর্বশেষ উপাদানটি (Qth সত্যবাদী পূর্ণসংখ্যার) পান। সুস্পষ্টভাবে আউটপুট।


4

এপিএল (ডায়ালগ) , 53 42 বাইট

{{0<+/(⍕×⍨⍵+1)⍷' '~⍨⍕×⍨⍳⍵:⍵+1⋄∇⍵+1}⍣⍵⊢0}

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

কিভাবে?

- ঘটনা খুঁজে

⍕×⍨⍵+1- এর stringified বর্গক্ষেত্র x+1মধ্যে

⍕×⍨⍳⍵ - স্কোয়ারের স্ট্র্যান্ডাইফড রেঞ্জ x

' '~⍨ - ফাঁকা জায়গা ছাড়া

+/ - যোগফল

0<- যদি যোগফলটি ইতিবাচক হয় (ঘটনাগুলি বিদ্যমান থাকে), তবে তা ফিরে আসে x+1, অন্যথায়,

∇⍵+1- সাথে পুনরাবৃত্তি x+1

⍣⍵- সময় প্রয়োগ n


3

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

import Data.List
([n|n<-[7..],isInfixOf(g n)$g=<<[1..n-1]]!!)
g=show.(^2)

এটি অনলাইন চেষ্টা করুন! শূন্য-ইন্ডেক্স।

ব্যাখ্যা

অক্জিলিয়ারী:

import Data.List -- import needed for isInfixOf
g=show.(^2)      -- function short cut to square an int and get the string representation

প্রধান ফাংশন:

(                                 !!) -- Index into the infinite sequence
 [n|n<-[7..],                    ]    -- of all numbers n greater equal 7
      isInfixOf(g n)$                 -- whose square appears in the string
                     g=<<[1..n-1]     -- of all squares from 1 up to n-1 concatenated.

2

জেলি , 13 11 বাইট

R²DµṪẇF
Ç#Ṫ

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

বিকল্পভাবে এটি একটি 10 ​​বাইট সমাধান যা nক্রমের প্রথম মানগুলি মুদ্রণ করে : এটি অনলাইনে চেষ্টা করুন!


হ্যাঁ আপনি আমাকে এই মারবেন; আপনার সমাধানের মতো হুবহু আমারও ছিল (গল্ফ করার পরে): পি
হাইপার নিউট্রিনো

দুর্ভাগ্যক্রমে, হাইপারনিউটারিনো ভুল বলে মনে হচ্ছে।
ব্যবহারকারী 202729

ওহ সত্যিই? যে দু: খজনক :( সম্পাদন করা উহু অধিকার nfindঅপরিচিত: (((
HyperNeutrino

@ হাইপারনিউট্রিনো কোনও সমস্যা নেই, স্টিডিন থেকে পড়া কাজ করে।
ব্যবহারকারী 202729


2

জেলি , 11 বাইট

Ḷ²DFɓ²ẇ
Ç#Ṫ

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

ব্যবহারকারী 202729 এর সমাধানের বিকল্প ।

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

C#Ṫ ~ Main Link.

Ç#  ~ First N positive integers with truthy results.
  Ṫ ~ Tail. Take the last one.

-----------------------------------------------------------

Ḷ²DFɓ²ẇ ~ Helper link. This is the filtering condition.

Ḷ       ~ Lowered range. Yields {x | x ∊ Z and x ∊ [0, N)}.
 ²      ~ Square each.
  D     ~ Convert each to decimal (this gets the list of digits).
   F    ~ Flatten.
    ɓ   ~ Starts a new monadic chain with swapped arguments.
     ²  ~ N²; Yields N squared.
      ẇ ~ Is ^ sublist of ^^^?

বাহ, স্বয়ংক্রিয় স্ট্রিংফিকেশন আছে।
ব্যবহারকারী 202729

2

এলিস , 32 বাইট

/
\io/&wd.*\@! d ? ~ ? F $ /WKdt

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

অর্ডিনাল মোডের প্রসারিত অপ্রয়োজনীয় বিন্যাসটি আমাকে সত্যিই তুচ্ছ করছে, তবে আমি কিছু বাইট সংরক্ষণ করার চেষ্টা করি এমন সমস্ত কিছুই আর বাইরে আসে ...

ব্যাখ্যা

/
\io/...@...

শুধু স্বাভাবিক দশমিক ইনপুট / আউটপুট ফ্রেমওয়ার্ক, সঙ্গে oএবং @সামান্য অস্বাভাবিক অবস্থানকে। প্রোগ্রামের মাংসটি হ'ল:

&w    Push the current IP address to the return address stack n times.
      This gives us an easy way to write a loop which repeats until we
      explicitly decrement the loop counter n times.

  d     Push the stack depth, which acts as our running iterator through
        the natural numbers.
  .*    Square it.
  \     Switch to Ordinal mode.
  !     Store the square (as a string) on the tape.
  d     Push the concatenation of the entire stack (i.e. of all squares before
        the current one).
  ?~    Retrieve a copy of the current square and put it underneath.
  ?     Retrieve another copy.
  F     Find. If the current square is a substring of the previous squares,
        this results in the current square. Otherwise, this gives an empty
        string.
  $     If the previous string was empty (not an early bird) skip the next
        command.
  /     Switch back to Cardinal. This is NOT a command.
  W     Discard one address from the return address stack, decrementing our
        main loop counter if we've encountered an early bird.
K     Jump back to the beginning of the loop if any copies of the return
      address are left. Otherwise do nothing and exit the loop.

dt    Push the stack depth and decrement it, to get the final result.

আমি এই ভাষাটি জানি না, তবে বর্তমান বর্গক্ষেত্র যুক্ত হওয়ার আগে স্ট্রিংয়ে রয়েছে কিনা তা পরীক্ষা করে আপনি কোনও বাইট সংরক্ষণ করতে পারবেন?
ডাব্লুগ্রোলাও

পছন্দ করেছেন প্রধান চেকটি এখনও একটি বাইট ( Fপরিবর্তে z), তবে স্ট্যাক ম্যানিপুলেশন কোনও সহজ, সম্ভবত এক বা দুটি কমান্ড আরও খারাপ হবে না।
মার্টিন এন্ডার

নিবন্ধন করুন 69696 এর প্রাকৃতিক অবস্থানের আগে দুটি অবস্থান প্রদর্শিত হবে (এটির সাথে ওভারল্যাপিং)। যদি এর প্রাকৃতিক অবস্থানের সাথে ওভারল্যাপগুলি অবহেলা করা উচিত, আপনার সম্ভবত চ্যালেঞ্জে এটি বলা উচিত।
মার্টিন এন্ডার

@ জেমসহোল্ডারেন্স প্রাসঙ্গিক পরীক্ষাগুলি পরীক্ষা করতে খুব বেশি সময় নিচ্ছিল, তাই আমি মাত্র দশটা পর্যন্ত পেরেছি। মধ্যবর্তী পরীক্ষার ক্ষেত্রে সহায়তা করা উচিত।
মার্টিন ইন্ডার

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

1

হুশ , 13 বাইট

!f§€oṁ₁ŀ₁N
d□

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

ব্যাখ্যা

দ্বিতীয় লাইনটি একটি সহায়ক ফাংশন যা আমাদের একটি সংখ্যার বর্গক্ষেত্রের দশমিক সংখ্যা দেয়:

 □    Square.
d     Base-10 digits.

আমরা মূল প্রোগ্রামটিতে এই ফাংশনটি ব্যবহার করে প্রার্থনা করতে পারি

!f§€oṁ₁ŀ₁N
 f§      N    Filter the list of natural numbers by the following fork g(n).
       ŀ        Get [0, 1, ... n-1]
     ṁ₁         Get the decimal digits of each value's square and concatenate
                them into one list. (A)
        ₁       And get the decimal digits of n² itself. (B)
    €           Check whether (A) contains (B) as a sublist.
!             Use the programs input as an index into this filtered list.


1

ওল্ফ্রাম ভাষা (গণিত) , 75 বাইট

(n=k=0;s="";While[n<#,If[!StringFreeQ[s,t=ToString[++k^2]],n++];s=s<>t];k)&

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

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

nএখনও অবধি পাওয়া পাখির সংখ্যা রাখে, kশেষ সংখ্যাটি পরীক্ষা করা হয়, sস্ট্রিং থাকে "1491625..."। যদিও nখুব ছোট, যদি sপরবর্তী স্কোয়ার থাকে তবে আর একটি প্রাথমিক পাখি পাওয়া গেছে, সুতরাং আমরা বৃদ্ধি করি n। যাই হোক না কেন, আমরা প্রসারিত s

একবার nইনপুট পৌঁছানোর পরে #, আমরা ফিরে আসি , kশেষ নম্বরটি চেক করা হয় এবং অতএব শেষ প্রারম্ভিক পাখি পাওয়া যায়।

আমার ল্যাপটপে, ক্রমের 53 তম শব্দটি গণনা করতে প্রায় 53 সেকেন্ড সময় লাগে।



1

বাশ, 76 69 বাইট

ধরে nনেওয়া যাক পরিবর্তনশীল (যেমন n=10 foo.sh) তে দেওয়া হয় । প্যাকেজ ব্যবহার করে grep। যে কোনও মধ্যম মান আউটপুট (যদি অনুমোদিত হয়, -3 বাইট)।

while((n));do((b=++a*a));grep -q $b<<<$s&&((n--));s=$s$b;done;echo $a

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

while ((n)); do  # while n != 0 (C-style arithmetic)
  ((b = ++a*a))  # Increment a and let b = a*a
    # Non-existent value is treated as zero
  grep $b<<<$s   # Search for b in s
    && ((n--))   # If found, decrement n
  s=$s$b         # Append b to s
done
echo $a

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