হ্রাস কারক নেতাদের পরিবর্তনগুলি


12

tl; dr: হ্রাসপ্রাপ্ত মৌলিক অনুষ্কারের লিডার পরিবর্তিত হয় এমন মানগুলিকে আউটপুট দেয়।

প্রতিটি ধনাত্মক পূর্ণসংখ্যার একটি অনন্য প্রাথমিক গুণক রয়েছে। আসুন হ্রাসপ্রাপ্ত মৌলিক অনুষ্কারকে কেবলমাত্র উপাদানগুলির আকার অনুসারে অর্পিত মৌলিক উপাদানগুলির সংখ্যাবৃদ্ধির তালিকাকে কল করি। উদাহরণস্বরূপ, এর হ্রাস করা প্রধান কারণটি 1980হ'ল [2, 2, 1, 1], কারণ 1980 = 2 * 2 * 3 * 3 * 5 * 11

এরপরে, প্রতিটি সংক্ষিপ্ত মৌলিক অনুষঙ্গটি প্রায়শই কতক্ষণ ঘটে তা রেকর্ড করি [1, 2, ..., n]। উদাহরণস্বরূপ, এর মধ্যে [1, 2, ..., 10], নিম্নলিখিত হ্রাসের প্রধান কারণগুলি ঘটে:

[1]: 4 (2, 3, 5, 7)
[2]: 2 (4, 9)
[1, 1]: 2 (6, 10)
[]: 1 (1)
[3]: 1 (8)

আমরা নেতৃবৃন্দকে nহ্রাসপ্রাপ্ত মৌলিক কার্যকারীর দিকে কল করব যা প্রায়শই ঘটে [1, 2, ..., n]। অতএব, কমিয়ে দিবেন নেতা n = 10হয় [1]। বৃহত্তর পূর্ণসংখ্যার আকারটি nহ্রাসপ্রাপ্ত মৌলিক সংখ্যার চেয়ে কম বা তার সমান হয়ে যাবে এবং ছোট বৃহত্তম পূর্ণসংখ্যা আরও ভাল হবে। উদাহরণস্বরূপ, অবধি n = 60, হ্রাসপ্রাপ্ত মৌলিক কারণগুলি [1]এবং [1, 1]প্রতিটি 17 বার ঘটে। যে পরিসর দান সর্বোচ্চ পূর্ণসংখ্যা [1, 1]হয় 58যখন দান পূর্ণসংখ্যা সর্বাধিক, [1]হয় 59। অতএব, সঙ্গে n = 60, হ্রাস প্রধান ফ্যাক্টরীকরণের নেতা হয় [1, 1]

nহ্রাসপ্রাপ্ত মৌলিক অনুষ্কারের নেতা যেখানে পরিবর্তন করেন সেগুলির মানগুলিতে আমি আগ্রহী । এগুলি nহ'ল মানগুলি যেখানে হ্রাসপ্রাপ্ত মৌলিক অনুষ্কারের লিডার হ্রাসপ্রাপ্ত মৌলিক অনুষ্কারের লিডার থেকে আলাদা n-1। প্রান্ত হিসাবে, আমরা বলব নেতৃত্বের পরিবর্তন হয় n = 1, কারণ কোনও নেতার পক্ষে উপস্থিতি নেই n = 0

আপনার চ্যালেঞ্জ আউটপুট করা হয়।

পছন্দসই আউটপুটটির প্রাথমিক ক্রম হ'ল:

1, 3, 58, 61, 65, 73, 77, 1279789, 1280057, 1280066, 1280073, 1280437, 1280441, 1281155, 1281161, 1281165, 1281179, 1281190, 1281243, 1281247, 1281262, 1281271, 1281313, 1281365

অনুমোদিত আউটপুট শৈলীগুলি হ'ল:

  • অসীম আউটপুট।
  • প্রথম kনেতা পরিবর্তন করে, kইনপুটটি কোথায় ।
  • kম নেতা পরিবর্তন, যেখানে kইনপুট হয়।

k শূন্য বা এক সূচকযুক্ত হতে পারে।

এটি কোড-গল্ফ। আপনি যদি কিছু সম্পর্কে নিশ্চিত না হন তবে মন্তব্যে জিজ্ঞাসা করুন। শুভকামনা!


সবচেয়ে কম / কে এর চেয়ে কম দামের সাথে নেতার পরিবর্তন কী হবে?
ব্যবহারকারী 202729

@ user202729 আমি না বলতে যাচ্ছি - যা চ্যালেঞ্জটিকে কিছুটা আলাদা করেছে।
isaacg

যেহেতু আপনি ইতিবাচক পূর্ণসংখ্যার জন্য ধারণাটি সংজ্ঞায়িত করেছেন আপনি লোকেরা 1 বা 3 এ ক্রম শুরু করার মঞ্জুরি দিতে চাইতে পারেন (বা পরিবর্তন করুন "এগুলি nহ'ল এমন মানগুলি যেখানে হ্রাসপ্রাপ্ত মৌলিক অনুষ্কারের লিডার হ্রাসপ্রাপ্ত মৌলিক অনুষ্কারের নেতার চেয়ে আলাদা) n-1")
জোনাথন অ্যালান

@ জোনাথান অ্যালান আমি বিষয়গুলি পরিবর্তন করছি না, তবে আমি চ্যালেঞ্জের প্রাসঙ্গিক অংশটি পরিষ্কার করে দিয়েছি।
isaacg

উত্তর:


3

হুশ , 18 বাইট

m←ġ(←►Lk=mȯmLgpṫ)N

এটি অনলাইন চেষ্টা করুন! এটি অসীম তালিকা মুদ্রণ করে। লিঙ্কটি প্রথম values ​​টি মানগুলিতে ফলাফলকে ছাঁটাই করে, যেহেতু টিআইওতে প্রোগ্রামটি বেশ অকার্যকর এবং এরপরে বেরিয়ে গেছে।

প্রথম বন্ধনীগুলি কুৎসিত, তবে কীভাবে সেগুলি থেকে মুক্তি পাওয়া যায় তা আমি জানি না।

ব্যাখ্যা

m←ġ(←►Lk=mȯmLgpṫ)N  No input.
                 N  The list of natural numbers [1,2,3,4,..
  ġ(            )   Group into slices according to this function.
                    Each slice corresponds to a run of numbers with equal return values.
    ←►Lk=mȯmLgpṫ    Function: from n, compute the reduced factorization leader in [1..n].
                     As an example, take n = 12.
               ṫ     Reversed range: [12,11,10,9,8,7,6,5,4,3,2,1]
         m           Map over this range:
              p       Prime factorization: [[2,2,3],[11],[2,5],[3,3],[2,2,2],[7],[2,3],[5],[2,2],[3],[2],[]]
             g        Group equal elements: [[[2,2],[3]],[[11]],[[2],[5]],[[3,3]],[[2,2,2]],[[7]],[[2],[3]],[[5]],[[2,2]],[[3]],[[2]],[]]
          ȯmL         Take length of each run: [[2,1],[1],[1,1],[2],[3],[1],[1,1],[1],[2],[1],[1],[]]
       k=            Classify by equality: [[[2,1]],[[1],[1],[1],[1],[1]],[[1,1],[1,1]],[[2],[2]],[[3]],[[]]]
                     The classes are ordered by first occurrence.
     ►L              Take the class of maximal length: [[1],[1],[1],[1],[1]]
                     In case of a tie, ► prefers elements that occur later.
    ←                Take first element, which is the reduced factorization leader: [1]
                    The result of this grouping is [[1,2],[3,4,..,57],[58,59,60],[61,62,63,64],..
m←                  Get the first element of each group: [1,3,58,61,65,73,77,..

►=কাজ হয় না কেন । না maxByপরে উপাদান পছন্দ না?
এইচ.পি.উইজ

@ H.PWiz সমস্যা হল টাই ক্ষেত্রে, আমি পূর্ণবিস্তার উপাদান যার পছন্দ করা প্রয়োজন প্রথম বিপরীত সীমার মধ্যে সংঘটন হয় সর্বশেষ সম্ভব, অথবা equivalently, যার গত বৃদ্ধি সীমার মধ্যে সংঘটন হয় নিকটতম সম্ভব। ►=না।
জাগারব

1

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

এন-থার্ড নেতাদের পরিবর্তন, 1-সূচকযুক্ত প্রদান করে।

N=>(F=m=>N?F((F[k=(D=(n,d=2,j)=>d>n?j:n%d?D(n,d+1)+(j?[,j]:[]):D(n/d,d,-~j))(++n)]=-~F[k])>m?F[N-=p!=k,p=k]:m):n)(n=p=0)

ডেমো

মন্তব্য

সহায়ক ফাংশন ডি () , বিপরীত ক্রমে n এর হ্রাসপ্রাপ্ত মৌলিক কার্যকারিতা ফিরিয়ে দিচ্ছে :

D = (n, d = 2, j) =>             // n = input, d = divisor, j = counter
  d > n ?                        // if d is greater than n:
    j                            //   append j and stop recursion
  :                              // else:
    n % d ?                      //   if d is not a divisor of n:
      D(n, d + 1) + (            //     recursive call with n unchanged and d = d + 1
        j ?                      //     if j is not undefined:
          [,j]                   //       append a comma followed by j
        :                        //     else:
          []                     //       append nothing
      )                          //
    :                            //   else:
      D(n / d, d, -~j)           //     recursive call with n divided by d and j = j + 1

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

N =>                             // N = target index in the sequence
  (F = m =>                      // m = # of times the leader has been encountered
    N ?                          // if N is not equal to 0:
      F(                         //   do a recursive call to F():
        (F[k = D(++n)] =         //     increment n; k = reduced prime factorization of n
                         -~F[k]) //     increment F[k] = # of times k has been encountered
        > m ?                    //     if the result is greater than m:
          F[N -= p != k,         //       decrement N if p is not equal to k
                         p = k]  //       update p and set m to F[p]
        :                        //     else:
          m                      //       let m unchanged
      )                          //   end of recursive call
    :                            // else:
      n                          //   stop recursion and return n
  )(n = p = 0)                   // initial call to F() with m = n = p = 0

1

স্ট্যাক্স , 24 বাইট

Ç▓Δk/‼&²Θºk∙♥╜fv╛Pg8╝j♀§

এই প্রোগ্রামটি কোনও ইনপুট নেয় না এবং তাত্ত্বিকভাবে অসীম আউটপুট উত্পাদন করে। আমি "তাত্ত্বিকভাবে" বলছি কারণ 8 তম উপাদানটি এক বছরেরও বেশি সময় নেবে।

এটি চালান এবং এটি ডিবাগ করুন

একই প্রোগ্রামটির সংশ্লিষ্ট আসকি উপস্থাপনাটি এটি।

0WYi^{|n0-m|=c:uny=!*{i^Q}Md

এটি সর্বশেষ নেতাকে স্ট্যাকের উপরে রাখে। পূর্ণসংখ্যার উপর উপস্থাপনা, যদি ফ্যাক্টর উপস্থাপনায় একটি পৃথক মোড থাকে এবং এটি শেষটির চেয়ে আলাদা হয় তবে এটি আউটপুট করুন।

0                               push zero for a placeholder factorization
 W                              repeat the rest of the program forever
  Y                             store the last factorization in the y register
   i^                           i+1 where i is the iteration index
     {    m                     using this block, map values [1 .. i+1]
      |n0-                          get the prime exponents, and remove zeroes 
           |=                   get all modes
             c:u                copy mode array and test if there's only one
                ny=!            test if mode array is not equal to last leader
                    *           multiply; this is a logical and
                     {   }M     if true, execute this block
                      i^Q       push i+1 and print without popping
                           d    discard the top of stack
                                    if it was a leader change, this pops i+1
                                    otherwise it pops the mode array
                                at this point, the last leader is on top of 
                                the stack

0

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

m=i=0;f=[]
while 1:
 i+=1;a=i;d=[0]*-~i;k=2
 while~-a:x=a%k>0;k+=x;a/=x or k;d[k]+=1-x
 k=filter(abs,d);f+=k,;c=f.count
 if c(k)>c(m):print i;m=k

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

Ungolfed

m=0                    # reduced prime factorizations leader
i=0                    # current number
f=[]                   # list of reduced prime factorizations
while 1:               # Infinite loop:
  i+=1                 #   next number
  a=i                  #   a is used for the prime factorization
  d=[0]*-~i            #   this lists stores the multiplicity
  k=2                  #   current factor
  while~-a:            #   As long as a-1 != 0:
    x=a%k>0            #      x := not (k divides a)
    k+=x               #      If k does not divide a, go to the next factor
    a/=x or k          #      If k does not divide a,
                       #         divide a by 1,
                       #         else divide it by k
    d[k]+=1-x          #      add 1 to the multiplicity of k if k divides a
  k=filter(abs,d)      #   Only keep non-zero multiplicities
                       #     k is now the reduced prime factorization of i
  f+=k,                #   append k to the list of reduced prime factorizations
  c=f.count            #   c(x) := number of occurences of x in f
  if c(k)>c(m):        #   has the current reduced prime factorization
                       #    appeared more often than the leader?
    print i;m=k        #     print the current number, set new leader

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


0

জেলি ,  35  34 বাইট

আমার মনে হচ্ছে এটি এখনও গল্ফযোগ্য

ÆEḟ0µ€ĠL€M⁸’ߤ¹Ṗ?
®‘©Ç€F0;ITµL<³µ¿

kপ্রথম kনেতা পরিবর্তন পয়েন্টগুলির জেলি তালিকার উপস্থাপনা গ্রহণ ও আউটপুট দেওয়ার একটি সম্পূর্ণ প্রোগ্রাম ।

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

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