추상 재 작성 챌린지 (Cops)


27

이것은 다소 와 같은 문제입니다. 이것은 경찰의 실입니다. 강도의 실이 여기 있습니다.

경찰

당신의 임무는 한 단어에서 다른 단어의 도달 가능성을 결정하기 어려운 추상적 인 재 작성 시스템 을 정의하는 것 입니다. 다음 사항을 준비합니다.

  1. 알파벳이라고하는 기호 집합. (이에 유니 코드 문자를 사용할 수 있지만 공백이나 서로 구분하기 어려운 기호는 사용하지 마십시오.)

  2. 소스 문자열은 당신의 알파벳 문자로 구성.

  3. 대상 문자열은 당신의 알파벳 문자로 구성.

  4. 알파벳 문자를 사용하는 일련의 재 작성 규칙. (다시 쓰기 규칙의 정의는 아래를 참조하십시오.)

  5. 다시 쓰기 규칙을 연속적으로 적용하여 소스 문자열을 대상 문자열로 변환 할 수 있는지 여부를 보여주는 증명 이 증명은 실제 다시 쓰기 단계 시퀀스 또는 이러한 시퀀스가 ​​존재해야한다는 수학적인 증거 또는 해당 시퀀스가 ​​존재하지 않는 수학적인 증거로 구성 될 수 있습니다.

증거를 비밀로 유지하면서 처음 네 개를 게시합니다. 강도는 대상 문자열이 소스 문자열에서 도달 할 수 있거나 도달 할 수 없다는 자체 증거를 제공하여 답변을 해독하려고 시도합니다. 제출 한 내용이 2 주 이내에 금이 간 경우 제출 한 내용 을 안전하다고 표시하고 증거를 편집 할 수 있습니다.

제출 내용은 재 작성 규칙의 문자 수와 소스 및 대상 문자열에 따라 아래에 설명 된대로 점수가 매겨집니다. 우승자는 가장 낮은 점수를받은 비 균열 제출물입니다.

다시 쓰기 규칙은 무엇입니까?

다시 쓰기 규칙은 단순히 알파벳의 문자열 쌍입니다. (이 문자열 중 하나가 비어있을 수 있습니다.) 다시 쓰기 규칙의 적용은 쌍의 첫 번째 문자열과 동일한 하위 문자열을 찾아서 두 번째 문자열로 교체하는 것으로 구성됩니다.

예를 들어 이것을 분명히해야합니다.

가정하자 알파벳이다 A, B그리고 C; 소스 문자열은 " A"입니다. 대상 문자열은 " C"이고 다시 쓰기 규칙은

A:B
B:BB
B:A
AA:C

다음과 같은 방법으로 대상 문자열에 도달 할 수 있습니다.

A
B   (using rule 1)
BB  (using rule 2)
AB  (using rule 3)
AA  (using rule 3)
C   (using rule 4)

채점

당신의 점수는

  • 소스 문자열의 길이
  • 목표 문자열 길이와
  • 다시 쓰기 규칙에 포함 된 모든 문자열의 길이와
  • 다시 쓰기 규칙마다 하나의 추가 포인트가 추가됩니다.

위와 같이 콜론 구분 기호를 사용하여 다시 쓰기 규칙을 작성하는 경우 이는 모든 다시 쓰기 규칙 (구분 기호 포함)의 총 길이와 소스 및 대상 문자열의 길이에 불과합니다. 점수가 낮을수록 좋습니다. 알파벳에서 구별되는 문자 수는 관계를 끊는 데 사용되며 더 적을수록 좋습니다.

하사품

나는 실제로 낮은 점수에 대한 답변을보고 싶습니다. 이 챌린지에서 100 점 미만의 점수를 받고 금이 가지 않는 첫 번째 답변에 200 명의 담당자 를 수여 합니다.


3
바, MU 퍼즐에 대한 표현력이 충분하지 않습니다 .
— Neil

1
@Neil은 기술적으로 Turing 머신만큼 표현력이 뛰어납니다 .MU 퍼즐 버전을 만들 수는 있지만 규칙을 구현하려면 많은 추가 기호와 전환 규칙이 필요 Mx -> Mxx하므로 Hofstadter보다 훨씬 복잡합니다. 기발한.
— Nathaniel

답변:


9

326 포인트 -jimmy23013에 의해 금 이

레벨은 Aymeric du Peloux의 Picokosmos # 13입니다 (사소한 수정 포함). "상자"와 "벽"이 같은 캐릭터로 구현 될 수있는 세련된 수준을 찾으려고 노력했습니다. 이 수준에서 중앙 초크 포인트를 1 열이 아닌 2 열로 만들 수있었습니다.

규칙 / 초기 / 타겟 문자열은 조금 더 골프를 칠 수 있지만 이것은 재미를위한 것입니다.

초기 문자열 :

___##___####_____##_#_#_##_#_!####______##_#####__####_#_######__###__

대상 문자열 :

___##___####_____##_#_#_##_#_#####____!__#_#####__####_#_######__###__

규칙 :

_wW:!
_<:<_
Vv_:!
V_:_V
R:>>>>>>>>>>>>>
V#:#V
#w<:w#
>v_:_v
_wX:#
_!:!_
!:wLW_
L:<<<<<<<<<<<<<
#W:W#
!#_:_!#
_w<:w_
#<:<#
!:_VRv
>v#:#v
Uv_:#
_W:W_
_X:X_
>#:#>
#X:X#
U_:_U
Vv#:!URv
#wW:wLX!
>_:_>
!_:_!
_#!:#!_
U#:#U


8

171 포인트, HyperNeutrino에 의해 금이

출처: YAAAT

목표: VW626206555675126212043640270477001760465526277571600601

규칙 :

T:AAAAAT
T:BBU
U:BU
U:ZW
AB:BCA
CB:BC
AZ:Z
CZ:ZC
YB:Y
YZ:V
V:VD
DCC:CD
DCW:W+
DW:W_
___:0
__+:1
_+_:2
_++:3
+__:4
+_+:5
++_:6
+++:7

해야 할 일이 분명합니다. 실제 다시 쓰기 단계는 SE 답변에 맞지 않을 수 있습니다.


나는에만 얻을 수 있기 때문에 흔들리지 곳이 있어야합니다 VWx곳 x에서 형성되는 어떤 이진 문자열 _(0)와 +로 평가 (1) 10*n+6(선행 포함 _; n= 음이 아닌 정수) 아직은 x(주어 626...601) 어떤 평가하여 바이너리로부터 형성된다 에 10*n+3(대형 n).
— Jonathan Allan

이런 것들이 순수한 논리에 의해 해결 될 수 있습니까?
— VortexYT


@HyperNeutrino Drat, 나는 너의 균열이 내가 넘어 졌던 곳에 노출되기를 바랐다.
— Jonathan Allan


4

139 포인트 (안전한)

나는이 답변에 금이 가도록 의도했으며 user202729는 기본적으로 주석에서 그것을 해결했지만 아무도 강도의 스레드에 답을 게시하지 않았으므로 "안전한"표시를하고 아래에 내 증거를 포함시킵니다.

(이러한 것들은 금이가는 것보다 만들기가 훨씬 쉬울 것입니다. 그러나 아직까지는 실제로 낮은 점수를 얻으려고 시도한 사람이 없었으며,이 도전이 계속되면 그 끝에서 더 많은 즐거움을 누릴 수 있습니다. )


여기 자기 답이 있습니다. 잠재적으로 매우 어려울 수 있지만 어디에서 왔는지 쉽게 알아낼 수 있습니다.

알파벳: ABCDEⒶⒷⒸⒹⒺⒻ⬛⚪️️🎂←→

출처: ←A→

목표: ←🎂→

규칙 : (공백은 중요하지 않습니다)

← : ←⬛
→ : ⬛→
A⬛ : ⚪B
A⚪ : ⚪Ⓑ
⬛Ⓐ : E⚪
⚪Ⓐ : Ⓔ⚪
B⬛ : ⚪C
B⚪ : ⚪Ⓒ
Ⓑ⬛ : 🎂
Ⓑ⚪ : ⚪Ⓕ
⬛C : D⚪
⚪C : Ⓓ⚪
Ⓒ⬛ : ⬛B
Ⓒ⚪ : ⬛Ⓑ
D⬛ : ⚪E
D⚪ : ⚪Ⓔ
⬛Ⓓ : C⬛
⚪Ⓓ : Ⓒ⬛
⬛E : A⚪
⚪E : Ⓐ⚪
Ⓔ⬛ : ⬛D
Ⓔ⚪ : ⬛Ⓓ
Ⓕ⬛ : ⚪C
Ⓕ⚪ : ⚪Ⓒ
⬛🎂 : 🎂
⚪🎂 : 🎂
🎂⬛ : 🎂
🎂⚪ : 🎂

유니 코드가 모든 사람에게 잘 표시되지 않는 경우를 대비 하여 ASCII 버전이 있습니다.


증명

이것은 6 상태 바쁜 비버에 대한 현재 최고 경쟁자에 해당합니다 . 바쁜 비버는 정말 오랜 시간이 지나면 멈추는 튜링 머신입니다. 이로 인해 소스 문자열 ←A→은 실제로 대상 문자열로 변환 될 수 ←🎂→있지만 7*10^36534실제 구현에서는 우주보다 오래 걸리는 단계 보다 많은 단계 후에 만 가능 합니다.

튜링 기계의 테이프는 기호 ⬛(0)과 ⚪(1)로 표시됩니다. 규칙

← : ←⬛
→ : ⬛→

테이프의 끝은 항상 더 많은 0으로 확장 될 수 있습니다. 튜링 머신의 헤드가 테이프의 한쪽 끝에 가까워지면 이러한 규칙 중 하나만 적용하면 테이프가 무한한 척하고 모든 0으로 채워지기 시작할 수 있습니다. (기호가 →과 ←생성되지 않습니다 또는 테이프의 끝에서 있으므로 항상 파괴.)

튜링 머신의 헤드는 기호 ABCDEⒶⒷⒸⒹⒺⒻ와로 표시 🎂됩니다. A는 헤드가 상태에 A있고 헤드 아래의 기호가 ⬛(0)임을 의미하고 Ⓐ는 상태 A를 나타내고 그 아래의 기호가 ⚪(1)을 의미합니다. 이것은 머리 아래에 1과 0을 나타내는 uncircled 버전을 나타내는 동그라미 문자로, 다른 상태에 대해 계속 (어떤 기호가 없다 F는 머리 상태에 끝나는 결코 발생하기 때문에 F그 아래 1로합니다.)

상태 🎂는 정지 상태입니다. 특별한 규칙이 있습니다

⬛🎂 : 🎂
⚪🎂 : 🎂
🎂⬛ : 🎂
🎂⚪ : 🎂

정지 상태에 도달하면이 규칙을 반복해서 적용하여 모든 테이프 (필요 이상으로 테이프를 확장하여 발생하는 여분의 0 포함)를 "흡입"하여 상태를 유지 ←🎂→합니다. 따라서 도달 가능성 문제는 국가에 🎂도달 할 것인지의 여부로 귀결된다 .

나머지 규칙은 Turing 머신의 전환 규칙입니다. 예를 들어 규칙

A⬛ : ⚪B
A⚪ : ⚪Ⓑ

"기계가 상태 A에 있고 헤드 아래에 0이 있으면 1을 쓰고 상태 B로 변경하고 오른쪽으로 이동하십시오."로 읽을 수 있습니다. 오른쪽에있는 테이프 셀이 포함되어있을 수 있기 때문에 권리를 이동하면, 두 가지 규칙을 소요 ⬛,이 경우 기계 상태로 가야한다 B, 또는 셀이 포함되어있을 수 ⚪있으며,이 경우에이 상태로 가야한다 Ⓑ있기 때문에, ⚪그 아래.

비슷하게,

⬛Ⓓ : C⬛
⚪Ⓓ : Ⓒ⬛

"기계가 상태 D에 있고 헤드 아래에 1이 있으면 0을 쓰고 상태 C로 변경하고 왼쪽으로 이동합니다."

사용 된 튜링 기계는 2010 년 Pavel Kropitz에 의해 발견되었습니다. 바쁜 비버와 관련하여 종종 언급되지만 실제 전환 테이블은 추적하기가 약간 까다 롭지 만 여기 에서 확인할 수 있습니다 . 다음과 같이 쓸 수 있습니다

    0   1

A   1RB 1LE
B   1RC 1RF
C   1LD 0RB
D   1RE 0LC
E   1LA 0RD
F   1RH 1RC

"기계가 상태 A에 있고 헤드 아래에 0이 있으면 1을 쓰고 상태 B로 변경 한 다음 오른쪽으로 이동합니다"등으로 읽을 수 있습니다. 이 테이블의 각 항목이 위에서 설명한대로 한 쌍의 규칙에 해당하는지 확인하는 것이 힘들면 간단해야합니다.

유일한 예외는 1RH기계가 상태 F에 0을 초과 할 때 발생 하는 규칙 입니다. 기계가 상태 1에 들어가 자마자 즉시 정지 할 수있을 때 기계가 1을 작성하고 오른쪽으로 이동하는 것은 무의미 해 보였기 때문입니다. 0을 넘어서서

Ⓑ⬛ : ⚪F

으로

Ⓑ⬛ : 🎂

이것이 F알파벳에 기호가없는 이유 입니다. (내가 만들 수있는 다른 '골프'가 있지만 너무 많이 숨기고 싶지 않았습니다.)

기본적으로 그렇습니다. 대상 문자열은 소스 문자열에서 도달 할 수 있지만 엄청나게 많은 단계 후에 만 ​​가능합니다.

한 가지 더 재미있는 사실 : 내가 사용한 경우

←A⚪⚪→

대신 시작점 7*10^36534으로 중지하는 단계가 아니라 실제로 10^10^10^10^18705352단계가 큰 단계입니다.


1
이것은 튜링 머신의 구현처럼 보입니다
— NieDzejkob

1
나는 이것이 여기에 나열된 "현재 6- 상태, 2- 기호 최고의 경쟁자"튜링 머신이라고 생각합니다 . 이제 누군가는 그들이 동등한 지 증명해야합니다.
— user202729


1
@ user202729 답변으로 게시하지 않으시겠습니까?
— jimmy23013 년


3

287 포인트, 안전

출처: YAAT

목표:

VW644507203420630255035757474755142053542246325217734264734527745236024300376212053464720055350477167345032015327021403167165534313137253235506613164473217702550435776242713

규칙 :

T:AAAAAT
T:BBU
U:BU
U:ZW
AB:BCA
CB:BC
AZ:Z
CZ:ZC
YB:Y
YZ:V
V:VD
DCC:CD
DCW:W+
DW:W_
___:0
__+:1
_+_:2
_++:3
+__:4
+_+:5
++_:6
+++:7

이 목적으로 openssl이 gpg보다 훨씬 사용하기 쉽다는 것을 알았습니다.


HyperNeutrino의 약한 버전으로 의 균열 을 참조하십시오 . 이 경우 Cs의 수는 다음과 같습니다.

22030661124527021657244569669713986649562044939414344827127551659400215941242670121250289039666163853124410625741840610262419007778597078437731811349579211

그리고 주요 요소는 다음과 같습니다.

220040395270643587721928041668579651570457474080109642875632513424514300377757
100120985046540745657156603717368093083538096517411033964934953688222272684423

첫 번째 숫자는 mod 5 = 2이므로 최종 문자열을 얻을 수 있습니다.



이것이 임의의 512 비트
— 세미 프라임

안전합니다.
— user202729

2

402 포인트

알파벳 : abcdefghijklmnopqrstu
출처 : abcdoi
대상 : ioabcdnnnnnnnnnnnnnnnnnn
다시 쓰기 규칙 :

ab : ba
바 : ab
ac : ca
ca : ac
추가하다
다 : 광고
bc : cb
cb : bc
bd : db
db : bd
cd : dc
dc : cd
나 : 안
nb : bn
nc : cn
nd : dn
nm : mn
nj : jn
아오이 : eag
boi : ebg
coi : ecg
doi : edg
a : ha
be : hb
ce : hc
드 : hd
ioa : kam
iob : kbm
ioc : kcm
iod : kdm
ma : aj
mb : bj
mc : cj
md : dj
dg : rdnnnnnnnnnn
cg : qcnnnnn
bg : pbnn
ag : 팬
cr : fc
br : fb
ar : fa
bq : fb
aq : fa
ap : fa
er : io
eq : io
ep : io
ef : io
hf : io
kd : dunnnnnnnnnn
kc : ctnnnnn
kb : bsnn
카 : 알
uc : cl
ub : bl
ua : 알
tb : bl
따 : 알
sa : 알
음 : 오이
tm : oi
sm : oi
lm : oi
lj : oi
:엔

마지막 규칙을 사용 n하면 필요한만큼 을 만들 수 있습니다 .

추악한 것처럼 보이지만 실제로는 아주 좋은 편입니다.


* aoi:eog에 eog있어야합니다 eag?
— Kritixi Lithos

@Cowsquack 네, 고마워요
— boboquack

2

1337 포인트

확실히 경쟁적이지 못하고 창조하는데 너무 오랜 시간이 걸렸습니다.

힌트:

규칙을보기 전에 소스 문자열을 이해하십시오

알파벳: ABEILRSTabcdefijlr

출처: SIbbbbbbbdbffacebbfadbdbeecddfaeebddcefaddbdbeeecddaaaaadfaeeebdddcefbbfadbdbdbeeecdddfaeeebdddcefaddbdbeeecddaaaadfaeeebdddcefbfadbdbdbeeecdddfaeeebdddcbdbffacebfadbdbeecddfaeebddceeefadddbdbeeeecddddfaeeeebddddceefaddbdbeeecdddfaeeebdddceefadadbefadfacdbeecddfaeebddcefaeeefaddbdbeeecdddfaeeebdddcceecdfaeeaddceecefaeadcbefadfacecdfaebdceeeeefadddddbdbeeeeeecddddddfaeeeeeebddddddceeefaddaeecdddbdbffacebfadbdbeecddfaeebddceeefadddbdbeeeecddddfaeeeebddddceefaddbdbeeecdddfaeeebdddceefadadbefadfacdbeecddfaeebddcefaeeefaddbdbeeecdddfaeeebdddcceecdfaeeaddceecefaeadcbefadfacecdfaebdcefaefaeeebdddcdcefaceeaaaceefacdffacebdceeeeefadddddbdbeeeeeecddddddfaeeeeeebddddddceeefaddaeecdddbdbffacebfadbdbeecddfaeebddceeefadddbdbeeeecddddfaeeeebddddceefaddbdbeeecdddfaeeebdddceefadadbefadfacdbeecddfaeebddcefaeeefaddbdbeeecdddfaeeebdddcceecdfaeeaddceecefaeadcbefadfacecdfaebdcefaefaeeebdddcdcefaceeaaaaceefacdffacebdcecefacE

목표: SE

다시 쓰기 규칙 :

Ab : bA
bA : Ab
Aa : aA
aA : 아
추가하다
dA : 광고
Ae : eA
eA :에
Af : fA
FA : Af
Ac : cA
cA : 악
IA : AI
AI : IA
Bb : bB
bB : BB
Ba : aB
aB : 바
Bd : dB
eB : Be
Be : eB
dB : Bd
Bf : fB
fB : Bf
숨은 참조 : cB
cB : BB
E : BE
S : SB
Ib : AbI
AIa : aI
IdB : dBI
BIe : eIB
AIf : AfI
BIfB : BfiLB
Lb : bL
La : aL
르 : 엘
Ld : dL
Lf : fL
Lc : cL
ib : 비
IA : 아이
즉 : ei
id : 디
if : fil
lb : bl
라 : 알
르 : 엘
ld : dl
lf : fl
lc : cl
icl : ci
icL : cI
IC : jRc
bj : jb
aj : ja
dj : jd
ej : je
br : rb
ar : ra
dr : rd
어 : 다시
fr : rf
cr : rc
bR : Rb
aR : Ra
dR : Rd
eR : 재
fR : Rf
cR : Rc
cj : jrc
fjr : jf
fjR : 만약
그것
TB : T
BT : T
bT : T
aT : T
dT : T
eT : T
fT : T
cT : T
티:

2

처음에 실수를 했으므로 점수가 변경되었습니다. 그럼에도 불구하고 아이디어는 동일합니다. 더 이상 실수가 없기를 바랍니다.


154 포인트

알파벳 : P.!xABC[{mD<
출처 : [x!P.P...P..P.P....P..P.P.....P.P....P......P.P..P...P.P...Pm(61 자)
대상 : {CCCCC<(5 C초이므로 7 자)

규칙 :

P.  →  .PP
!.  →  !
x   →  AxB
x   →  
AB  →  BAC
CB  →  BC
CA  →  AC
[B  →  [
[A  →  {
{A  →  {
!   →  !m
mP  →  PmD
Dm  →  mD
DP  →  PD
!P  →  ?
?P  →  ?
!m  →  <
<m  →  <
C<D →  <

총 문자 수 = 67 개의 규칙이 19 개 있습니다.


1

106 포인트 -HyperNeutrino에 의해 금이

알파벳: ABCDEFGHIJ

출처: FIABCJAGJDEHHID

목표: F

다시 쓰기 규칙 :

B:DCIE
A:IFBA
D:EEFJ
C:GFIC
E:HBJG
F:FEBG
G:HFCJ
H:DIGB
I:FCAH
J:BHEA

EJGI:FF
FFF:J
FF:E
EE:D
DDEA:FI
I:F

좋아, HyperNeutrino는 이것이 불가능하다는 것을 증명했습니다. 그러나 이것에 대한 또 다른 해결책이 있습니다.


갖다:

I E C D H G J A F B
1 2 3 4 5 6 7 8 9 10

소스의 가치는 짝수입니다. 목표 값이 홀수입니다. 각면을 취하고 값을 합산하고 값을 mod 2로 가져 오면 값은 동일하게 유지됩니다. 따라서이를 달성 할 수 없습니다.



원하는 경우 원하는 솔루션으로 편집 할 수 있습니다.
— Nathaniel

@Nathaniel, 알겠습니다
— VortexYT
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.