অনুমোদন কনজিগেট


17

আকার n এর একটি অনুচ্ছেদটি প্রথম এন ধনাত্মক পূর্ণসংখ্যার পুনঃক্রম হয় ering (যার অর্থ প্রতিটি পূর্ণসংখ্যা একবার এবং ঠিক একবারে উপস্থিত হয়)। প্রমুটেশনগুলি এমন ফাংশনগুলির মতো চিকিত্সা করা যেতে পারে যা আকার এন এর আইটেমগুলির তালিকার ক্রম পরিবর্তন করে । উদাহরণ স্বরূপ

(4 1 2 3) ["a", "b", "c", "d"] = ["d", "a", "b", "c"]

সুতরাং ক্রম ক্রিয়া ফাংশন মত রচনা করা যেতে পারে।

(4 1 2 3)(2 1 3 4) = (4 2 1 3)

এটি অনেক আকর্ষণীয় বৈশিষ্ট্য নিয়ে আসে। আজ আমরা সংযোগের দিকে মনোনিবেশ করছি । অনুমিতকরণ y এবং x (আকার n এর উভয় ) কনজুগেট হয় যদি g এবং g -1 (আকার n এরও হয় ) যেমন থাকে

x = gyg-1

এবং জিজি -1 সনাক্তকরণের ক্রম সমান ( যথাযথ ক্রমে প্রথম n সংখ্যা)।

আপনার কাজটি হ'ল স্ট্যান্ডার্ড ইনপুট পদ্ধতিগুলির মাধ্যমে একই আকারের দুটি অনুমতি নেওয়া এবং সেগুলি কনজুগেট কিনা তা সিদ্ধান্ত নেওয়া। আপনার দুটি সামঞ্জস্যপূর্ণ মানগুলির মধ্যে একটি আউটপুট করা উচিত, একটি সেগুলি সংঘবদ্ধ এবং অন্যটি যদি তা না হয়।

এটি তাই কম বাইট ভাল হওয়ার সাথে বাইটে উত্তরগুলি দেওয়া হবে।

কনজিগেট ক্রিয়েটেশন সম্পর্কে প্রচুর উপপাদাগুলি রয়েছে যা আপনার কাছে রয়েছে, তাই ভাগ্য এবং শুভ গল্ফিং।

আপনি উপরের মতো ক্রমুষ্ঠানের প্রতিনিধিত্ব করে মানগুলির অর্ডারযুক্ত ধারক হিসাবে (1-n বা 0-n) হিসাবে ইনপুট নিতে পারেন, বা কোনও ক্রম হিসাবে যাতে একটি অর্ডারযুক্ত ধারক গ্রহণ করে এবং আদেশটি সম্পাদন করে। আপনি যদি ফাংশন গ্রহণের সিদ্ধান্ত নেন তবে আপনার এটি পূর্বনির্ধারিত নামের পরিবর্তে যুক্তি হিসাবে গ্রহণ করা উচিত।

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

(1) (1) -> True
(1 2) (2 1) -> False
(2 1) (2 1) -> True
(4 1 3 2) (4 2 1 3) -> True
(3 2 1 4) (4 3 2 1) -> False 
(2 1 3 4 5 7 6) (1 3 2 5 4 6 7) -> True

আমরা কি একটি ফাংশন হিসাবে ইনপুট নিতে পারি? আমরা n আকারে নিতে পারি?
xnor

উভয়ই পরিসংখ্যান সম্পর্কে @xnor শিওর আমি নিশ্চিত না যদিও প্রথমটি আপনাকে কীভাবে সাহায্য করবে।
পোস্ট রক গার্ফ হান্টার

ডিফল্ট ফাংশন ইনপুট নিয়মগুলি ফাংশনটিকে পূর্বনির্ধারিত হিসাবে ধরে নেওয়া যায়, যা আপনি যদি অনুমতি দেন তবে এটি আর্গুমেন্ট হিসাবে লেখার উপর বাইট সংরক্ষণ করে।
xnor

@ xnor আমরা কি এই নিয়মের কথা বলছি ? এটি ব্ল্যাক বক্স ফাংশনগুলির জন্য যা ক্রিয়াকলাপগুলি নয়। এটি উপলব্ধি করে কারণ becauseক্যমত্যটি ফাংশন পয়েন্টার / অবজেক্টগুলি ছাড়াই ভাষাগুলিকে প্রতিযোগিতা করার মঞ্জুরি দেওয়ার জন্য তৈরি করা হয়েছে যেখানে তারা পারছেন কারণ অনুমতিগুলি অন্যথায় উপস্থাপন করা যেতে পারে।
পোস্ট রক গারফ হান্টার

আমি ছিলাম, তাদের ব্ল্যাক-বক্স হওয়ার পার্থক্যটি আমি ভাবিনি। সুতরাং এখানে, ইনপুট একটি ফাংশন হতে পারে, কিন্তু শুধুমাত্র একটি সুস্পষ্ট যুক্তি হিসাবে?
xnor

উত্তর:


6

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

f=lambda P,k:k<1or len({sum([x==eval('L['*k+'x'+']'*k)for x in L])for L in P})&f(P,k-1)

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

Pউভয় ক্রিয়াকলাপ এবং kতাদের দৈর্ঘ্যের এক জোড়া হিসাবে ইনপুট নেয় । 1কনজুগেটের আউটপুট এবং 0না।

এটি ফলাফলটি ব্যবহার করে:

দুই একাধিক বিন্যাসন এক্স এবং ওয়াই হয় অনুবন্ধী ঠিক যদি তাদের -th ক্ষমতা এক্স এবং Y প্রত্যেক জন্য সংশোধন করা হয়েছে পয়েন্ট সমান নম্বর আছে থেকে 0 থেকে এন

দুটি কনজিগেট ক্রমশক্তি এটি সন্তুষ্ট করে কারণ তাদের কে- চতুর্থ শক্তিগুলিও সংহত হয় এবং যৌক্তিকতা নির্দিষ্ট পয়েন্টগুলির গণনা সংরক্ষণ করে।

এটি কম স্পষ্ট যে কোনও দুটি নন-কনজিগেট ক্রমাগত সর্বদা পৃথক fer বিশেষত, চক্রের দৈর্ঘ্যের তালিকা অনুসারে সংযুক্তি নির্ধারিত হয় এবং এগুলি নির্দিষ্ট পয়েন্টগুলির গণনা থেকে পুনরুদ্ধার করা যায়। এটি দেখানোর একটি উপায় লিনিয়ার বীজগণিত সহ, যদিও এটি ওভারকিল হতে পারে।

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

যেহেতু এই ইগেনভ্যালুগুলি X এর চক্রের সাথে মিলিত unityক্যের মূল, তাই এগুলি থেকে আমরা চক্রের আকার এবং তাদের সংখ্যাগুলি পুনরুদ্ধার করতে পারি। সুতরাং, আমাদের "স্বাক্ষর" কনজুগেশন পর্যন্ত অনুচ্ছেদটি সনাক্ত করে।


6

জে , 25 বাইট 23 বাইট 16 বাইট

মাইল ' মৌন সমাধান:

-:&([:/:~#&>)&C.

ওপির স্পষ্ট সমাধান:

c=:4 :'-://:~"1#&>C.&>x;y'   

C.চক্রের উপস্থাপনা তৈরি করতে অন্তর্নির্মিত ফাংশনটি ব্যবহার করে ক্রমাগত x এবং y এর একই চক্রের ধরন রয়েছে কিনা তা এটি পরীক্ষা করে ।

   4 1 3 2   c   4 2 1 3
1
   3 2 1 4   c   4 3 2 1
0
   2 1 3 4 5 7 6   c   1 3 2 5 4 6 7
1

1
পিপিসিজিতে আপনাকে স্বাগতম এবং প্রথম প্রথম পোস্টে। আমি আপনার পদ্ধতিটি সংক্ষিপ্ত -:&([:/:~#&>)&C.রূপটি ব্যবহার করে 16 বাইটে সংক্ষিপ্ত করে রেখেছি । এটি চেষ্টা করার জন্য এখানে একটি টিআইও লিঙ্ক।
মাইল 13

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

পিএস: আমরা ফাংশন অ্যাসাইনমেন্টের চরিত্রগুলিও গণনা করি না? c=:
ম্যাথিয়াস ডলিডন

1
@ ম্যাথিয়াসডোলিডন না, ডিফল্ট sensক্যমত্য অনুসারে, আমরা অ্যাসাইনমেন্টের জন্য প্রয়োজনীয় অক্ষর গণনা করি না, যেহেতু ফাংশনটি হ'ল ব্যবহৃত হতে পারে (প্রথম বন্ধনী সহ, তবে আমরা তাদের গণনা করি না)।
এরিক আউটগল্ফার

1
ঠিক আছে ! এটিকে বিবেচনায় নেওয়ার জন্য আমি শিরোনামের সুস্পষ্ট সমাধানের জন্য গণমাধ্যমকে পূর্ববর্তীভাবে আপডেট করেছি।
ম্যাথিয়াস ডলিডন

4

এমএটিএল , 20 19 17 16 বাইট

xY@!"&G@)@b)X=va

ইনপুট: দুটি কলাম ভেক্টর ( ;বিভাজক হিসাবে ব্যবহার করে )। আউটপুট: 1কনজুগেট, 0না থাকলে।

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

ব্যাখ্যা

ব্যবহৃত অনুমতি সম্পর্কে কোনও উপপাদ্য নেই (নিছক অজ্ঞতার বাইরে); কেবল নিষ্ঠুর শক্তি এবং এই দুটি সত্য:

  • দুই একাধিক বিন্যাসন জন্য পি এবং কুই , রচনা PQ ব্যবহার সমতূল্য পি উপাদান সূচক কুই

  • শর্তটি x = gyg −1 xg = gy এর সমতুল্য ।

মন্তব্য করা কোড:

x      % Implicitly input first permutation, x. Delete it. Gets copied into clipboard G
Y@     % Implicitly input second permutation, y. Push a matrix with all permutations
       % of its elements, each permutation on a different row. So each matrix row is
       % a permutation of [1 2 ...n], where n is the size of y
!      % Transpose. Now each permutation is a column
"      % For each column
  &G   %   Push x, then y
  @    %   Push current column. This is a candidate g permutation
  )    %   Reference indexing. This gives g composed with y
  @    %   Push current column again
  b    %   Bubble up. Moves x to the top of the stack
  )    %   Reference indexing. This gives x composed with g
  X=   %   Are they equal as vectors? Gives true or false
  v    %   Concatenate stack so far. The stack contains the latest true/false result
       %   and possibly the accumulated result from previous iterations
  a    %   Any: gives true if any element is true. This is the "accumulating" function
       % Implicit end. Implicit display

2

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

Equal@@(PermutationCycles[#,Sort[0#]&]&/@#)&

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


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

x_±y_:=Or@@(#[[x]]==y[[#]]&/@Permutations@x)

সিপি-1252 এনকোডিং ব্যবহার করে, যেখানে ±এক বাইট রয়েছে।

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


2

জেলি , 11 বাইট

Œ!©Ụ€ịị"®⁸e

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

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

Œ!©Ụ€ịị"®⁸e  Main link. Left argument: x. Right argument: y

Œ!©          Take all permutations g of x. Copy the result to the register.
   Ụ€        Grade up each; sort the indices of each permutation g by their
             corresponding values. For permutations of [1, ..., n], grading up
             essentially computes the inverse, g⁻¹.
     ị       Let each g⁻¹ index into y, computing g⁻¹y.
      ị"®    Let the results index into the corresponding g, computing g⁻¹yg.
         ⁸e  Test if x occurs in the result.

যতদূর আমি বুঝতে পেরেছি, এটি প্রকৃতপক্ষে yযা প্রতিটি সূচকে g⁻¹অন্যদিকে নয় the উদাহরণ দেখুন (4 1 2 3)(2 1 3 4) = (4 2 1 3),। আপনার পদ্ধতির সাথে এটির (1 4 2 3)পরিবর্তে দ্বিতীয় সূচকগুলি প্রথমটি তৈরি হবে। এটিকে বিবেচনায় নিয়ে, আমার কাছে একটি 12-বাইট সমাধান রয়েছে যা আমি এখনও খারাপ করব না। :-)
এরিক দি আউটগল্ফার

পছন্দ করেছেন
ডেনিস

@ ডেনিস কিন্তু ব্যাখ্যাটির ভিত্তিতে আমি এই সিদ্ধান্তে পৌঁছতে পারি নি, আমি Œ!©Ụ€⁹ịЀ®ị"⁸eবড় ধরনের পরিবর্তন করার পরে সংক্ষিপ্ত ব্যতীত আমার মতো কিছু ছিল (মূলত সমস্ত বিপরীত যুক্তির সাথে সূচি) except আমি মনে করি না যে g⁻¹ygএকই রকম gyg⁻¹। এছাড়াও, আমি মনে করি আপনার উত্তরগুলি সেই পরিবর্তনগুলি থেকেও উপকৃত হতে পারে, তবে, যেমনটি আগেই বলেছি, আমি এখনও মজাটি নষ্ট করতে চাই না।
এরিক আউটগল্ফার

হ্যাঁ, এটা ঠিক একই। তাহলে x = g⁻¹yg, যদি gxg⁻¹ = yতাই হয়, xএবং yবিবাহিত হয়।
ডেনিস

এইচএম, আমার মনে হচ্ছে আমার তখন আমার 12-বাইট সমাধানটি প্রকাশ করা উচিত:eŒ!ị"Ụị@¥€¥¥
এরিক দি আউটগল্ফার

1

কাস্তে , 9 বাইট

¤¦ṠmöLU¡!

রিটার্নস 1অনুবন্ধী এবং 0অ অনুবন্ধী জন্য। এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

একটি বিন্যাস এর conjugacy বর্গ পি এর এল = [1,2, .., এন] অন্তত প্রতিটি সংখ্যা সময়ের ধারণকারী multiset দ্বারা নির্ধারিত হয় এল অধীনে পি । যখন পি তালিকা বিন্যাসে নেওয়া হয়, আমি প্রতিস্থাপন করতে পারেন এল সঙ্গে পি এবং একই multiset পেতে। প্রোগ্রামটি প্রতিটি ইনপুটটির জন্য সংশ্লিষ্ট মাল্টিসিটটি গণনা করে এবং পরীক্ষা করে যদি একটি অপরের সাব-মাল্টিসেট হয়। যেহেতু তাদের একই সংখ্যক উপাদান রয়েছে, এটি একই মাল্টিসিট হওয়ার সমান।

¤¦ṠmöLU¡!  Implicit inputs: two lists of integers.
¤          Apply one function to both and combine with another function.
  ṠmöLU¡!  First function. Argument: a list P.
  Ṡm       Map this function over P:
       ¡!  iterate indexing into P,
      U    take longest prefix with unique elements,
    öL     take its length.
 ¦         Combining function: is the first list a subset of the other, counting multiplicities?

1

পার্ল, 61 58 57 বাইট

+2জন্য অন্তর্ভুক্তap

STDIN এ 2-লাইন হিসাবে 0-ভিত্তিক ক্রমবিন্যাস দিন

perl -ap '$_=[@1]~~[@1=map{-grep$_-$G[$i++%@G],@F=@G[@F]}@G=@F,0]'
3 0 2 1
3 1 0 2
^D

অ্যালগরিদম হল xnor এর সমাধানের ক্ষেত্রে একটি সামান্য প্রকরণ

কোডটির এই পুরানো সংস্করণটি আমার সর্বশেষতম পার্লের বেশ কয়েকটি ইনপুটগুলির জন্য একটি পার্ল বাগটি ফেলে এবং মূল ডাম্প ফেলে 5.26.1, তবে এটি একটি পুরানো পার্লের সাথে কাজ করে 5.16.3

@{$.}=map{-grep$_==$F[$i++%@F],@G=@F[@G]}@G=@F,0}{$_=@1~~@2

এটি সম্ভবত আমার পুরানো পার্লগল্ফ শত্রুর আর একটি উদাহরণ, পার্লটি সঠিকভাবে তার স্ট্যাকটিকে পুনরায় গণনা করে না।


1

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

(a,b,g=a=>b+a.map(h=(e,i)=>e-i&&1+h(a[e],i)).sort())=>g(a)==g(b)

যদি আমি অন্য উত্তরগুলি সঠিকভাবে পড়ে ফেলেছি, তবে সমস্যাটি সমস্ত উপাদানগুলির পিরিয়ড গণনা করা এবং দুটি তালিকায় প্রতিটি পিরিয়ডের সমান সংখ্যা রয়েছে তা যাচাই করার সমতুল্য। সম্পাদনা করুন: পিরিয়ডের চেয়ে কম গণনা করে @ আরনাউল্ডকে 1 বাইট ধন্যবাদ সংরক্ষণ করা হয়েছে। অ্যারেগুলিকে তুলনা করতে জাভাস্ক্রিপ্টের অদ্ভুত জবরদস্তি বিধিমালাকে অপমান করে @ আরনাউল্ডকে আরও একটি বাইট ধন্যবাদ সংরক্ষণ করা হয়েছে। আর একটি বাইট তরকারী করে বাঁচাতে পারত তবে তরকারির মুরগি না থাকলে তরকারি পছন্দ করি না।

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