কাস্টম লেবেল সহ ডিহিড্রাল গ্রুপ ডি 4 রচনা


14

দ্বিতলকোণ গ্রুপ ডি4 হয় প্রতিসাম্য গ্রুপ বর্গাকার, যে প্যাচসমূহ যে ঘুর্ণন এবং প্রতিচ্ছবি মাধ্যমে নিজেই একটি বর্গক্ষেত্র রুপান্তর করুন। এটি 8 টি উপাদান নিয়ে গঠিত: 0, 90, 180 এবং 270 ডিগ্রি দ্বারা আবর্তন এবং অনুভূমিক, উল্লম্ব এবং দুটি তির্যক অক্ষটি জুড়ে প্রতিচ্ছবি।

স্কোয়ারে অভিনয় করছেন ডি 4 এর 8 টি উপাদান।

ছবিগুলি সব থেকে এই সুন্দর পৃষ্ঠা থেকে ল্যারি রিডলের ।

এই চ্যালেঞ্জটি এই পদক্ষেপগুলি রচনা সম্পর্কে: দুটি চাল দেওয়া, আউটপুট মুভ যে এটি একের পর এক করার সমান। উদাহরণস্বরূপ, 5 সরানো 4 এর পরে মুভ 7 করা মুভ 5 করার মতোই।

রচনা উদাহরণ

নোট করুন যে অর্ডার পরিবর্তন করে 4 সরানোর পরে 7 টি সরানোর পরিবর্তে 6 টি সরানো হবে।

ফলাফলগুলি নীচে সারণিযুক্ত; এই হল Cayley টেবিল গ্রুপের ডি4 । উদাহরণস্বরূপ, ইনপুটস 7,4 আউটপুট 5 উত্পাদন করা উচিত ।

12345678123456781234567823418756341265874123786557681324685731427685421385762431

চ্যালেঞ্জ

আপনার লক্ষ্যটি এই অপারেশনটি যতটা সম্ভব কম কয়েকটি বাইটে প্রয়োগ করা, তবে কোডের সাথে সাথে আপনি এমন লেবেলগুলিও চয়ন করেন যা 1 থেকে 8 পর্যন্ত চালগুলি উপস্থাপন করে The লেবেলগুলি অবশ্যই 0 থেকে 255 বা 8 টির মধ্যে 8 টি স্বতন্ত্র সংখ্যা হতে হবে - অক্ষরের দ্বারা তাদের কোড পয়েন্ট উপস্থাপন করে।

আপনার কোডটি আপনি যে 8 টি চয়ন করেছেন তার মধ্যে দুটি লেবেল দেওয়া হবে এবং অবশ্যই সেই লেবেলটি আউটপুট দিতে হবে যা ডিহিড্রাল গ্রুপ D4 এ তাদের রচনার সাথে সামঞ্জস্য করে ।

উদাহরণ

বলুন যে আপনি যথাক্রমে 1, 8 থেকে 8 টি চলার জন্য C, O, M, P, U, T, E, R অক্ষর বেছে নিয়েছেন chosen তারপরে, আপনার কোডটি এই টেবিলটি প্রয়োগ করবে।

সিহেএমপিইউটিআরসিহেএমপিইউটিআরসিহেএমপিইউটিআরহেএমপিসিআরইউটিএমপিসিহেটিইউআরপিসিহেএমআরটিইউইউটিআরসিএমহেপিটিআরইউএমসিপিহেটিআরইউপিহেসিএমআরইউটিহেপিএমসি

ইনপুটগুলি E এবং P দেওয়া হয়েছে, আপনার ইউ কে আউটপুট করা উচিত Your

অনুলিপি করার জন্য পাঠ্য সারণী

1 2 3 4 5 6 7 8
2 3 4 1 8 7 5 6
3 4 1 2 6 5 8 7
4 1 2 3 7 8 6 5
5 7 6 8 1 3 2 4
6 8 5 7 3 1 4 2
7 6 8 5 4 2 1 3
8 5 7 6 2 4 3 1

Your choice of labels doesn't count against your code length.মন বিস্তারিত বলছি? যেমনটি দাঁড়িয়েছে, আমি ম্যাট্রিক্সকে আমার কোডটিতে হার্ডকোড করতে পারি এবং দাবি করতে পারি যে এটি আমার স্কোরের তুলনায় গণ্য নয়।
বেনজামিন আরউখার্ট

2
@ বেনজামিনউয়ার্কহার্ট আমি আপনার কোডের দৈর্ঘ্যটি আপনার কোডের দৈর্ঘ্য মাত্র বলার চেষ্টা করছিলাম এবং বলব যে মাল্টিডিজিট লেবেলগুলি বেছে নেওয়া অতিরিক্ত কিছু ব্যয় করতে পারে না। দেখে মনে হচ্ছে যে এই লাইনটি আরও বিভ্রান্তিকর সাহায্যকারী, সুতরাং আমি এটি সরিয়ে দেব।
xnor

উত্তর:


10

রুবি , 18 বাইট

->a,b{a+b*~0**a&7}

Ungolfed

->a,b{ (a+b*(-1)**a) % 8}  
# for operator precedence reasons, 
#-1 is represented as ~0 in the golfed version 

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

নিম্নলিখিত কোডিং নম্বর 0 থেকে 7 ব্যবহার করে

কোড স্থানীয় নেভিগেশন ক্রম:

Native     Effect                    Codes per
Code                                 Question
0          rotate 0 anticlockwise    1C
1 /        flip in y=x               7E
2 /|       rotate 90 anticlockwise   2O
3 /|/      flip in x axis            5U
4 /|/|     rotate 180 anticlockwise  3M
5 /|/|/    flip in y=-x              8R
6 /|/|/|   rotate 270 anticlockwise  4P
7 /|/|/|/  flip in y axis            6T

প্রশ্ন অনুসারে

Native     Effect                    Codes per
Code                                 Question
0          rotate 0 anticlockwise    1C
2 /|       rotate 90 anticlockwise   2O
4 /|/|     rotate 180 anticlockwise  3M
6 /|/|/|   rotate 270 anticlockwise  4P
3 /|/      flip in x axis            5U
7 /|/|/|/  flip in y axis            6T
1 /        flip in y=x               7E
5 /|/|/    flip in y=-x              8R

ব্যাখ্যা

/লাইন একটি উল্টানো প্রতিনিধিত্ব করে y=xএবং |y অক্ষের একটি উল্টানো প্রতিনিধিত্ব করে।

এটা এই দুই লাইন গোষ্ঠীবদ্ধ D4 এর symmetries কোন জেনারেট করতে পর্যায়ক্রমে আলোকসম্পাতের উদাহরণস্বরুপ সম্ভব /অনুসৃত দ্বারা |দেয় /|যা 90 ডিগ্রী বামাবর্তে একটি ঘূর্ণন হয়।

টানা ফ্লিপগুলির মোট সংখ্যা পাটিগণিত ম্যানিপুলেশনের জন্য খুব সুবিধাজনক উপস্থাপনা দেয়।

যদি প্রথম পদক্ষেপটি একটি ঘূর্ণন হয়, তবে আমরা সহজেই ফ্লপের সংখ্যা যুক্ত করতে পারি:

Rotate 90 degrees   +  Rotate 180 degrees = Rotate 270 degrees
/|                     /|/|                 /|/|/|

Rotate 90 degress   +  Flip in y=x        = Flip in x axis   
/|                    /                     /|/

যদি প্রথম পদক্ষেপটি একটি প্রতিচ্ছবি হয় তবে আমরা দেখতে পাই আমাদের একে অপরের পাশে কিছু অভিন্ন প্রতিচ্ছবি /এবং |চিহ্ন রয়েছে। প্রতিবিম্বটি স্ব-বিপরীত হিসাবে আমরা এই ফ্লিপগুলি একে একে বাতিল করতে পারি। সুতরাং আমাদের অন্যটি থেকে একটি পদক্ষেপ বিয়োগ করতে হবে

Flip in x axis     +  Flip in y=x        = Rotate 90 degrees
/|/                   /                    /|/ / (cancels to) /|

Flip in x axis     +  Rotate 90 degrees  = Flip in y=x
/|/                   /|                   /|/ /| (cancels to ) / 

1
আপনি প্রতিস্থাপন করতে পারেন ~0সঙ্গে 7মডুলার পাটীগণিতের কারণ।
নিডজেজেকোব

দুর্দান্ত পদ্ধতি ও ব্যাখ্যা! ফ্লিপগুলি বাতিল করার ফলে এটি কেন স্পষ্টভাবে স্পষ্ট হয় যে লেবেলগুলি কেন যোগ করে বা বিয়োগ করে।
xnor

7

ওল্ফ্রাম ভাষা (গণিত) , 31 বাইট

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

BitXor[##,2Mod[#,2]⌊#2/4⌋]&

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

ব্যাখ্যা:

D4F2

D4U(3,2):={(1ab01c001)a,b,cF2}

এবং আমাদের আছে

(1একটি11011001)(1একটি22012001)=(1একটি1+ +একটি21+ +2+ +একটি12011+ +2001),

যা সহজেই বিটওয়াইজ অপারেশনে লেখা যেতে পারে।


একটি চমত্কার উপার্জন - আমি এই আইসোমরফিজম সম্পর্কে জানতাম না।
xnor

5

ওল্ফ্রাম ভাষা (ম্যাথমেটিকা) , 51 বাইট

⌊#/4^IntegerDigits[#2,4,4]⌋~Mod~4~FromDigits~4&

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

লেবেল ব্যবহার করা {228, 57, 78, 147, 27, 177, 198, 108}

এগুলি {3210, 0321, 1032, 2103, 0123, 2301, 3012, 1230}4 বেসে রয়েছে সৌভাগ্যক্রমে, 256 = 4 ^ 4।


নিম্ন স্তরের বাস্তবায়ন, এছাড়াও 51 বাইট

Sum[4^i⌊#/4^⌊#2/4^i⌋~Mod~4⌋~Mod~4,{i,0,3}]&

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



4

পাইথন 2 , 26 23 21 বাইট

lambda x,y:y+x*7**y&7

এটি অনলাইন চেষ্টা করুন! ডিহিড্রাল গ্রুপের কেলে টেবিলের উত্তর আমার পোর্টডি3। সম্পাদনা: @ নাইডজেজকোবকে ধন্যবাদ 3 টি বাইট সংরক্ষণ করা হয়েছে অপারেটরটি and(পরিবর্তে xnor) প্রস্তাব দেওয়ার জন্য @ xnor কে 2 বাইট সংরক্ষণ করা হয়েছে । নিম্নলিখিত ম্যাপিং ব্যবহার:

 id | r1 | r2 | r3 | s0 | s1 | s2 | s3 
----+----+----+----+----+----+----+----
 0  | 2  | 4  | 6  | 1  | 3  | 5  | 7  

2
আপনি প্রতিস্থাপন করতে পারেন (-1)সঙ্গে 7-3 বাইট জন্য মডুলার পাটীগণিতের কারণ।
নিডজেজেকোব

@ নিডজেজেকোব ধন্যবাদ! লজ্জাজনক যে আলিফাল্ফ তার উত্তরটি ২৮ থেকে ২২ বাইটে নামিয়ে দিলেও ...
নীল

চমৎকার সমাধান! অপারেটরের অগ্রাধিকার পরিবর্তন করে আপনি y+x*7**y&7
প্যারেনস

@ এক্সনোর ধন্যবাদ, আমি আবার আলেফালফার চেয়ে এগিয়ে আছি!
নীল

3

টিআই-বেসিক, 165 বাইট

Ans→L₁:{.12345678,.23417865,.34126587,.41238756,.58671342,.67583124,.75862413,.86754231→L₂:For(I,1,8:10fPart(.1int(L₂(I)₁₀^(seq(X,X,1,8:List▶matr(Ans,[B]:If I=1:[B]→[A]:If I-1:augment([A],[B]→[A]:End:[A](L₁(1),L₁(2

ইনপুট হ'ল দৈর্ঘ্যের দুটি তালিকা Ans
আউটপুট হল সংখ্যাটি(row, column) টেবিলের সূচকের ।

এর চেয়ে আরও ভাল কম্প্রেশন পদ্ধতি থাকতে পারে যা বাইটগুলি সাশ্রয় করতে পারে তবে আমাকে এটি সন্ধান করতে হবে।

উদাহরণ:

{1,2
           {1 2}
prgmCDGF1B
               2
{7,4
           {7 4}
prgmCDGF1B
               5

ব্যাখ্যা:
(পঠনযোগ্যতার জন্য নিউলাইনগুলি যুক্ত করা হয়েছে))

Ans→L₁                              ;store the input list into L₁
{.123456 ... →L₂                    ;store the compressed matrix into L₂
                                    ; (line shortened for brevity)
For(I,1,8                           ;loop 8 times
10fPart(.1int(L₂(I)₁₀^(seq(X,X,1,8  ;decompress the "I"-th column of the matrix
List▶matr(Ans,[B]                   ;convert the resulting list into a matrix column and
                                    ; then store it into the "[B]" matrix variable
If I=1                              ;if the loop has just started...
[B]→[A]                             ;then store this column into "[A]", another matrix
                                    ; variable
If I-1                              ;otherwise...
augment([A],[B]→[A]                 ;append this column onto "[A]"
End
[A](L₁(1),L₁(2                      ;get the index and keep it in "Ans"
                                    ;implicit print of "Ans"

এখানে একটি 155 বাইট সমাধান রয়েছে, তবে এটি ম্যাট্রিক্সকে হার্ডকোড করে এবং সূচকটি পায়।
আমি এটি আরও বিরক্তিকর বলে মনে করেছি, তাই আমি এটিকে আমার অফিসিয়াল সাবমিশন হিসাবে তৈরি করি নি:

Ans→L₁:[[1,2,3,4,5,6,7,8][2,3,4,1,8,7,5,6][3,4,1,2,6,5,8,7][4,1,2,3,7,8,6,5][5,7,6,8,1,3,2,4][6,8,5,7,3,1,4,2][7,6,8,5,4,2,1,3][8,5,7,6,2,4,3,1:Ans(L₁(1),L₁(2

দ্রষ্টব্য: টিআই-বেসিক একটি টোকেনাইজড ভাষা। অক্ষর গণনা বাইট গণনা সমান হয় না


আপনি ব্যবহার এক বাইট মত শেভ করা যায়নি 0-7করতে1-8
হওয়া ASCII শুধুমাত্র

আমি পারতাম, তবে তার পরে ম্যাট্রিক্সের প্রতিটি উপাদানগুলিতে একটি করে যুক্ত করতে আমাকে আরও দুটি ব্যবহার করতে হবে। ভাল চিন্তা, তবে!
তাউ

ভুল, আপনি লালের যে কোনও সেট ব্যবহার করতে পারেন, সুতরাং আপনাকে আরও দুটি ব্যবহার করতে হবে না
এএসসিআইআই-

এটি সত্য হতে পারে তবে টিআই-বেসিকের ম্যাট্রিকগুলি 1-সূচকযুক্ত। এই জমাটি কাঙ্ক্ষিত মান পাওয়ার জন্য এটির উপর নির্ভর করে (যদি আপনি এটি বোঝাচ্ছেন তবে আমি ভুল হলে আমাকে সংশোধন করুন)
তাউ

আহ, এ সম্পর্কে ভুলে গেছেন
এএসসিআইআই-

3

জেলি , 6 বাইট

N⁹¡+%8

একটি ডায়াডিক লিংক প্রথম রূপান্তরটি ডানদিকে এবং দ্বিতীয় রূপান্তরটি বামে গ্রহণ করে যা সম্মিলিত রূপান্তর দেয়।

রূপান্তরগুলি যেখানে:

as in question:  1    2    3    4    5    6    7    8
transformation: id  90a  180  90c  hor  ver  +ve  -ve
  code's label:  0    2    4    6    1    5    7    3

এটি অনলাইন চেষ্টা করুন! ... অথবা প্রশ্নের মধ্যে থাকা লেবেলের উপরে টেবিলটি ম্যাপ করা দেখুন।

(6 টি বাইটার ব্যবহার করে অন্য ক্রমে যুক্তিগুলি নেওয়া যেতে পারে _+Ḃ?%8)

কিভাবে?

প্রতিটি লেবেল হ'ল বিকল্প horএবং +veরূপান্তরগুলির ক্রম দৈর্ঘ্য যা রূপান্তর (যেমন 180সমতুল্য hor, +ve, hor, +ve) এর সমান ।

A,Bসংমিশ্রণটি দুটি সমতুল্য সিকোয়েন্সের সংমিশ্রনের সমতুল্য, এবং সরলকরণকে বিয়োগ বা যোগের আটটি মডুলোর ...

প্রশ্নের 7, 4উদাহরণ ব্যবহার করে আমাদের কাছে +ve, 90cযা রয়েছে:
hor, +ve, hor, +ve, hor, +ve, hor , hor, +ve, hor, +ve, hor, +ve

... কিন্তু যেহেতু hor, horহয় idআমরা আছে:
hor, +ve, hor, +ve, hor, +ve , +ve, hor, +ve, hor, +ve

... এবং যেহেতু +ve, +veহয় idআমরা আছে:
hor, +ve, hor, +ve, hor , hor, +ve, hor, +ve

... এবং আমরা এই বাতিলকরণগুলিকে এখানে পুনরাবৃত্তি করতে পারি:
hor
.. দৈর্ঘ্য ( 7-6=1) এর বিয়োগের ক্ষেত্রে উপযুক্ত ।

যখন কোনও বাতিলকরণ সম্ভব না হয় আমরা কেবল দৈর্ঘ্য যুক্ত করি (যেমন 90a, 180 2+4=6 90c)।

শেষ পর্যন্ত, নোট করুন আটটির দৈর্ঘ্যের ক্রম idযাতে আমরা ফলস্বরূপ অনুক্রমের দৈর্ঘ্য মডুলো আটটি নিতে পারি।

N⁹¡+%8 - Link: B, A
  ¡    - repeat (applied to chain's left argument, B)...
 ⁹     - ...times: chain's right argument, A
N      - ...action: negate  ...i.e. B if A is even, otherwise -B
   +   - add (A)
    %8 - modulo eight

ডিক্সিকোগ্রাফিকাল পারমিটেশন ইনডেক্স ব্যবহার করে এটি প্রয়োগের চেয়ে এটি 1 বাইট আরও কম :

œ?@ƒ4Œ¿

... একটি মোনাডিক লিঙ্ক গ্রহণ করছে [first, second], লেবেল সহ:

as in question:  1    2    3    4    5    6    7    8
transformation: id  90a  180  90c  hor  ver  +ve  -ve
  code's label:  1   10   17   19   24    8   15    6

3

জাভাস্ক্রিপ্ট (নোড.জেএস) , 22 17 বাইট

(x,y)=>y+x*7**y&7

এটি অনলাইন চেষ্টা করুন! ডিহিড্রাল গ্রুপের কেলে টেবিলের উত্তর আমার পোর্টডি3তবে আমার পাইথন উত্তরের পরামর্শগুলি ব্যবহার করে গল্ফড হয়ে গেল। নিম্নলিখিত ম্যাপিং ব্যবহার:

 id | r1 | r2 | r3 | s0 | s1 | s2 | s3 
----+----+----+----+----+----+----+----
 0  | 2  | 4  | 6  | 1  | 3  | 5  | 7  

জাভাস্ক্রিপ্টের পুরানো সংস্করণগুলি 22 বাইটের জন্য বিভিন্ন উপায়ে সমর্থন করা যেতে পারে:

(x,y)=>(y&1?y-x:y+x)&7
(x,y)=>y-x*(y&1||-1)&7
(x,y)=>y+x*(y<<31|1)&7

ছোট উন্নতি - ইনপুট কারি করে একটি বাইট সংরক্ষণ করুন x=>y=>(y&1?y-x:y+x)&7তারপরে ব্যবহার করে আপনার ফাংশনটি কল করুন f(x)(y)
ডানা


2

এলম , 42 বাইট 19 বাইট

\a b->and 7<|b+a*7^b

নীলের নোড.জেএস সংস্করণটির পোর্ট

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

পূর্ববর্তী সংস্করণ:

\a b->and 7<|if and 1 a>0 then a-b else a+b

1
প্রথম উত্তর! আমি কীভাবে এলমে প্রোগ্রাম করবেন তা জানি না, তবে কী স্পেসগুলি সরিয়ে ফেলা সম্ভব?
মিল্কিওয়ে 90

@ মিল্কিওয়ে ৯৯০ না, এটি সি-জাতীয় ভাষাগুলির অর্থের f xমতো, এমএল-ভিত্তিক ভাষার অন্যতম প্রধান পার্থক্য যা একটি ফাংশন কল f(x)। এবং আপনি এটি সাহায্য করতে পারবেন না। তবে এটি অনেকগুলি গল্ফ নন-দৃশ্যে সত্যই সুন্দর এবং কম বিশৃঙ্খলাযুক্ত হতে পারে। এলমের বিটওয়াইস অপারেটর নেই (যেমন &) তাই and x yএখানে কেবল একটি সরল ফাংশন কল।
এভেজেনি ম্যালিউটিন

আমি দেখুন, ব্যাখ্যা করার জন্য ধন্যবাদ!
মিল্কিওয়ে 90

@ মিল্কিওয়ে 90 আসলে, আমি <|প্রথম বন্ধনী পরিবর্তে পাইপ অপারেটর ব্যবহার করে একটি স্থান (এবং একটি বাইট) কেটে ফেলতে সক্ষম হয়েছি । যে প্রশ্ন করার জন্য ধন্যবাদ!
এভেজেনি ম্যালিউটিন

আপনাকে স্বাগতম! আপনি যদি কোনও নতুন সমাধান তৈরি করতে আগ্রহী হন তবে আপনি দেরিইনতম বাইট (আমাদের এসই চ্যাটরুম) থেকে সাহায্য চাইতে পারেন। আপনি যদি কোডিং চ্যালেঞ্জ তৈরি করে থাকেন তবে আপনি এটি স্যান্ডবক্সে পোস্ট করতে পারেন (মেটাতে) এবং theনবিংশতম বাইটে প্রতিদিন প্রশ্নের লিঙ্কটি পোস্ট করতে পারেন।
মিল্কওয়াই 90

1

পাইথন, 82 71 বাইট

0-7

-11 বাইটস কেবলমাত্র ASCII- এর জন্য ধন্যবাদ

lambda a,b:int("27pwpxvfcobhkyqu1wrun3nu1fih0x8svriq0",36)>>3*(a*8+b)&7

Tio



এছাড়াও 76 , এবং -2 কারণ f=এটি পুনরাবৃত্ত না হওয়ার কারণে অপসারণ করা যেতে পারে
ASCII-

অপেক্ষা করুন চিপ, এটি কাজ করে না
ASCII-


দেখে মনে হচ্ছে আপনি int.from_bytesএবং ইউটিএফ বহির্ভূত এনকোডিং দিয়ে আরও ভাল করতে পারবেন , তবে ... টিআইও
-

0

স্কালা , 161 বাইট

লেবেল হিসাবে কম্পিউটার নির্বাচন করা হচ্ছে ।

val m="0123456712307645230154763012675446570213574620316574310274651320"
val s="COMPUTER"
val l=s.zipWithIndex.toMap
def f(a: Char, b: Char)=s(m(l(a)*8+l(b))-48)

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


1
এটি কোড গল্ফ: | আপনার এটিকে যতটা সম্ভব সংক্ষিপ্ত করার কথা
ASCII-


হ্যাঁ, আমি নিজেকে দেশীয় 0-7 নয়, স্কেলা এবং রিয়েল লেবেলগুলির সাথে যেতে চ্যালেঞ্জ জানিয়েছি। এটি বীট করার চেষ্টা করুন।
পিটার



0

স্কালা , 70 বাইট

লেবেল হিসাবে 0-7 নেটিভ পূর্ণসংখ্যা নির্বাচন করা।

ম্যাট্রিক্সকে 32 বাইট এএসসিআইআই স্ট্রিংয়ে সংকুচিত করে প্রতিটি সংখ্যার এন0, এন 1 কে 1 অক্ষর সি = এন0 + 8 * এন 1 + 49 এ সংযুক্ত করুন। 49 থেকে শুরু করে এনকোড করা স্ট্রিংটিতে আমাদের নেই।

(a:Int,b:Int)=>"9K]oB4h]K9Vh4BoVenAJne3<_X<AX_J3"(a*4+b/2)-49>>b%2*3&7

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




-3

ওল্ফ্রাম ভাষা (ম্যাথমেটিকা), 7 বাইট (ইউটিএফ -8 এনকোডিং)

#⊙#2&

দুটি যুক্তি গ্রহণ করে একটি খাঁটি ফাংশন। প্রতীকটি এখানে যেমন প্রকাশিত হয়েছে তা আসলে ম্যাথমেটিকার ব্যক্তিগত ইউনিকোড প্রতীক F3DE (3 বাইট), যা ফাংশনটি উপস্থাপন করে PermutationProduct

ম্যাথমেটিকা ​​ডিহাইড্রাল গ্রুপগুলি সম্পর্কে জানেন এবং Cyclesকমান্ডটি ব্যবহার করে এটি বিভিন্ন গোষ্ঠীর উপাদানকে ক্রমান্বকরণ হিসাবে উপস্থাপন করে । উদাহরণস্বরূপ, কমান্ড চালানো

GroupElements[DihedralGroup[4]]

ফলাফল দেয়:

{Cycles[{}], Cycles[{{2, 4}}], Cycles[{{1, 2}, {3, 4}}], 
 Cycles[{{1, 2, 3, 4}}], Cycles[{{1, 3}}], Cycles[{{1, 3}, {2, 4}}], 
 Cycles[{{1, 4, 3, 2}}], Cycles[{{1, 4}, {2, 3}}]}

PermutationProduct এই ফর্মটি যখন লিখিত হয় তখন গোষ্ঠী উপাদানগুলিকে গুণ করে is

যেহেতু আমাদের নিজস্ব লেবেলগুলি বেছে নেওয়ার অনুমতি দেওয়া হয়েছে, এই ফাংশনটি গ্রুপ উপাদানগুলির জন্য এই লেবেলগুলিকে ধরে নেয়; সমস্যাযুক্ত পোস্টগুলির মধ্যে এই লেবেলগুলির মধ্যে সহযোগিতা প্রদান করেছেন:

Cycles[{}] -> 1
Cycles[{{1, 2, 3, 4}}] -> 2
Cycles[{{1, 3}, {2, 4}}] -> 3
Cycles[{{1, 4, 3, 2}}] -> 4
Cycles[{{2, 4}}] -> 5
Cycles[{{1, 3}}] -> 6
Cycles[{{1, 2}, {3, 4}}] -> 7
Cycles[{{1, 4}, {2, 3}}] -> 8

tl; dr একটি বিল্টিন আছে।


8
লেবেলগুলি 0 থেকে 255 বা একক বাইট হতে হবে।
xnor

যথেষ্ট ভাল (আমি নির্বিশেষে এই ফাংশনটি আবিষ্কার করে খুশি)। ওপিতে আপনি কি তা পরিষ্কার করতে পারেন? এখনই এটি "আপনার নিজস্ব লেবেলগুলি চয়ন করুন" (জোর দেওয়া) এর মতো পড়েছে, তারপরে সম্ভাব্য কয়েকটি পছন্দ ("আপনি হতে পারেন ...")।
গ্রেগ মার্টিন

1
ওহ, আমি দেখছি আপনি এটি কীভাবে পড়ছেন; এখানে অস্পষ্ট থাকার জন্য এবং আপনাকে ভুল পথে নিয়ে যাওয়ার জন্য দুঃখিত আমাকে এটি উচ্চারণ করার চেষ্টা করুন।
xnor
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.