क्या समूह चक्रीय है?


21

परिचय

यदि आप पहले से ही जानते हैं कि चक्रीय समूह क्या है, तो आप इस हिस्से को छोड़ सकते हैं।

एक समूह ने एक सेट और एक साहचर्य द्विआधारी आपरेशन द्वारा परिभाषित किया गया है $(यह है कि, (a $ b) $ c = a $ (b $ c)। वहाँ समूह में ठीक एक तत्व मौजूद है eजहां a $ e = a = e $ aसभी के लिए aसमूह (में पहचान ।) हर तत्व के लिए aसमूह में वहां मौजूद ठीक एक bऐसा है कि a $ b = e = b $ a( उलटा ) । a, bसमूह में प्रत्येक दो तत्वों के लिए, a $ bसमूह ( बंद ) में है।

के स्थान पर हम लिख सकते a^nहैं a$a$a$...$a

aसमूह में किसी भी तत्व द्वारा उत्पन्न चक्रीय उपसमूह वह <a> = {e, a, a^2, a^3, a^4, ..., a^(n-1)}जगह है जहां nउपसमूह का क्रम (आकार) है (जब तक कि उपसमूह अनंत नहीं है)।

एक समूह चक्रीय है अगर यह उसके तत्वों में से एक द्वारा उत्पन्न किया जा सकता है।

चुनौती

एक परिमित समूह के लिए केली तालिका (उत्पाद तालिका) को देखते हुए, यह निर्धारित करें कि यह चक्रीय है या नहीं।

उदाहरण

आइए निम्नलिखित केली तालिका पर एक नज़र डालें:

1 2 3 4 5 6
2 3 1 6 4 5
3 1 2 5 6 4
4 5 6 1 2 3
5 6 4 3 1 2
6 4 5 2 3 1

(यह डिहड्रल ग्रुप 3, D_3 के लिए केली टेबल है)।

यह 1-अनुक्रमित है, इसलिए यदि हम इसका मूल्य ढूंढना चाहते हैं, तो हम 5 $ 3तीसरी पंक्ति पर पांचवें कॉलम में देखते हैं (ध्यान दें कि ऑपरेटर आवश्यक रूप से सराहनीय नहीं है, इसलिए 5 $ 3आवश्यक नहीं है कि 3 $ 5हम इसके बराबर हैं । हम यहां 5 $ 3 = 6भी देखें) 3 $ 5 = 4)।

हम <3>साथ शुरू करके पा सकते हैं [3], और फिर जब सूची अद्वितीय है, तो अंतिम तत्व और जनरेटर (3) के उत्पाद को संलग्न करें। हमें मिलता है [3, 3 $ 3 = 2, 2 $ 3 = 1, 1 $ 3 = 3]। हम यहां उपसमूह के साथ रुकते हैं {3, 2, 1}

यदि आप के <1>माध्यम से गणना करते हैं <6>तो आप देखेंगे कि समूह में कोई भी तत्व पूरे समूह को उत्पन्न नहीं करता है। इस प्रकार, यह समूह चक्रीय नहीं है।

परीक्षण के मामलों

इनपुट एक मैट्रिक्स के रूप में दिया जाएगा, एक सत्य / मिथ्या निर्णय मूल्य के रूप में आउटपुट।

[[1,2,3,4,5,6],[2,3,1,6,4,5],[3,1,2,5,6,4],[4,5,6,1,2,3],[5,6,4,3,1,2],[6,4,5,2,3,1]] -> False (D_3)
[[1]] -> True ({e})
[[1,2,3,4],[2,3,4,1],[3,4,1,2],[4,1,2,3]] -> True ({1, i, -1, -i})
[[3,2,4,1],[2,4,1,3],[4,1,3,2],[1,3,2,4]] -> True ({-1, i, -i, 1})
[[1,2],[2,1]] -> True ({e, a} with a^-1=a)
[[1,2,3,4,5,6,7,8],[2,3,4,1,6,7,8,5],[3,4,1,2,7,8,5,6],[4,1,2,3,8,5,6,7],[5,8,7,6,1,4,3,2],[6,5,8,7,2,1,4,3],[7,6,5,8,3,2,1,4],[8,7,6,5,4,3,2,1]] -> False (D_4)
[[1,2,3,4,5,6],[2,1,4,3,6,5],[3,4,5,6,1,2],[4,3,6,5,2,1],[5,‌​6,1,2,3,4],[6,5,2,1,‌​4,3]] -> True (product of cyclic subgroups of order 2 and 3, thanks to Zgarb)
[[1,2,3,4],[2,1,4,3],[3,4,1,2],[4,3,1,2]] -> False (Abelian but not cyclic; thanks to xnor)

आपको गारंटी दी जाएगी कि इनपुट हमेशा एक समूह है।

आप इनपुट को 0-अनुक्रमित मान के रूप में ले सकते हैं।


क्या 0-अनुक्रमित इनपुट की अनुमति है? (जैसे [[0,1,2,3],[1,2,3,0],[2,3,0,1],[3,0,1,2]])?
नील

@ नील हाँ; मैं बताना भूल गया। धन्यवाद!
हाइपरन्यूट्रिनो

5
आपको परीक्षण मामलों में अपने समूह तत्वों के लेबल का प्रीमियर करना चाहिए। अभी तालिका की पहली पंक्ति और स्तंभ हमेशा है [1..n]जो कुछ उत्तरों में खामियों को छिपा सकता है।
लिन

3
यह जाँचता है कि क्या समूह एबेलियन परीक्षण मामलों को पारित करने के लिए पर्याप्त है। Z_2 * Z_2 जैसे परीक्षण मामले इसे ठीक करेंगे।
xnor

2
@ हेपरन्यूट्रिनो: यह स्वयं के साथ दो-तत्व समूह का प्रत्यक्ष उत्पाद है - जिसे क्लेन चार-समूह के रूप में भी जाना जाता है ।
हेनिंग मैखोलम

जवाबों:


8

जे , 8 बाइट्स

1:e.#@C.

इसे ऑनलाइन आज़माएं!

व्याख्या

1:e.#@C.  Input: matrix M
      C.  Convert each row from a permutation to a list of cycles
    #@    Number of cycles in each row
1:        Constant function 1
  e.      Is 1 a member of the cycle lengths?

यह भी हो सकता है 1 e.#@C., fwiw
कॉनर ओ'ब्रायन

हुह, जे बीट जेली‽
एड्म सिप

@ Adám जेली के पास प्रत्यक्ष और चक्र संकेतन के बीच क्रमपरिवर्तन को बदलने के लिए एक बेसिन नहीं है। मैं शायद उन्हें बाद में परमाणुओं के रूप में जोड़ सकता हूं, जो ŒCL€1eजेली में 6 बाइट्स के लिए बना रहा हूं ।
मील

8

भूसी , 11 10 9 बाइट्स

VS≡`ȯU¡!1

1 के आधार पर। यदि कोई मौजूद है, तो एक जनरेटर का सूचकांक लौटाता है, अन्यथा। इसे ऑनलाइन आज़माएं!

व्याख्या

V          Does any row r of the input satisfy this:
      ¡!    If you iterate indexing into r
   `    1   starting with 1
    ȯU      until a repetition is encountered,
 S≡         the result has the same length as r.


3

जावास्क्रिप्ट (ईएस 6), 52 बाइट्स

a=>a.some(b=>!a[new Set(a.map(_=>r=b[r],r=0)).size])


2

जेली , 15 बाइट्स

JŒ!ị@€µṂ⁼Jṙ'’$$

इसे ऑनलाइन आज़माएं!

पहला मूर्खतापूर्ण विचार जो मन में आया: आइसोमॉर्फिज़्म के लिए जेड एन की जाँच करें । (यह कोड O (n) है ...)

JŒ!ị@€             Generate all ways to denote this group.
                     (by indexing into every permutation of 1…n)
      µṂ⁼          Is the smallest one equal to this?
         Jṙ'’$$      [[1 2 …  n ]
                      [2 3 …  1 ]    (the group table for Z_n)
                      [… … …  … ]
                      [n 1 … n-1]]

हुह यह एक दिलचस्प दृष्टिकोण है; ऐसा कभी नहीं सोचा था! +1
हाइपरएनुट्रीनो

2

आर , 101 97 बाइट्स

function(m)any(sapply(1:(n=nrow(m)),function(x)all(1:n%in%Reduce(`[`,rep(list(m[x,]),n),x,T,T))))

सभी परीक्षण मामलों की जाँच करें

यह बस <g>प्रत्येक के लिए गणना करता है g \in Gऔर फिर परीक्षण G \subseteq <g>करता है यदि, तो जाँचता है कि क्या उनमें से कोई भी सत्य है। हालाँकि, जब से हम हमेशा $gदाईं ओर आवेदन करते हैं, हम हर बार उपयोग करने के बजाय परिणामों को जमा करने , लागू करने के परिणाम के साथ उस पंक्ति में m[g,]( gवें पंक्ति) और फिर उस पंक्ति में अनुक्रमणित करते हैं , जिससे लगभग 4 बाइट बचती हैं।$gm[g,g$g]


1

क्लोजर, 68 बाइट्स

#(seq(for[l % :when(apply distinct?(take(count l)(iterate l 0)))]l))

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.