하드론의 이름을 지정


19

도전

입력으로 입자의 쿼크 구성이 주어지면 해당 hadron의 이름을 출력하십시오.

쿼크는 대문자로 표시되고 쿼크는 소문자로 표시됩니다.

쿼크는 반드시 아래에 주어진 순서가 아닌 임의의 순서 일 수 있습니다.

내장 함수는 입자 및 / 또는 쿼크에 대한 액세스 데이터가 허용되지 않습니다.

쿼크는 U (위), u (위), D (아래), d (위), S (이상), s (antistrange), C (charm), c (anticharm), B ( 바닥 또는 아름다움), b (바닥 또는 아름다움).

하드론 및 쿼크 구성 목록

펜타 쿼크 및 글루 볼 등과 같은 다양한 다른 하드론이 있지만 다음 목록에 제공된 하드론 만 지원하면됩니다.

Baryons (QQQ) 및 Antibaryons (Qqq)

괄호 안의 이름은 입자의 대체 이름입니다. 두 이름을 출력 할 수 있습니다.

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-

메손 스 (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

승리

바이트 단위의 최단 코드가 이깁니다.


11
내장 함수는 입자 및 / 또는 쿼크에 대한 액세스 데이터가 허용되지 않습니다. 널보고있어, 매스 매 티카
Okx

따라서이 과제는 본질적으로 조회 테이블을 압축하는 것입니까?
Rohan Jhunjhunwala

3
Mathematica에는 옵션 ParticleData기능이 QuarkContent있습니다.
이안 밀러

1
열심히 보이지 않습니다. 내 말은, 각 쿼크는 자신의 전기 요금을 가지고 있습니다, 당신은 요금이 아니라 이름 만 처리하면됩니다.
Matthew Roh

1
1. 남작은 같은 경우에 3 개의 쿼크를 조합 한 것으로 보인다. 중간자는 반대의 경우 2 개 쿼크 조합이지만 중간자 용 CbBc누락. 이것은 의도적 인 것입니까? 2. 글자를 다르게 주문하면 동일한 의미가됩니다. 프로그램에서 다른 순서의 글자를 처리 할 수 ​​있어야합니까, 아니면 항상 그림과 같이 주문됩니까? (예 UDS를 들어 항상 예입니까, SUD아니면 DSU예입니까?) 비슷하게 mesons도 가질 수 uD있습니까?
Level River St

답변:


5

SOGL 0.11 , 341 339 333 310 305 305 300 바이트

‘θ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

12

자바 스크립트 (ES6), 456 448 431 420 바이트

이 코드는 두 개의 작은 조회 테이블 만 사용합니다.

  • 쿼크를 식별하기위한 하나 : 'CUBDScubds'
  • Mesons의 'anti'접두사를 감지하는 또 다른 하나 : 'SdUcBdBs'

다른 모든 것은 쿼크에서 추론됩니다.

(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]


2

펄 5, 318 바이트

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

가독성을 위해 추가 된 줄 바꿈 (약간) :

$_=<>
$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)
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.