বিভাজনকারী বিভাজনকারীদের ভাগ করা


17

n(1,2,,মি)আমি2 যেমন যে12মি=এন এবং

1|2 , 2|3 , ... , মি-1|মি
এখানেএকটি| উপায়ে এর গুণিতক হয়একটি বলে "একটি ভাগ খ"। তাহলেএন>1 সমস্ত এন্ট্রিআমি অন্তত হতে হবে2 । জন্যএন=1 আমরা এই ধরনের কোন ফ্যাক্টর আছে এবং এর ফলে আমরা একটি খালি tuple পেতে।

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

চ্যালেঞ্জ

প্রদত্ত এন আউটপুট সব ধরনের tuples (1,2,,মি) দেওয়া এন ঠিক একবার যাই হোক না কেন মত আপনি অর্ডার। স্ট্যান্ডার্ড আউটপুট ফর্ম্যাটগুলি অনুমোদিত।

উদাহরণ

  1: () (empty tuple)
  2: (2)
  3: (3)
  4: (2,2), (4)
  5: (5)
  6: (6)
  7: (7)
  8: (2,2,2), (2,4), (8)
  9: (3,3), (9)
 10: (10)
 11: (11)
 12: (2,6), (12)
108: (2,54), (3,3,12), (3,6,6), (3,36), (6,18), (108)

সম্পর্কিত: http://oeis.org/A000688 , এন এর সমস্ত গুণক পার্টিশন তালিকাবদ্ধ করুন


আমরা কি প্রতিটি টিপলকে বিপরীত ক্রমে আউটপুট করতে পারি? (উদাঃ 12,3,3)
আর্নল্ড

1
@ আর্নল্ড হ্যাঁ, আমি যতক্ষণ না এটি আরোহণ বা অবতরণ ক্রমে বাছাই করা হয় ততক্ষণ এটি ঠিক হওয়া উচিত!
flawr

আমরা কি ইনপুটটি পূর্ণসংখ্যা> = 2 এ সীমাবদ্ধ করতে পারি? যদি না হয় এটি বিদ্যমান কিছু উত্তর অকার্যকর করবে?
নিক কেনেডি

1
না, চশমাগুলি স্পষ্টভাবে বলে যে কোনও ধনাত্মক পূর্ণসংখ্যা ইনপুট হিসাবে দেওয়া যেতে পারে যা অন্তর্ভুক্ত করে । আমি যদি এখন এটি পরিবর্তন করি তবে যারা চশমাগুলিতে প্রকৃতপক্ষে মেনে চলে তাদের প্রত্যেককে তাদের উত্তর পরিবর্তন করতে হবে। এন=1
flawr

উত্তর:



3

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

Òœ€.œP€`êʒüÖP

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

Ò                      # prime factorization of the input
 œ€.œ                  # all partitions
     P                 # product of each sublist
      €`               # flatten
        ê              # sorted uniquified
         ʒ             # filter by:
          üÖ           #  pairwise divisible-by (yields list of 0s or 1s)
            P          #  product (will be 1 iff the list is all 1s)

ব্যবহারের সুন্দর ভাবে Òœ€.œPsublists জন্য। আমি আরও ছোট কিছু খুঁজে পেতে অবশ্যই সমস্যা ছিল .. কেবল যদি সেখানে অনুরূপ Åœপরিবর্তে পণ্যের মতো তবে একটি বিল্টিন থাকত । ;)
কেভিন ক্রুইজসেন

এন = 1 এর জন্য ব্যর্থ হয়েছে (প্রশ্নে মন্তব্যগুলি দেখুন)
নিক কেনেডি


2

জাভাস্ক্রিপ্ট (ভি 8) ,  73  70 বাইট

অবতরণ ক্রমে টিপলগুলি মুদ্রণ করে (মি,মি-1,,1)

f=(n,d=2,a=[])=>n>1?d>n||f(n,d+1,a,d%a[0]||f(n/d,d,[d,...a])):print(a)

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

মন্তব্য

f = (             // f is a recursive function taking:
  n,              //   n   = input
  d = 2,          //   d   = current divisor
  a = []          //   a[] = list of divisors
) =>              //
  n > 1 ?         // if n is greater than 1:
    d > n ||      //   unless d is greater than n,
    f(            //   do a recursive call with:
      n,          //     -> n unchanged
      d + 1,      //     -> d + 1
      a,          //     -> a[] unchanged
      d % a[0] || //     unless the previous divisor does not divide the current one,
      f(          //     do another recursive call with:
        n / d,    //       -> n / d
        d,        //       -> d unchanged
        [d, ...a] //       -> d preprended to a[]
      )           //     end of inner recursive call
    )             //   end of outer recursive call
  :               // else:
    print(a)      //   this is a valid list of divisors: print it

1

05 এ বি 1 , 17 15 14 বাইট

ѦIиæʒPQ}êʒüÖP

বৃহত্তর পরীক্ষার ক্ষেত্রে খুব ধীর।

-১ বাইট @ গ্রিমিকে ধন্যবাদ ।

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

ব্যাখ্যা:

Ñ               # Get all divisors of the (implicit) input-integer
 ¦              # Remove the first value (the 1)
  Iи            # Repeat this list (flattened) the input amount of times
                #  i.e. with input 4 we now have [2,4,2,4,2,4,2,4]
    æ           # Take the powerset of this list
     ʒ  }       # Filter it by:
      PQ        #  Where the product is equal to the (implicit) input
         ê      # Then sort and uniquify the filtered lists
          ʒ     # And filter it further by:
           ü    #  Loop over each overlapping pair of values
            Ö   #   And check if the first value is divisible by the second value
             P  #  Check if this is truthy for all pairs

                # (after which the result is output implicitly)

@ গ্রিমি ধন্যবাদ এবং বিভাজনকারীদের জন্য ভাল কল। এটি এখনও খুব ধীরএন=8, তবে সমস্ত বিট সাহায্য করে এবং পারফরম্যান্স উন্নত করতে যদি কোনও অতিরিক্ত বাইটের জন্য ব্যয় হয় না, তবে কেন এটি ব্যবহার করবেন না। :)
কেভিন ক্রুইজসেন

1
13 এবং দ্রুত । মনে হচ্ছে এটি আরও খাটো হতে পারে।
গ্রিমি

1

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

f=(n,a=[],i=1)=>{for(;i++<n;)n%i||(a=a.concat(f(n/i).filter(e=>!(e[0]%i)).map(e=>[i].concat(e))));return n>1?a:[a]}

আমি পরে একটি ব্যাখ্যা লিখব


1

ওল্ফ্রাম ভাষা (গণিত) , 78 76 72 71 67 বাইট

If[#>(p=1##2),Join@@If[i∣##,##~#0~i,{}]~Table~{i,2,#/p},{{##2}}]&

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

পুনরাবৃত্ত অনুসন্ধান অনুসন্ধান গাছ।


ব্রুট ফোর্স সলিউশন, 64 বাইট :

Union@Cases[Range@#~Tuples~#,{a__,__}/;1a==#&&a>=2&&1∣a:>{a}]&

এন এর সমস্ত গুণক পার্টিশন তালিকাভুক্ত করার জন্য আমার গাণিতিক সমাধানের তুচ্ছ পরিবর্তন ।

যেহেতু এটি পরীক্ষা করা দরকার এনএনtuples, একই যুক্তি ব্যবহার করে আরও দক্ষ সংস্করণ চেষ্টা করুন


0

জাপট , 22 বাইট

â Åï c à f@¥XשXäv eÃâ

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

â Åï c à f@¥XשXäv eÃâ     :Implicit input of integer U
â                          :Divisors
  Å                        :Slice off the first element, removing the 1
   ï                       :Cartesian product
     c                     :Flatten
       à                   :Combinations
         f                 :Filter by
          @                :Passing each sub-array X through the following function
           ¥               :  Test U for equality with
            X×             :  X reduced by multiplication
              ©            :  Logical AND with
               Xä          :  Consecutive pairs of X
                 v         :  Reduced by divisibility
                   e       :  All truthy?
                    Ã      :End filter
                     â     :Deduplicate
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.