प्रत्येक क्षेत्र के आकार के लिए एक आदिम तत्व का उत्पादन


16

परिमित क्षेत्र का एक आदिम तत्व क्षेत्र के गुणक समूह का एक जनरेटर है। दूसरे शब्दों में, alphaमें F(q)एक आदिम तत्व कहा जाता है अगर यह में एक आदिम q−1वें जड़ एकता है F(q)। इसका मतलब यह है कि सभी गैर-शून्य तत्वों को कुछ (सकारात्मक) पूर्णांक के F(q)रूप में लिखा जा सकता है ।alpha^ii

क्षेत्र के सभी तत्वों को F_{2^k}ज्यादा से ज्यादा के बहुआयामी पद के रूप में लिखा जा सकता है k-1गुणांक कि या तो साथ 1या 0। इसे पूरा करने के लिए, आपके कोड को डिग्री के एक अप्रासंगिक बहुपद का उत्पादन करने की भी आवश्यकता होती है kजो आपके द्वारा उपयोग किए जाने वाले क्षेत्र को परिभाषित करता है।

कार्य कोड लिखा जाता है जो क्रम में F_{2^k}प्रत्येक के लिए आपके चुनने के एक आदिम तत्व को आउटपुट करता है k = 1 .. 32

आपके आउटपुट को बस kकिसी भी प्रारूप में आदिम तत्व के गुणांक को सूचीबद्ध करना होगा जो आपको पसंद है और फिर एक अलग लाइन k+1पर इरेड्यूसिएबल बहुपद के तत्वों को। kयदि संभव हो तो प्रत्येक मान के लिए आउटपुट को अलग करें ।

आपका कोड तब तक आपको पसंद आ सकता है जब तक आप अपना जवाब प्रस्तुत करने से पहले उसे पूरा करने के लिए दौड़ चुके हों।

आप किसी भी बिलिन या लाइब्रेरी फ़ंक्शन का उपयोग नहीं कर सकते हैं जो एक परिमित क्षेत्र के आदिम तत्वों को लौटाता है या परीक्षण करता है कि क्या तत्व आदिम है।

एक उदाहरण

के लिए k = 1केवल आदिम तत्व है 1

हमारे लिए k = 2है F_4। 4 तत्व हैं {0, 1, x, x + 1}इसलिए दो आदिम तत्व हैं xऔर x + 1। तो कोड उत्पादन कर सकता है

1 1
1 1 1

उदाहरण के लिए गुणांक के रूप में जहां दूसरी पंक्ति इरेड्यूसबल बहुपद है जो इस मामले x^2+x+1में गुणांक है 1 1 1


4
कोई उदाहरण मिला?
ओकेक्स

1
क्या हम बहुपत्नी और / या क्षेत्र तत्वों को भी आउटपुट कर सकते हैं जो एक पूर्णांक के बिट्स के रूप में कूटबद्ध करते हैं?
orlp

@orlp हां बिल्कुल।

1
मुझे लगता है कि Pari / GP एकमात्र ऐसी भाषा है, जिसमें इसके लिए अंतर्निहित है
एलेफल्फा

जवाबों:


2

परी / जीपी , 114 बाइट्स

एक और सवाल में isaacg के जवाब से प्रेरित ।

for(n=1,32,for(i=1,2^n,if(sumdiv(2^n-1,d,Mod(x,f=Mod(Pol(binary(2*2^n-i)),2))^d==1)==1,print([x,lift(f)]);break)))

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


यदि बिल्ट-इन की अनुमति है:

परी / जीपी , 61 बाइट्स (गैर-प्रतिस्पर्धात्मक)

for(i=1,32,print([ffprimroot(ffgen(f=ffinit(2,i))),lift(f)]))

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


4

गणितज्ञ, 127 बाइट्स

Do[For[i=2*2^n,PolynomialMod[x^Divisors[2^n-1]+1,i~IntegerDigits~2~FromDigits~x,Modulus->2]~Count~0!=1,i--];Print@{2,i},{n,32}]

स्पष्टीकरण:

xn2n1x2n11xi1i2n1

आउटपुट:

8589934581111111111111111111111111111110101

x32+x31+x30+x29+x28+x27+x26+x25+x24+x23+x22+x21+x20+x19+x18+x17+x16+एक्स15+एक्स14+एक्स13+एक्स12+एक्स1 1+एक्स10+एक्स9+एक्स8+एक्स7+एक्स6+एक्स5+एक्स4+एक्स2+1

{2,3}

{2,7}

{} 2,13

{} 2,25

{} 2,61

{} 2,115

{2253}

{} 2,501

{} 2,1019

{} 2,2041

{} 2,4073

{} 2,8137

{} 2,16381

{} 2,32743

{} 2,65533

{} 2,131053

{} 2,262127

{} 2,524263

{} 2,1048531

{} 2,2097145

{} 2,4194227

{} 2,8388589

{} 2,16777213

{} 2,33554351

{} 2,67108849

{} 2,134217697

{} 2,268435427

{} 2,536870805

{} 2,1073741801

{} 2,2147483533

{} 2,4294967287

{} 2,8589934581

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