추상 재 작성 챌린지 (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 답변에 맞지 않을 수 있습니다.


나는에만 얻을 수 있기 때문에 흔들리지 곳이 있어야합니다 VWxx에서 형성되는 어떤 이진 문자열 _(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:eogeog있어야합니다 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.