এই জিসিডি অপারেশনটি পুনরাবৃত্তি করুন


19

২০০৮ এর পুতনম প্রতিযোগিতা থেকে সমস্যা এ 3 বলেছেন:

ইতিবাচক পূর্ণসংখ্যার একটি সীমাবদ্ধ ক্রম দিয়ে শুরু করুন । যদি সম্ভব হয়, দুই সূচকের চয়ন যেমন যে ভাগ নেই , এবং প্রতিস্থাপন এবং দ্বারা এবং \ টেক্সট {LCM} (a_j, a_k) যথাক্রমে। প্রমাণ করুন যে যদি এই প্রক্রিয়াটি পুনরাবৃত্তি হয় তবে অবশেষে এটি বন্ধ হতে হবে এবং চূড়ান্ত ক্রমটি করা পছন্দগুলির উপর নির্ভর করে না।একটি1,একটি2,...,একটিএন<একটিএকটিএকটিএকটিGCD(একটি,একটি)LCM(একটি,একটি)

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

এটি : প্রতিটি প্রোগ্রামিং ভাষার সবচেয়ে সংক্ষিপ্ত সমাধান জিততে পারে।

পরীক্ষার মামলা

[1, 2, 4, 8, 16, 32] => [1, 2, 4, 8, 16, 32]
[120, 24, 6, 2, 1, 1] => [1, 1, 2, 6, 24, 120]
[97, 41, 48, 12, 98, 68] => [1, 1, 2, 4, 12, 159016368]
[225, 36, 30, 1125, 36, 18, 180] => [3, 9, 18, 90, 180, 900, 4500]
[17, 17, 17, 17] => [17, 17, 17, 17]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] => [1, 1, 1, 1, 1, 2, 2, 6, 60, 2520]

9
কী ঝরঝরে সমস্যা! প্রতিটি পূর্ণসংখ্যা লিখুন যেমন এবং মনে রাখবেন প্রক্রিয়া কেবল বুদ্বুদ-বাছাই করে তালিকা মধ্যে সমান্তরাল :)একটিআমি2αআমি3βআমি5γআমিα,β,γ,...
লিন

উত্তর:


12

জেলি , 9 বাইট

ÆEz0Ṣ€ZÆẸ

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

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

ÆEz0Ṣ€ZÆẸ  Main link. Argument: A (array)

ÆE         For each n in A, compute the exponents of n's prime factorization.
           E.g., 2000000 = 2⁷3⁰5⁶ gets mapped to [7, 0, 6].
  z0       Zip 0; append 0's to shorter exponent arrays to pad them to the same
           length, then read the resulting matrix by columns.
    Ṣ€     Sort the resulting arrays (exponents that correspond to the same prime).
      Z    Zip; read the resulting matrix by columns, re-grouping the exponents by
           the integers they represent.
       ÆẸ  Unexponents; map the exponent arrays back to integers.


5

জে , 17 বাইট

/:~"1&.|:&.(_&q:)

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

সম্ভবত &.দুবার ব্যবহার করার জন্য পিপিসিজিতে প্রথম জে উত্তর । এই এবং পরে যে , আমি একটি অদ্ভুত জে হ্যাকার লাগছে যাও শুরু করছি।

মূলত ডেনিসের জেলি উত্তর থেকে একটি অনুবাদ ।

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

/:~"1&.|:&.(_&q:)  Single monadic verb.
           (_&q:)  Convert each number to prime exponents
                   (automatically zero-filled to the right)
       |:&.        Transpose
/:~"1&.            Sort each row in increasing order
       |:&.        Transpose again (inverse of transpose == transpose)
           (_&q:)  Apply inverse of prime exponents; convert back to integers


5

ওল্ফ্রাম ল্যাঙ্গুয়েজ (ম্যাথমেটিকা) , 44 বাইট

Table[GCD@@LCM@@@#~Subsets~{i},{i,Tr[1^#]}]&

=GCD({LCM(একটিআমি1,,একটিআমি)|1আমি1<<আমিএন})

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


খুব সুন্দর! আপনি আসা দু'জনের জন্য অদ্ভুত পদ্ধতির জন্য আপনি দু'জন
মিশা লাভরভ

5

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

import math
def f(a,i=0,j=-1):d=math.gcd(a[i],a[j]);a[j]*=a[i]//d;a[i]=d;a[i:j]and f(a,i,j-1)==f(a,i+1)

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

ব্যাখ্যা

এই সমস্যাটি মূলত প্রধান কারণগুলির একটি সমান্তরাল সাজ, এবং (জিসিডি (ক, খ), এলসিএম (ক, খ)) (মিনিট (ক, খ), সর্বাধিক (ক, খ)) এর সাথে সাদৃশ্যপূর্ণ। সুতরাং আসুন বাছাইয়ের পদে কথা বলি।

আমরা আনয়ন দ্বারা প্রমাণ করব যে f (i, j) এর পরে, একটি [i] L এর সর্বনিম্ন মান হয়ে যায়, যেখানে এল উভয় প্রান্ত সহ এল [a] এবং একটি [জে] এর মধ্যে সীমা হয় । এবং যদি j = -1, f (i, j) এল রেঞ্জটি বাছাই করে

কেস যখন এল একটি উপাদান থাকে তুচ্ছ। প্রথম দাবির জন্য, লক্ষ্য করুন যে এল এর ক্ষুদ্রতমটি অদলবদলের পরে [জে] থাকতে পারে না, তাই চ (i, জে -1) এটিকে একটি [i], এবং চ (i + 1, - এ রাখবে) 1) এটি প্রভাবিত করবে না।

দ্বিতীয় দাবির জন্য, নোট করুন যে একটি [i] সবচেয়ে ক্ষুদ্রতম মান এবং f (i + 1, -1) অবশিষ্ট মানগুলিকে সাজিয়ে দেবে, তাই এল f এর পরে বাছাই হবে (i, j)।


3

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

\d+
*
+`\b((_+)(\2)+)\b(.*)\b(?!\1+\b)(\2+)\b
$2$4$5$#3*$5
_+
$.&

এটি অনলাইন চেষ্টা করুন! লিঙ্কে দ্রুত পরীক্ষার কেস অন্তর্ভুক্ত রয়েছে। ব্যাখ্যা:

\d+
*

অ্যানারিতে রূপান্তর করুন।

+`\b((_+)(\2)+)\b(.*)\b(?!\1+\b)(\2+)\b

বারবার মিল: কোনও ফ্যাক্টরের সাথে কোনও সংখ্যা, তারপরের একটি সংখ্যা যা প্রথম সংখ্যা দ্বারা বিভাজ্য নয় তবে গুণক দ্বারা বিভাজ্য হয়।

$2$4$5$#3*$5

$1প্রথম সংখ্যা। $2ফ্যাক্টর হয়। কারণ রেজেক্স লোভী এটি বৃহত্তম ফ্যাক্টর অর্থাৎ জিসিডি। $4মূল সংখ্যাগুলির মধ্যে ম্যাচের অংশ। $5দ্বিতীয় নম্বর। $#3(দশমিক পরিবর্তে ইউনারী বেশি) এর চেয়েও কম $1দ্বারা বিভক্ত $2, যেহেতু এটি মূল অন্তর্ভুক্ত নয় $2। এর অর্থ এই যে LCM আমরা সংখ্যাবৃদ্ধি প্রয়োজন নিরূপণ করা $5আরো এক করে চেয়ে $#3যা সর্বাধিক succintly এর সমষ্টি হিসেবে লেখা হয় $5এবং গুণফল $#3এবং $5

_+
$.&

দশমিক রূপান্তর।


আনিনারিকে রেটিনার জন্য ডিফল্টরূপে অনুমোদিত , সুতরাং আপনি এটি 52 বাইট হিসাবে গণনা করতে পারেন।
ডেনিস

@ ডেনিস আমার রেটিনা উত্তরগুলির মধ্যে কেবল তিনটিই আনরিয়ায় ইনপুট নেয়; দশমিক আমি / ও করার অভ্যাস করেছি।
নিল

3

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

পদ্ধতির জন্য ক্রেডিট আলেফালফায় যায় ।

εIæN>ù€.¿¿

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

εIæN>ù€.¿¿     Full program. Takes a list from STDIN, outputs another one to STDOUT.
ε              Execute for each element of the input, with N as the index variable.
 Iæ            Powerset of the input.
   N>ù         Only keep the elements of length N+1.
      €.¿      LCM each.
         ¿     Take the GCD of LCMs.


2

জাভাস্ক্রিপ্ট (স্পাইডারমনকি) , 69 বাইট

a=>a.map((q,i)=>a.map(l=(p,j)=>a[j]=j>i&&(t=p%q)?p/t*l(q,j,q=t):p)|q)

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

  • ফাংশন lবরাদ্দ lcm(p,q)করতে a[j], এবং বরাদ্দ gcd(p, q)করতে qযদি j > i, অন্যথায় সবকিছু অপরিবর্তিত রাখে।
    • lcm(p,q) = if p%q=0 then p else p*lcm(q,p%q)/(p%q)

পুরানো উত্তর:

জাভাস্ক্রিপ্ট (স্পাইডারমনকি) , 73 বাইট

a=>a.map((u,i)=>a.map((v,j)=>i<j?a[j]*=u/(g=p=>p%u?g(u,u=p%u):u)(v):0)|u)

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

  • ফাংশন gগণনা করে gcd(u, v)এবং ফেরতের মান নির্ধারণ করে u

2

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

Ó¾ζ€{øεgÅpymP

@ ডেনিসের পোর্ট 'জেলি উত্তর দিয়েছেন , তবে দুর্ভাগ্যক্রমে 05 এবি 1 ই এর কোনও অপহরণকারী-বিল্টিন নেই, যাতে প্রোগ্রামটি অর্ধেকের চেয়ে বেশি লাগে .. :(
-1 বাইট @ মিঃ এক্সকোডারকে
ধন্যবাদ । ।

এটি অনলাইনে চেষ্টা করুন বা সমস্ত পরীক্ষার কেস যাচাই করুন

ব্যাখ্যা:

Ó          # Prime exponents of the (implicit) input-list
 ¾ζ        # Zip, swapping rows and columns, with integer 0 as filler
   €{      # Sort each inner list
     ø     # Zip, swapping rows and columns again
ε          # Map each inner list:
 gÅp       #  Get the first `l` primes, where `l` is the size of the inner list
    ym     #  Take the power of the prime-list and inner list
      P    #  And then take the product of that result
           # (And output implicitly)

1
ওহ, আমি নিজের পোস্ট পোস্ট করার আগে আপনার উত্তরটি দেখিনি। ব্যবহার করে এবং অপসারণ করে 14 বাইট , +1। (আমি এর আগে এটি চেষ্টা করেছি কারণ আমি ডেনিসের ¾
উত্তরকেও লোট

1
ব্যবহার εgÅpymPবেশি অন্য বাইট বাঁচাতে হবে জনাব Xcoder metioned
Emigna

@ মিঃ এক্সকোডার ওহ, ফিলার 0এবং এর সাথে পার্থক্য রয়েছে তা জানতেন না ¾। মনে রাখা দরকার! আসলে, আমি এখনই এটি আমার ছোট 05AB1E টিপগুলিতে যুক্ত করব। :)
কেভিন ক্রুইজসেন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.