Nommez les Hadrons

19

Défi

Étant donné une composition de quark d'une particule en entrée, sortez le nom du hadron correspondant.

Les quarks seront représentés par une lettre majuscule et les antiquarks par une lettre minuscule.

Les quarks peuvent être dans n'importe quel ordre, pas nécessairement dans l'ordre indiqué ci-dessous.

Les fonctions intégrées les données d'accès sur les particules et / ou les quarks sont interdites.

Les seuls quarks qui vous seront donnés sont U (haut), u (antiup), D (bas), d (antidown), S (étrange), s (antistrange), C (charme), c (anticharm), B ( fond ou beauté), b (fond ou antibeauté).

Liste des hadrons et de leurs compositions de quarks

Notez que bien qu'il existe divers autres hadrons tels que les pentaquarks et les boules de colle, etc., vous n'avez qu'à prendre en charge les hadrons indiqués dans les listes suivantes

Baryons (QQQ) et Antibaryons (qqq)

Les noms entre parenthèses sont des noms alternatifs pour les particules. Vous pouvez afficher l'un ou l'autre nom.

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-

Mésons (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

Gagnant

Le code le plus court en octets gagne.

Beta Decay
la source
11
Les fonctions intégrées les données d'accès sur les particules et / ou les quarks sont interdites. Je te regarde, Mathematica.
Okx
Donc, ce défi consiste essentiellement à compresser une table de recherche?
Rohan Jhunjhunwala
3
Mathematica a une ParticleDatafonction avec une QuarkContentoption.
Ian Miller,
1
Ça n'a pas l'air dur. Je veux dire, chaque quark a sa propre charge électrique, vous n'avez qu'à gérer le nom, pas la charge.
Matthew Roh
1
1. Il semble que les baryons peuvent être n'importe quelle combinaison de 3 quarks du même boîtier. Les mésons sont des combinaisons de 2 quarks de cas opposé, mais pour les mésons Cbet Bcsont manquants. Est-ce intentionnel? 2. Ordonner les lettres différemment signifierait la même chose - notre programme doit-il être capable de gérer différents ordres de lettres, ou seront-ils toujours commandés comme indiqué? (ie sera-t-il toujours UDSpar exemple ou pourrait-il être SUDou DSUpar exemple?) De même pour les mésons pourrions-nous avoir uD?
Level River St

Réponses:

5

SOGL 0,11 , 341 339 333 310 310 305 305 300 octets

‘θ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
la source
12

JavaScript (ES6), 456 448 431 420 octets

Ce code utilise seulement deux petites tables de recherche:

  • un pour identifier les quarks: 'CUBDScubds'
  • un autre pour détecter le préfixe «anti» de Mesons: «SdUcBdBs»

Tout le reste est déduit des quarks.

(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
la source
2

Perl 5, 318 octets

$_=<>;$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)

Ajout de nouvelles lignes pour la lisibilité (légèrement):

$_=<>
$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
la source