নবম গ্রিফোন নম্বর


26

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

একটি গ্রিফোন নম্বর হ'ল ফর্মের a+a2+...+ax সংখ্যা a + a 2 + + a x , যেখানে a এবং x উভয়ই দুটির চেয়ে বড় বা সমান হয় এবং গ্রিফোন সিকোয়েন্সটি সমস্ত গ্রিফন সংখ্যাকে একটি আরোহণের ক্রম হিসাবে সেট করে। যদি গ্রিফোন নম্বর গঠনের একাধিক উপায় থাকে (প্রথম উদাহরণটি 30 , যা 2+22+23+24 এবং 5+52 ) উভয়ই অনুক্রমের মধ্যে কেবল একবার গণনা করা হয়। প্রথম কয়েকটি গ্রিফোন নম্বর হ'ল:6,12,14,20,30,39,42,56,62,72

তোমার কাজ:

একটি প্রোগ্রাম বা ফাংশন লিখুন যা ইনপুট হিসাবে একটি পূর্ণসংখ্যা n পায় এবং n থ্রি গ্রাইফোন নম্বরটি আউটপুট করে ।

ইনপুট:

0 এবং 10000 (সমেত) এর মধ্যে একটি পূর্ণসংখ্যা। আপনি এই সিকোয়েন্সটিকে 0-ইনডেক্সড বা 1-ইনডেক্সড হিসাবে বিবেচনা করতে পারেন, আপনি যেটিকে পছন্দ করুন। বিভ্রান্তি এড়াতে আপনি আপনার উত্তরে কোন সূচক সিস্টেমটি ব্যবহার করবেন দয়া করে তা জানান।

আউটপুট:

ইনপুট সম্পর্কিত গ্রিফন নম্বর।

পরীক্ষার কেস:

অনুগ্রহ করে নোট করুন যে এই অনুক্রমটি 0-সূচিযুক্ত বলে ধরে নেওয়া হয়েছে। যদি আপনার প্রোগ্রামটি 1-ইনডেক্সেড ক্রম ধরে থাকে তবে সমস্ত ইনপুট সংখ্যা বৃদ্ধি করতে ভুলবেন না।

Input:    Output:
0   --->  6
3   --->  20
4   --->  30
10  --->  84
99  --->  4692
9999 -->  87525380

স্কোরিং:

এটি , তাই বাইট জিতে সর্বনিম্ন স্কোর।


6
গ্রিফোন সিকোয়েন্সটি A053696 - 1. অন্য কথায়, A053696 ফর্মের সংখ্যার ক্রমবর্ধমান ক্রম হল a0+a1++ax
20:50 সার্ব

2
@ সুর আহ, সেজন্য আমি এটি খুঁজে পেলাম না। সেক্ষেত্রে আমি সেই তথ্যটি একটি সম্পাদনায় রেখে দেব, তবে বাকী প্রশ্নটি যেমন রাখি তেমনি অনুক্রমের জন্য আরও ভাল নাম বলে মনে হয় না।
গ্রিফন - মনিকা

উত্তর:


15

জেলি , 9 বাইট

bṖ’ḅi-µ#Ṫ

একটি সম্পূর্ণ প্রোগ্রাম যা STDIN থেকে একটি (1-ইনডেক্সড) পূর্ণসংখ্যা পড়ে এবং ফলাফল মুদ্রণ করে।

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

কিভাবে?

একটি গ্রিফোন নম্বর এমন একটি সংখ্যা যা নিজের চেয়ে কম বেসে প্রকাশযোগ্য যেমন সমস্ত সংখ্যার সর্বাধিক তাত্পর্যপূর্ণ ব্যতীত, যা একটি শূন্য। উদাহরণ স্বরূপ:

30=1×24+1×23+1×22+1×21+0×20302=11110

84=1×43+1×42+1×41+0×40844=1110

এই প্রোগ্রামটি গ্রহণ করে n, তারপরে শুরু হয় v=0এবং এই সম্পত্তিটির পরীক্ষা করে এবং বর্ধিত হয় vযতক্ষণ না এটি nএরকম সংখ্যা খুঁজে না পায় , তারপরে চূড়ান্তটিকে আউটপুট দেয়।

bv1bv

3020×304+0×303+0×302+0×301+(1)×300=1

8440×843+0×842+0×841+(1)×840=1

bṖ’ḅi-µ#Ṫ - Main Link: no arguments
       #  - set v=0 then count up collecting n=STDIN matches of:
      µ   -  the monadic link -- i.e. f(v):  e.g. v=6
 Ṗ        -    pop (implicit range of v)            [1,2,3,4,5]
b         -    to base (vectorises)                 [[1,1,1,1,1,1],[1,1,0],[2,0],[1,2],[1,1]]
  ’       -    decrement (vectorises)               [[0,0,0,0,0,0],[0,0,-1],[1,-1],[0,1],[0,0]]
   ḅ      -    from base (v) (vectorises)           [0,-1,5,1,0]
     -    -    literal -1                           -1
    i     -    first index of (zero if not found)   2
          - }  e.g. n=11 -> [6,12,14,20,30,39,42,56,62,72,84]
        Ṫ - tail         -> 84
          - implicit print

11

এমএটিএল , 16 13 বাইট

:Qtt!^Ys+uSG)

1-ভিত্তিক।

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

ব্যাখ্যা

n = 3উদাহরণ হিসাবে ইনপুট বিবেচনা করুন ।

:    % Implicit input: n. Range
     % STACK: [1 2 3]
Q    % Add 1, element-wise
     % STACK: [2 3 4]
tt   % Duplicate twice, transpose
     % STACK: [2 3 4], [2 3 4], [2;
                                 3;
                                 4]
^    % Power, element-wise with broadcast
     % STACK: [2 3 4], [ 4   9  16;
                         8  27  64;
                        16  81 256]
Ys   % Cumulative sum of each column
     % STACK: [2 3 4], [ 4    9  16;
                         12  36  80;
                         28 117 336]
+    % Add, element-wise with broadcast (*)
     % STACK: [ 6  12  20;
               14  39  84
               30 120 340]
u    % Unique elements. Gives a column vector
     % STACK: [  6;
                14;
                30;
                12;
               ···
               340]
S    % Sort
     % STACK: [  6;
                12
                14;
                20;
               ···
               340]
G)   % Push input again, index. This gets the n-th element. Implicit display
     % STACK: 14

পদক্ষেপে প্রাপ্ত ম্যাট্রিক্স (*) সম্ভবত পুনরাবৃত্তি গ্রিফোন নম্বর রয়েছে। বিশেষত, nএটির প্রথম সারিতে স্বতন্ত্র গ্রিফোন সংখ্যা রয়েছে । এগুলি অগত্যা nক্ষুদ্রতম গ্রিফোন সংখ্যা নয়। তবে নীচের-বাম এন্ট্রিটি 2+2^+···+2^n উপরের-ডান প্রবেশকে ছাড়িয়ে গেছে n+n^2এবং এভাবে শেষ সারির সমস্ত সংখ্যা প্রথম সারির চেয়ে বেশি those এটি সূচিত করে যে ম্যাট্রিক্স ডানদিকে বা নীচের দিকে প্রসারিত করা ম্যাট্রিক্সের সর্বনিম্ন nসংখ্যার চেয়ে কোনও গ্রিফোন সংখ্যাকে কম অবদান রাখবে না । অতএব, ম্যাট্রিক্সটি nক্ষুদ্রতম গ্রিফোন সংখ্যা ধারণের গ্যারান্টিযুক্ত । ফলস্বরূপ, এর- nতমতম সর্বনিম্ন অনন্য উপাদানটি হল সমাধান।


1
এ কি আশ্চর্য!
আইকিউইক 143

8

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

([n|n<-[6..],or[a^y+n==n*a+a|a<-[2..n],y<-[3..n]]]!!)

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

there একটি সংখ্যা হ'ল গ্রিফন যদি সেখানে পূর্ণসংখ্যার উপস্থিতি থাকে এবং যেমন ।na2x2n=i=1xai

আমরা সমস্ত এর একটি অসীম তালিকা তৈরি করি যা একটি ব্রুট-ফোর্স অনুসন্ধান দেখায় যে এটি কেস।n6

উত্তরটি এই তালিকার একটি (শূন্য-সূচকযুক্ত) সূচক ফাংশন, যা হাস্কেল হিসাবে চিহ্নিত রয়েছে (list!!)

কেন a^y+n==n*a+aসঠিক?

জ্যামিতিক অগ্রগতির সারসংক্ষেপের সূত্র থেকে :

i=1ναρi1=α(1ρν)1ρ

আমাদের কাছে :(α,ρ,ν)=(a,a,x)

n=i=1xai=a(1ax)1a=aax+11a.

সমীকরণ পুনরায় সজ্জিত করা, আমরা পেতে ।n(1a)=aax+1

এরপরেও পুনরায় সাজানো, আমরা পাই ।ax+1+n=na+a

ব্রুট-ফোর্স অনুসন্ধানের একটি প্রতিস্থাপন চূড়ান্ত প্রকাশ করে ।y=x+1a^y+n=n*a+a

যথেষ্টক্ষণ অনুসন্ধান করা হচ্ছে n?

  • যদি (অন্য কথায়, ) থাকে, তবে যা প্রমাণ করে । সুতরাং কোনও মান পরীক্ষা করার কোনও বুদ্ধি ।a>nan+1

    ay+n>a2(n+1)a=na+a
    ay+nna+aa>n

  • একইভাবে: যদি , তবে আবার প্রমাণ করছে ।y>n

    ay+n>an=an1a2n1a>(n+1)a=na+a,
    ay+nna+a

    আমরা ধরে নিতে পারি কারণ আমরা , ক্ষুদ্রতম গ্রিফোন নম্বর জানি।2n1>n+1n6


7

পাইথন 3.8 (প্রাক রিলিজ) , 98 92 89 78 71 বাইট

lambda n:sorted({a*~-a**x//~-a for a in(r:=range(2,n+3))for x in r})[n]

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

0-ইন্ডেক্স। পূর্ণসংখ্যা বিভাগটি এখানে অবশ্যই ব্যবহার করা উচিত কারণ চ (10000) ওভারফ্লোগুলি ভাসমান।

সমস্ত গ্রিফোন নম্বর উত্পন্ন করে যেখানে এবং , তাদের বাছাই করে এবং তম উপাদানটি নির্বাচন করে ।2an+22xn+2n

-6 বাইট জনাথন অ্যালানকে ধন্যবাদ

-3 বাইট ধন্যবাদ আরবোকে ধন্যবাদ। আমি প্রায় নিজের পরামর্শ অনুযায়ী করেছিলাম, তবে এমন চেষ্টা করার চেষ্টা করেছি {*(...)}যা কোনওভাবেই স্থান বাঁচায় না

-11 বাইটস ধন্যবাদ ম্যাথম্যান্ডনে

-7 বাইট ধন্যবাদ আরবোকে ধন্যবাদ

বৈধতার গাণিতিক প্রমাণ

গাণিতিক কনভেনশনটি 1-সূচিবদ্ধ হওয়া সত্ত্বেও এই প্রমাণের জন্য 0-সূচক ব্যবহার করা।

  • যাক হতে ম Gryphon সংখ্যাGnn
  • চলুন ( এবং এর গ্রিফন নম্বর )g(a,x)=a+a2+...+axax
  • কে সমস্ত গ্রিফোনের সংখ্যার সেট করা যাক যেখানে এবংAn2an+22xn+2
  • আমরা জানি যেA0={g(2,2)}={6}={G0}
  • An+1={g(a,x),g(a+1,x),g(a,x+1),g(a+1,x+1)|g(a,x)An}
  • g(a+1,x)<g(a+1,x+1) সমস্ত এবংax
  • g(a,x+1)<g(a+1,x+1) সমস্ত এবংax
  • সুতরাং যদিGn+1g(a+1,x+1)Gn=g(a,x)
  • g(a+1,x)<g(a+2,x) সমস্ত এবংax
  • g(a,x+1)<g(a,x+2) সমস্ত এবংax
  • অতএব অন্য কোনও সম্ভাবনা না থাকার কারণে either হয় বা হবে ।Gn+1g(a+1,x)g(a,x+1)Gn=g(a,x)
  • আমরা এই তথ্যটি উপসংহারে ব্যবহার করতে পারি যে যদিGn+1An+1GnAn
  • যেহেতু আমরা জানি যে , আমরা যে প্রবৃত্ত এই নিয়ম ব্যবহার করতে পারেন সবার জন্যG0A0GnAnn
  • যেহেতু এই থেকে প্রয়োগ করা যেতে পারে করার , তারপর সূচিতে থাকা আবশ্যক এর যদি ক্ষুদ্রতম থেকে বৃহত্তম নির্দেশ দেওয়া হয়G0GnGnnAnAn

f=অপ্রয়োজনীয়, এবং lambda n,r=range:আরও 4 টি সংরক্ষণ করবে (এর মতো )
জোনাথন অ্যালান

আপনি set()এটিকে ড্রপ করে এটিকে প্রতিস্থাপন করতে পারেন 89
আরবো

এছাড়াও, আপনি f=আমার 89-বাইটারের টিআইও-র মতো শিরোনামটিতে রেখে টিআইও লিঙ্কটি থেকে মুছে ফেলতে পারেন
আরবো

পাইথন 3.8 এবং অ্যাসাইনমেন্ট এক্সপ্রেশন সহ 86 বাইট
ovs

"অতএব Gn + 1 ≠ (a + 1, x + 1) লাইনে Gn = g (a, x)" যদি ভুল হয় তবে এটি Gn + 1 ≠ g (a + 1, x + 1) হওয়া উচিত ...
আইকিউিক 143

5

জে , 35 32 বাইট

-3 বাইট ধন্যবাদ ফ্রাউনফ্রোগের জন্য

3 :'y{/:~~.,}.+/\(^~/>:)1+i.y+2'

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

ব্যাখ্যা মূল হিসাবে একই। কেবল একাধিকটি মুছে ফেলা বাইটগুলি সংরক্ষণ করতে সুস্পষ্ট ফর্ম ব্যবহার করে @

মূল উত্তর, স্পষ্টতার সাথে স্পষ্ট: 35 বাইট

{[:/:~@~.@,@}.[:+/\@(^~/>:)1+i.@+&2

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

লুই মেন্ডোর পদ্ধতির অনুরূপ, আমরা শীর্ষ সারি 2 3 ... nএবং বাম কলাম সহ একটি "পাওয়ার টেবিল" (টাইমস টেবিলের মতো) তৈরি করি 1 2 ... nযার ফলস্বরূপ:

 2   3    4     5     6      7
 4   9   16    25    36     49
 8  27   64   125   216    343
16  81  256   625  1296   2401
32 243 1024  3125  7776  16807
64 729 4096 15625 46656 117649

^~/ >:সারণী 1+i.@+&2তৈরি করে এবং 1... nসিকোয়েন্সগুলি তৈরি করে এবং +&20 বা 1 ইনপুটগুলির জন্য এমনকি আমাদের কাছে সর্বদা একটি টেবিল তৈরি করার পর্যাপ্ত উপাদান রয়েছে তা নিশ্চিত করার জন্য আমরা ইনপুটটিতে 2 ( ) যুক্ত করি ।

আমাদের উপরের টেবিলটি থাকার পরে সমাধানটি তুচ্ছ। আমরা সারি সারি স্ক্যান করব +/\এবং তারপরে প্রথম সারিটি সরিয়ে, সমতল, অনন্য নেবে এবং সাজান /:~@~.@,@}.। পরিশেষে {উত্তরটি তৈরি করে সেই ফলাফলের সূচকটিতে মূল ইনপুট ব্যবহার করে।


সুস্পষ্ট স্বরলিপি 3
ফ্রেউনিফ্রোগ

ধন্যবাদ, সুন্দর ধরা।
যোনা

3

গাইয়া , 18 বাইট

)┅:1D¤*‡+⊣¦tv<_uȯE

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

1-ভিত্তিক সূচক।

এটি দীর্ঘ নাক দিয়ে একটি বরং দুঃখের উত্তর: )┅:এটি সম্ভবত আরও ইচ্ছা করে যে এটি আরও নিচু হয়ে যেতে পারে।

লুইস মেন্ডোর উত্তর দিয়ে দেওয়া অ্যালগরিদম অনুলিপি করে


3

আর , 65 62 বাইট

-1 বাইট জিউসেপিকে ধন্যবাদ।

n=scan();unique(sort(diffinv(t(outer(2:n,1:n,"^")))[3:n,]))[n]

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

1-ইন্ডেক্স।

A ফর্মের সমস্ত মানগুলির একটি ম্যাট্রিক্স উত্পন্ন করে, সংখ্যার যোগফল গ্রহণ করে, প্রথম সারি (0 গুলি) এবং দ্বিতীয় সারি ( সাথে সম্পর্কিত এন্ট্রি ) সরিয়ে দেয়, তারপরে অনন্য বাছাই করা মান নেয়।aix=1

মনে রাখবেন যে, sort(unique(...))হবে না কাজ, যেমন uniqueম্যাট্রিক্স অনন্য সারি, এবং অনন্য এন্ট্রি দিতে হবে। unique(sort(...))কাজগুলি ব্যবহার করে কারণ sortভেক্টরে রূপান্তরিত হয়।


এটি কিছুটা বেশি সময় নেয়, তবে এটি ব্যবহার করে tএবং diffinvএটি 64 বাইট হয়
জিউসেপ

1
@ জিউসেপ ধন্যবাদ! আমি জানতাম না diffinv। আমি প্রতিস্থাপন দ্বারা অন্য 2 বাইট নিচে golfed [-1:-2,]সঙ্গে [3:n,]
রবিন রাইডার

2

জাভাস্ক্রিপ্ট (ES7), 76 বাইট

1-ইন্ডেক্স।

f=(n,a=[i=2])=>(n-=a.some(j=>a.some(k=>(s+=j**k)==i,s=j)))?f(n,[...a,++i]):i

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


জাভাস্ক্রিপ্ট (ইএস 7), 89 বাইট

1-ইন্ডেক্স।

n=>eval('for(a=[i=1e4];--i>1;)for(s=1e8+i,x=1;a[s+=i**++x]=x<26;);Object.keys(a)[n]-1e8')

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



1

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

NθFθFθ⊞υ÷⁻X⁺²ι⁺³κ⁺²ι⊕ιF⊖θ≔Φυ›κ⌊υυI⌊υ

এটি অনলাইন চেষ্টা করুন! লিঙ্কটি কোডটির ভার্জোজ সংস্করণ। 1-ইন্ডেক্স। লুই মেন্ডোর আলগোরিদিম ব্যবহার করে। ব্যাখ্যা:

Nθ

ইনপুট ।n

FθFθ⊞υ

গ্রিফোন সংখ্যার একটি বাই- গ্রিড তৈরি করুন এবং প্রত্যেককে পূর্বনির্ধারিত তালিকায় ঠেলাও ।nn

÷⁻X⁺²ι⁺³κ⁺²ι⊕ι

আসলে ব্যবহার Gryphon সংখ্যা গণনা করে ।1xai=ax+1aa1

F⊖θ≔Φυ›κ⌊υυ

সর্বনিম্ন গ্রিফোন নম্বরগুলি সরান ।n1

I⌊υ

সর্বনিম্ন অবশিষ্ট গ্রিফোন নম্বর মুদ্রণ করুন।


1

জাপট , 23 বাইট

প্রিয় জেবাস! হয় আমি সত্যিই ভুলে গেছি কীভাবে গল্ফ করতে হয় বা বুজ শেষ পর্যন্ত এর টোল নিচ্ছে!

জনাথনের সমাধানের কোনও সরাসরি বন্দর নয় বরং তার পর্যবেক্ষণ দ্বারা অনুপ্রাণিত।

@ÈÇXìZ mÉ ìZÃeÄ}fXÄ}gNÅ

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


1

05 এ বি 1 ই , 12 বাইট

L¦ãε`LmO}êIè

0-ইন্ডেক্স

এটি অনলাইনে চেষ্টা করুন বা প্রথম আইটেম যাচাই করুনn

ব্যাখ্যা:

L             # Create a list in the range [1, (implicit) input-integer]
              #  i.e. 4 → [1,2,3,4]
 ¦            # Remove the first item to make the range [2, input-integer]
              #  i.e. [1,2,3,4] → [2,3,4]
  ã           # Create each possible pair of this list by using the cartesian product
              #  i.e. [2,3,4] → [[2,2],[2,3],[2,4],[3,2],[3,3],[3,4],[4,2],[4,3],[4,4]]
   ε          # Map each pair to:
    `         #  Push the values of the pair separately to the stack
              #   i.e. [4,3] → 4 and 3
     L        #  Take the list [1, value] for the second value of the two
              #   i.e. 3 → [1,2,3]
      m       #  And then take the first value to the power of each integer in this list
              #   i.e. 4 and [1,2,3] → [4,16,64]
       O      #  After which we sum the list
              #   i.e. [4,16,64] → 84
            # After the map: uniquify and sort the values
              #  i.e. [6,14,30,12,39,120,20,84,340] → [6,12,14,20,30,39,84,120,340]
          Iè  # And index the input-integer into it
              #  i.e. [6,12,14,20,30,39,84,120,340] and 4 → 30
              # (after which the result is output implicitly)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.