Nazwij Hadrony

19

Wyzwanie

Biorąc pod uwagę skład kwarku cząstki jako dane wejściowe, wypisz odpowiednią nazwę hadronu.

Kwarki będą reprezentowane wielką literą, a antykwarki małą literą.

Kwarki mogą być w dowolnej kolejności, niekoniecznie w kolejności podanej poniżej.

Wbudowane funkcje nie pozwalają na dostęp do danych o cząstkach i / lub kwarkach.

Jedyne kwarki, które otrzymasz, to U (góra), u (antiup), D (dół), d (antidown), S (dziwne), s (antystrange), C (urok), c (anticharm), B ( u dołu lub uroda), b (antygotomia lub uroda).

Lista Hadronów i ich kompozycji kwarków

Należy pamiętać, że chociaż istnieją różne inne hadrony, takie jak pentakwarki i kulki klejowe itp., Wystarczy wspierać hadrony podane na poniższych listach

Baryony (QQQ) i Antibaryony (qqq)

Nazwy w nawiasach to alternatywne nazwy cząstek. Możesz wypisać dowolną nazwę.

Input - Output

UUU - delta++
uuu - antidelta++
UUD - delta+ (proton)
uud - antidelta+ (antiproton)
UDD - delta0 (neutron)
udd - antidelta0 (antineutron)
DDD - delta-
ddd - antidelta-
UUS - sigma+
uus - antisigma+
UDS - sigma0
uds - antisigma0
DDS - sigma-
dds - antisigma-
USS - xi0
uss - antixi0
DSS - xi-
dss - antixi-
SSS - omega-
sss - antiomega-

UUC - charmed sigma++
uuc - charmed antisigma++
UDC - charmed sigma+
udc - charmed antisigma+
DDC - charmed sigma0
ddc - charmed antisigma0
UUB - bottom sigma+
uub - bottom antisigma+
UDB - bottom sigma0
udb - bottom antisigma0
DDB - bottom sigma-
ddb - bottom antisigma-
USC - charmed xi+
usc - charmed antixi+
DSC - charmed xi0
dsc - charmed antixi0
UCC - double charmed xi++
ucc - double charmed antixi++
DCC - double charmed xi+
dcc - double charmed antixi+
USB - bottom xi0
usb - bottom antixi0
DSB - bottom xi-
dsb - bottom antixi-
UBB - double bottom xi0
ubb - double bottom antixi0
DBB - double bottom xi-
dbb - double bottom antixi-
UCB - charmed bottom xi+
ucb - charmed bottom antixi+
DCB - charmed bottom xi0
dcb - charmed bottom antixi0
SSC - charmed omega0
ssc - charmed antiomega0
SSB - bottom omega-
ssb - bottom antiomega-
SCC - double charmed omega+
scc - double charmed antiomega+
SCB - charmed bottom omega0
scb - charmed bottom antiomega0
SBB - double bottom omega-
sbb - double bottom antiomega-
CCB - double charmed bottom omega+
ccb - double charmed bottom antiomega+
CBB - charmed double bottom omega0
cbb - charmed double bottom antiomega0
CCC - triple charmed omega++
ccc - triple charmed antiomega++
BBB - triple bottom omega-
bbb - triple bottom antiomega-

Mezony (Qq)

Input - Output

Ud - pion+
Uu - pion0
Dd - pion0
Du - pion-
Us - kaon+
Ds - kaon0
Sd - antikaon0
Su - kaon-
Ss - phion0
Cd - D meson+
Dc - D meson-
Cu - D meson0
Uc - antiD meson0
Cs - strange D meson+
Sc - strange D meson-
Cc - psion0
Bu - B meson-
Ub - B meson+
Db - B meson0
Bd - antiB meson0
Sb - strange B meson0
Bs - strange antiB meson0
Bb - upsilon0

Zwycięski

Najkrótszy kod w bajtach wygrywa.

Rozpad beta
źródło
11
Wbudowane funkcje nie pozwalają na dostęp do danych o cząstkach i / lub kwarkach. Patrzę na ciebie, Mathematica.
Okx
Czy to wyzwanie polega przede wszystkim na skompresowaniu tabeli wyszukiwania?
Rohan Jhunjhunwala
3
Mathematica ma ParticleDatafunkcję z QuarkContentopcją.
Ian Miller
1
Nie wygląda ciężko. Chodzi mi o to, że każdy kwark ma swój własny ładunek elektryczny, wystarczy poradzić sobie z nazwą, a nie z ładunkiem.
Matthew Roh
1
1. Wygląda na to, że bariony mogą być dowolną kombinacją 3 kwarków tego samego przypadku. Mezony są kombinacjami 2 kwarków przeciwnego przypadku, ale dla mezonów Cbi Bcich brakuje. Czy to celowe? 2. Kolejne uporządkowanie liter oznaczałoby to samo - czy nasz program musi obsługiwać różne porządki liter, czy zawsze będą one uporządkowane tak, jak pokazano? (tj. czy zawsze tak będzie UDSna przykład, czy może być, SUDczy DSUna przykład?) Podobnie dla mezonów moglibyśmy mieć uD?
Level River St

Odpowiedzi:

5

SOGL 0,11 , 341 339 333 310 305 305 300 bajtów

‘θw±
on”≥
0c{≤
”=?"▒
on0”←"█
c SW?"▲
?ļ0←j ►
?"anti”o}▼
SD”;W¡+}□
=?ļ-←ļ+←■
‘B≤a=+}:?"⁽¬Τk⅜K±l?@+}ob@+o}▓
UCl2-? CA"K¼⁶▓ BA"δ╬▓cd≠▼≤: U=; D=++}"8}↕x╔:⁵F┘¹±o≤"B□"κ§)Ƨ7%s±p←"Ss▒phi█Cc▒psi█Bb▒upsil█SdUcBd”2n{=▼}≤"U□1>?▲ka≥pc DW►S■"pi≥Pcρ►D■▲)»β⁴‘o}ƧBs=▼ Dc BW?X B}" mes≥+p"D═S┐╔¬ν↑FνF⌠V3╗βstA\≈²‘:cW2+Wp
dzaima
źródło
12

JavaScript (ES6) 456 448 431 420 bajtów

Ten kod używa tylko dwóch małych tabel odnośników:

  • jeden do identyfikacji kwarków: „CUBDScubds”
  • inny do wykrywania „anty” prefiksu Mesonów: „SdUcBdBs”

Cała reszta wywodzi się z kwarków.

(s,[a,b]=[...s].map(c=>(i='CUBDScubds'.search(c)%5,m|=1<<i,j+=i<2,k+=i&1,p+=i?i-2?'':'bottom ':'charmed ',i),m=j=k=0,p=''))=>s[2]?p.replace(/(\w+) \1( \1)?/,(_,a,b)=>b?'triple'+b:'double '+a)+(s>'Z'?'anti':'')+['omega','xi','sigma','delta'][k]+('-0+'[j]||'++'):(m&16&&m&5?'strange ':'')+(~'SdUcBdBs'.search(s)?'anti':'')+(m&1?m^1?'D mes':'psi':m&4?m^4?'B mes':'upsil':m&16?m^16?'ka':'phi':'pi')+'on'+'-0+'[(a<2)-(b<2)+1]

Arnauld
źródło
2

Perl 5, 318 bajtów

$_=<>;$h=qw/- ++ + 0/[y/uc//*2*($i=3-map{${lc;}++}/./g)-$u-$c-$i];$a=($i?!$h&&/[dUB]/:/[a-z]/)&&anti;map{/(.)/;$q.=("","$_ ","double $_ ","triple $_ ")[$$1]}charmed,bottom;print(($i?($u+$d>1?pi:$s>1?phi:$c>1?psi:$b>1?upsil:$c+$b?($s?"strange $a":$a).($b?B:D).' mes':$a.ka).on:$q.$a.qw/omega xi sigma delta/[$u+$d]).$h)

Dodano nowe linie dla czytelności (nieznacznie):

$_=<>
$h=qw/- ++ + 0/[y/uc//*2*($i=3-map{${lc;}++}/./g)-$u-$c-$i]
$a=($i?!$h&&/[dUB]/:/[a-z]/)&&anti
map{/(.)/;$q.=("","$_ ","double $_ ","triple $_ ")[$$1]}charmed,bottom;
print(($i?($u+$d>1?pi:$s>1?phi:$c>1?psi:$b>1?upsil:$c+$b?($s?"strange $a":$a).($b?B:D).' mes':$a.ka).on:$q.$a.qw/omega xi sigma delta/[$u+$d]).$h)
faubi
źródło