কপরিমে শব্দটি কি?


18

একটি শব্দ দেওয়া হয়েছে, প্রতিটি বর্ণকে ইংরেজী বর্ণমালার সংখ্যার মতোই আচরণ করুন (সুতরাং a1 bহয়ে যায়, 2 হয়, z26 হয় এবং আরও) এবং ডুপ্লিকেটগুলি সহ সমস্তগুলি যুগলভাবে কপিরাইটযুক্ত কিনা তা পরীক্ষা করুন ।

ইনপুট হ'ল ছোট হাতের অক্ষর ইংরেজি বর্ণের একটি শব্দ। শব্দটি কপিরাইট হলে আউটপুটটি হ'ল: সত্যবাদী / মিথ্যা মানগুলি তবে সেগুলির দুটি মাত্র রূপ। স্ট্যান্ডার্ড লুফোলগুলি নিষিদ্ধ।

পরীক্ষার কেস:

  • man: True
  • day: True(আরজান জোহানসেনকে ধন্যবাদ)
  • led: False( l=12এবং d=4আছে gcd=4)
  • mana: True(যদিও aএকাধিকবার দেখা যায়, 1 এবং 1 টি কপিরাইট হয়)
  • mom: False( gcd(13,13)=13))
  • of: False(xnor ধন্যবাদ; যদিও 15∤6, gcd(15,6)=3)
  • a: True(যদি জোড়ার অক্ষর না থাকে তবে শব্দটিকে কপিরাইম হিসাবেও বিবেচনা করুন)

এটি একটি , তাই বাইটের মধ্যে সংক্ষিপ্ততম কোডটি জয়ী!


1
0সেগুলি কপিরাইমে থাকলে আমরা আউটপুট করতে পারি এবং 1যদি না হয়?
dylnan

2
প্রস্তাবিত পরীক্ষার কেস যা একটি বগি উত্তরটি পেতে পারে:day: True
janrjan জোহানসেন

1
আমি কোনও of: Falseমিথ্যা উদাহরণ দেওয়ার পরামর্শ দিই যেখানে কোনও মানই অন্যের একাধিক নয়।
xnor

@ অল্লান না, এটি স্ববিরোধী। যাইহোক, ডেনিস'স উত্তর আরও ভাল ;-)
bodqhrohro

@ লুইস মেন্ডো কোনও সত্য / মিথ্যা, তবে মাত্র দুটি।
bodqhrohro

উত্তর:


12

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

CoprimeQ@@LetterNumber@Characters@#&

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


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

CoprimeQ @@ (ToCharacterCode @ # - 96) &

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


1
CoprimeQ@@(ToCharacterCode@#-96)&তিন বাইট সংক্ষিপ্ত।
মিশা লাভরভ

8

জেলি , 10 বাইট

ØaiⱮgþ`P$Ƒ

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

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

ØaiⱮgþ`P$Ƒ  Main link. Argument: s (string)

Øa          Yield "abc...xyz".
  iⱮ        Find the 1-based index of each c of s in "abc...xyz".
        $Ƒ  Call the monadic chain to the left.
            Yield 1 if the result is equal to the argument, 0 if not.
    gþ`       Take the GCDs of all pairs of indices, yielding a matrix.
       P      Take the columnwise product.
            For coprimes, the column corresponding to each index will contain the
            index itself (GCD with itself) and several 1's (GCD with other indices),
            so the product is equal to the index.


6

পাইথ , 9 বাইট

{Ism{PhxG

পরীক্ষা স্যুট

ব্যাখ্যা:
{Ism{PhxG   | Full code
{Ism{PhxGdQ | With implicit variables filled
------------+------------------------------------------
   m      Q | For each char d in the input:
    {P      |  list the unique prime factors of
      hx d  |  the 1-based index of d in
        G   |  the lowercase alphabet
  s         | Group all prime factors into one list
{I          | Output whether the list has no duplicates

পাইথ কি মাত্র জেলিকে ছাড়িয়ে গেছে?


6

পাইথন 2 - 122 118 বাইট

-4 বাইটস @ জোনাথান অ্যালানকে ধন্যবাদ

এটি সত্যই ভয়ানক, তবে আমি এটি পোস্ট না করার জন্য দীর্ঘ সময় ব্যয় করেছি।

from fractions import*
def f(n):r=reduce;n=[ord(i)-96for i in n];return r(lambda x,y:x*y/gcd(x,y),n)==r(int.__mul__,n)

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


4
96 for96for; > । lambda x,y:x*y> int.__mul__
জোনাথন ফ্রেচ

5

05 এ বি 1 , 11 বাইট

Ç96-2.Æ€¿PΘ

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

ব্যাখ্যা

Ç96-         # convert to character codes and subtract 96
    2.Æ      # get all combinations of size 2
       €¿    # gcd of each pair
         P   # product of gcds
          Θ  # is true

চূড়ান্ত Θকি আসলেই প্রয়োজনীয়?
মিঃ এক্সকোডার

@ মিঃ এক্সকোডার: না আমি মনে করি না। আমি কেবল ধরে নিয়েছিলাম যে আমাদের 2 টি মূল্যকে বিকৃত করা দরকার, তবে এখন আমি দেখতে পাচ্ছি যে এটি সম্পর্কে চ্যালেঞ্জের কিছুই নেই। সত্যবাদী / মিথ্যা ঠিক তখনই হওয়া উচিত।
এমিগিনা

@ এমিগনা আমি তার জন্য একটি স্পেসিফিকেশন যুক্ত করেছি: আউটপুট মানগুলির কেবল দুটি বৈকল্পিক হওয়া উচিত।
bodqhrohro

@ বোদকরোহরো: ঠিক আছে। এই নতুন প্রয়োজনীয়তা অনুসারে আমি আগের সংস্করণে ফিরে এসেছি rol
এমিগানা


4

পাইথন 2 , 77 68 64 বাইট

lambda a:all(sum(ord(v)%96%i<1for v in a)<2for i in range(2,26))

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

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


দেখে মনে হচ্ছে আমাদের একই ধারণা ছিল তবে আপনি আমাকে কয়েক মিনিটের জন্য মারধর করেছেন :) আপনি কি এই 2 বাইট ব্যবহার করে allএবং সংরক্ষণ করতে পারবেন না <2?
ভিনসেন্ট

4

পাইথন 3 , 61 59 বাইট

যুক্তি হিসাবে পাইথন বাইট ব্যবহার:

lambda s:all(sum(c%96%x<1for c in s)<2for x in range(2,24))

চেক করার জন্য সর্বশেষ বিভাজক 23, এটি 26 এর নীচে বৃহত্তম প্রধান।

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

দুটি বাইট সংরক্ষণ করার জন্য @ ডেনিসকে ধন্যবাদ


3
c%96%x<1for c in s2 বাইট সংরক্ষণ
ডেনিস

4

পার্ল 6 , 34 32 বাইট

-২ বাইটস নোহেলহোফকে ধন্যবাদ

{[lcm](@_)==[*] @_}o{.ords X-96}

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

একটি অনামী কোডব্লক যা একটি স্ট্রিং নেয় এবং সত্য বা মিথ্যা ফেরত দেয়। যদি অক্ষরগুলির সর্বনিম্ন সাধারণ একাধিকটি কোনও সাধারণ বিভাজককে ভাগ না করে অক্ষরের উত্পাদনের সমান হয়।

ব্যাখ্যা:

                     {.ords X-96}  # Convert the letters to a list of numbers
 {                 }o              # Pass result to the next codeblock
  [lcm](@_)           # The list reduced by the lcm
           ==         # Is equal to?
             [*] @_   # The list reduced by multiplication

আমি যদি ভুল না হয়ে থাকি তবে কি এই কাজ করে? (21 বাইট)
কনার ও'ব্রায়েন

@ ConorO'Brien না, আপনি শুধু ম্যাপ থাকেন aকরতে 0তোমার
জো রাজা

@ জোকিং ওহ, ঠিক আছে লোল
কনর ও'ব্রায়েন

যে কৌশল বগী ছিল, পরীক্ষা মামলা: day
janrjan জোহানসেন


3

জে, 36 বাইট

[:(1 =[:*/-.@=@i.@##&,+./~)_96+a.&i.

Ungolfed

[: (1 = [: */ -.@=@i.@# #&, +./~) _96 + a.&i.

ব্যাখ্যা

[: (                            ) _96 + a.&i.  NB. apply fn in parens to result of right
                                  _96 + a.&i.  NB. index within J's ascii alphabet, minus 96.
                                               NB. gives index within english alphabet
   (1 =                         )              NB. does 1 equal...
   (    [: */                   )              NB. the product of...
   (                    #&,     )              NB. Flatten the left and right args, and then copy
   (                        +./~)              NB. right arg = a table of cross product GCDs
   (          -.@=@i.@#         )              NB. the complement of the identity matrix.
                                               NB. this removes the diagonal.

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


[:(1=[:*/+./~#&,~#\~:/#\)_96+a.&i.34 বাইটের জন্য আপনার একটি স্থান ছিল `1 = ':)
গ্যালেন ইভানোভ

1
ধন্যবাদ @ গ্যালেনিভানভ
জোনাহ

3

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

f=(s,v=23)=>n=v<2||f(s,v-1)&&Buffer(s).every(c=>c%32%v||n--)

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


পুনরাবৃত্ত হয়ে এবং ব্যবহার করে 62 বাইটevery(c=>c%32%v||n--,n=1)
আর্নল্ড

@ আরনাউল্ড ধন্যবাদ এবং আমি এটি থেকে আরও 2 বাইট গল্ফ করেছি।
tsh

3

জেলি , 11 বাইট

ŒcO_96g/€ỊẠ

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

  • ডেনিসকে আমার বুলিয়ানগুলি লক্ষ করার জন্য ধন্যবাদ

ŒcO_96g/€ỊẠ
Œc           All pairs of characters without replacement
  O          Code point of each character
   _96       Subtract 96. a->1, b->2, etc.
        €    For each pair:
      g/       Get the greatest common denominator
         Ị   abs(z)<=1? If they are all 1 then this will give a list of 1s
          Ạ  "All". Gives 1 if they are coprime, 0 if not.

2
ỊẠবুলিয়ানদের ফ্লিপ করে
ডেনিস

3

এমএটিএল , 10 বাইট

96-YF&fdA&

অন্যথায় 1কপিরাইমের আউটপুট 0

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

ব্যাখ্যা

'man'উদাহরণস্বরূপ ইনপুট বিবেচনা করুন ।

96-  % Implicit input: string. Subtract 96 from (the codepoint of) each element
     % STACK: [13 1 14] 
YF   % Exponents of prime factoriation. Each number produces a row in the result
     % STACK: [0 0 0 0 0 1;
               0 0 0 0 0 0;
               1 0 0 1 0 0]
&f   % Two-output find: pushes row and column indices of nonzeros
     % STACK: [3; 3; 1], [1; 4; 6]
d    % Consecutive differences
     % STACK: [3; 3; 1], [3; 2]
A    % All: gives true if the array doesn't contain zeros
     % STACK: [3; 3; 1], 1
&    % Alternative in/out specification: the next function, which is implicit
     % display, will only take 1 input. So only the top of the stack is shown

3

মার্কভ অ্যালগরিদম, যেমন ইমেন দ্বারা ব্যাখ্যা করা হয়েছে ( 474 484 463 বাইটস, 76 78 76 বিধি)

a->
d->b
f->bc
h->b
i->c
j->be
l->bc
n->bg
o->ce
p->b
q->q
r->bc
t->be
u->cg
v->bk
x->bc
y->e
z->bm
cb->bc
eb->be
gb->bg
kb->bk
mb->bm
qb->bq
sb->bs
wb->bw
ec->ce
gc->cg
kc->ck
mc->cm
qc->cq
sc->cs
wc->cw
ge->eg
ke->ek
me->em
qe->eq
se->es
we->ew
kg->gk
mg->gm
qg->gq
sg->gs
wg->gw
mk->km
qk->kq
sk->ks
wk->kw
qm->mq
sm->ms
wm->mw
sq->qs
wq->qw
ws->sw
bb->F
cc->F
ee->F
gg->F
kk->F
mm->F
qq->F
ss->F
ww->F
b->
c->
e->
g->
k->
m->
q->
s->
w->
FF->F
TF->F
!->.
->!T

প্রথম 17 টি বিধি গুণমানকে উপেক্ষা করে তাদের "প্রাইম লেটার" ফ্যাক্টারে "সম্মিলিত বর্ণগুলি" ফ্যাক্টর করে। (উদাহরণস্বরূপ, 2 শক্তি এবং 5 এর পাওয়ার হিসাবে 20 কারণগুলি tহয়ে যায় be)

পরবর্তী 36 টি বিধি (যেমন cb->bc) ফলাফলের প্রধান কারণগুলিকে বাছাই করে।

পরবর্তী 9 টি নিয়ম (যেমন bb->F) দ্বারা পুনরাবৃত্তি হওয়া মৌলিক ফ্যাক্টরটি প্রতিস্থাপন করে F, তারপরে আরও 9 টি নিয়ম (যেমন b->) বাকী একক অক্ষর থেকে মুক্তি পেয়ে যায়।

এই মুহুর্তে, আমাদের হয় হয় ফাঁকা স্ট্রিং, বা এক বা একাধিক Fs এর একটি স্ট্রিং রয়েছে এবং শেষ নিয়ম শুরুতে ->!Tএকটি যুক্ত !Tকরে। তারপরে নিয়ম করুন FF->Fএবং TF->Fফলাফলকে হয় সরল করুন !Tঅথবা !F। এই মুহুর্তে, !->.বিধিটি প্রয়োগ হয়, আমাদের পরিত্রাণ পেতে !এবং থামিয়ে দিতে: Tকপিরাইট শব্দের জন্য ফিরে আসা , এবং Fঅন্যথায়।

(পূর্ববর্তী সংস্করণে একটি বাগ চিহ্নিত করার জন্য বোডকরোহোর ধন্যবাদ জানায় যা এই কোডটি ইনপুটটিতে একটি খালি স্ট্রিং দেয় a)


1
দেয় তন্ন তন্ন Tনা Fউপর atestcase।
bodqhrohro

@ বোদকরোহো ধরার জন্য ধন্যবাদ! (শেষ পর্যন্ত, আমার বাইট গণনাটি নেমে গেল, কারণ আমি বুঝতে পেরেছি যে আমি প্রতিটি নিউলাইনকে দুটি বাইট হিসাবে গণনা করছি।)
মিশা লাভরভ


2

রেটিনা 0.8.2 , 45 বাইট


;
{`\w
#$&
}T`l`_l
M`;(##+)\1*;(#*;)*\1+;
^0

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


;

প্রতিটি বর্ণের মধ্যে এবং শুরু এবং শেষে পৃথককারী প্রবেশ করান।

{`\w
#$&

#প্রতিটি চিঠির জন্য একটি প্রস্তুত করুন ।

}T`l`_l

প্রতিটি বর্ণকে বর্ণমালায় 1 টি আবার সরান, aগুলি মুছে দিন । তারপরে উপরের ক্রিয়াকলাপগুলি পুনরাবৃত্তি করুন যতক্ষণ না সমস্ত অক্ষর মুছে ফেলা হয়। এটি প্রতিটি অক্ষরকে আনারিতে তার 1-ভিত্তিক বর্ণমালা সূচকে রূপান্তর করে।

M`;(##+)\1*;(#*;)*\1+;

কোনও দুটি মান একটি সাধারণ ফ্যাক্টরকে 1 এর চেয়ে বেশি ভাগ করে কিনা তা পরীক্ষা করুন (এটি একটি সাধারণ ফ্যাক্টরের সাথে একাধিক অক্ষর খুঁজে পেতে পারে, যেমন শব্দটিতে yearling

^0

কোনও সাধারণ কারণ খুঁজে পাওয়া যায় নি তা পরীক্ষা করুন।


2

আর + প্র্যাকমা লাইব্রেরি, 75 বাইট

function(w){s=utf8ToInt(w)-96;all(apply(outer(s,s,pracma::gcd),1,prod)==s)}

আমি আমার জ্ঞান হিসাবে গ্রন্থাগারে gcdফাংশনটি ব্যবহার করছি pracmaআর এর জন্য বিল্ট-ইন নেই। আমি জিসিডিএসের পণ্যগুলি তাদের সংখ্যার সাথে তুলনা করার পদ্ধতিকে ব্যবহার করছি।

65 বাইট (ক্রেডিট: @ জে.ডো)

function(w)prod(outer(s<-utf8ToInt(w)-96,s,pracma::gcd))==prod(s)


1

জাপট , 14 বাইট

;à2 e_®nR+CÃrj

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

অক্ষরের অ্যারে হিসাবে ইনপুট নেয়।

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

;à2 e_m_nR+C} rj
;                 Use alternative predefined variables (in this case, C = "a-z")
 à2               Get all pairs
    e_            Does all pairs satisfy that...
      m_            when the character pair is mapped over...
        nR+C}         conversion from "a-z" to [1..26]
              rj    then the two numbers are coprime?


1

জাভা 10, 86 বাইট

a->{var r=1>0;for(int i=1,s=0;++i<24;r&=s<2,s=0)for(var c:a)s+=c%96%i<1?1:0;return r;}

পোর্ট অফ @Vincent এর পাইথন 3 উত্তর

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

ব্যাখ্যা:

a->{                 // Method with character-array parameter and boolean return-type
  var r=1>0;         //  Result-boolean, starting at true
  for(int s=0,       //  Sum integer, starting at 0
      i=1;++i<24     //  Loop `i` in the range (1, 24)
      ;              //    After every iteration:
       r&=s<2,       //     If the sum is >= 2: change the result to false
       s=0)          //     And reset the sum to 0
     for(var c:a)    //   Inner loop over the input-characters
       s+=c%96%i<1?  //    If the current character modulo-96 is divisible by `i`
           1         //     Increase the sum by 1
          :          //    Else
           0;        //     Leave the sum the same
  return r;}         //  Return the result-boolean


0

q, 121 111 বাইট

{$[1=count x;1b;1b=distinct{r:{l:{$[0~y;:x;.z.s[y;x mod y]]}[y;]'[x];2>count l where l<>1}[x;]'[x]}[1+.Q.a?x]]}


0

স্ট্যাক্স , 16 বাইট

è'B╕i4à!ùà╫æor4Z

এটি চালান এবং এটি ডিবাগ করুন

ব্যাখ্যা

2S{M{$e96-mm{E:!m|A     #Full program, unpacked, implicit input
2S                      #Generate all combinations of size 2
  {       m             #Map for each element
   M                    #Split into size of 1 element
    {       m           #Map for each element
     $e                 #Convert to number
       96-              #Subtract 96
           {    m       #Map for each element
            E:!         #Explode array onto stack, are they coprime
                 |A     #Are all elements of array truthy

আউটপুট 1 টি সত্যের জন্য, 0 মিথ্যা জন্য।

সংখ্যা অংশে রূপান্তর করার সম্ভবত আরও ভাল উপায় আছে তবে এটি কার্যকর হয় works


স্ট্যাক্স লেখক এখানে। স্ট্যাক্স একবার চেষ্টা করার জন্য ধন্যবাদ! আপনার অ্যালগরিদম ব্যবহার করে এখানে একটি প্রোগ্রাম রয়েছে যা 10 বাইটে প্যাক করে। 2SOF{96-F:!* আপনি যদি এটি সম্পর্কে আরও জানতে চান তবে আমাকে জানান। প্রথম এক বিনামূল্যে!
পুনরাবৃত্তি

@ রিসার্সিভ স্ট্যাকস তৈরির জন্য আপনাকে ধন্যবাদ! এই মুহুর্তে এটি আমার গল্ফ ভাষা। আমি দেখতে পারি যে আপনার উত্তর কীভাবে কাজ করে এবং ভবিষ্যতে আমার উত্তরগুলি উন্নত করার জন্য আমাকে কাজ চালিয়ে যেতে হবে।
মাল্টি

0

এপিএল (এনএআরএস), 16 টি চর, 32 বাইট

{(×/p)=∧/p←⎕a⍳⍵}

এই ব্যবহৃত পদ্ধতি অন্যান্য ব্যবহৃত যে LCM () = × /, এটি দ্রুত তবে ইনপুট অ্যারে যথেষ্ট দীর্ঘ হলে ওভারফ্লো; অন্যান্য বিকল্প সমাধানগুলি কিছুটা ধীর গতিতে:

{1=×/y∨y÷⍨×/y←⎕a⍳⍵} 
{1=≢,⍵:1⋄1=×/{(2⌷⍵)∨1⌷⍵}¨{x←97-⍨⎕AV⍳⍵⋄(,x∘.,x)∼⍦x,¨x}⍵}

এটি নীচে এটি উপরের ফাংশনগুলির চেয়ে 10 গুণ দ্রুত (বা +) বলে মনে হচ্ছে

∇r←h m;i;j;k;v
   r←i←1⋄k←≢v←97-⍨⎕AV⍳m
A: →F×⍳i>k⋄j←i+1⋄→C
B:   →E×⍳1≠(j⌷v)∨i⌷v⋄j←j+1
C:   →B×⍳j≤k
D: i←i+1⋄→A
E: r←0
F:
∇

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

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