抽象書き換えチャレンジ(警官)


27

これはややような挑戦です。これは警官のスレッドです。強盗のスレッドはこちらです。

警官

あなたの仕事は、ある単語から別の単語への到達可能性を判断するのが難しい抽象的な書き換えシステムを定義することです。次のものを準備します。

  1. アルファベットと呼ばれる記号のセット。(これらには任意のUnicode文字を使用できますが、空白、または互いに区別しにくい記号を使用しないでください。)

  2. ソース文字列あなたのアルファベットからのシンボルで構成される。

  3. ターゲット文字列あなたのアルファベットからのシンボルで構成される。

  4. アルファベットの文字を使用した一連の書き換えルール。(書き換えルールの定義については、以下を参照してください。)

  5. 書き換えルールを連続して適用することにより、ソース文字列をターゲット文字列に変換できるかどうかを示す証明。この証明は、書き換え手順の実際のシーケンス、またはそのようなシーケンスが存在する必要があることの数学的証明、またはそのようなシーケンスが存在しないことの数学的証明で構成される場合があります。

これらの最初の4つを投稿し、証拠を秘密にします。強盗は、ソース文字列からターゲット文字列に到達できる、または到達できないという独自の証拠を提供することにより、あなたの答えを解読しようとします。提出物が2週間以内にクラックされない場合、それを安全とマークし、証拠を編集できます。

提出物は、以下に詳述するように、書き換えルールの文字数と、ソースおよびターゲット文字列に従ってスコアリングされます。勝者は、スコアの最も低い、クラックされていない提出物になります。

書き換えルールとは何ですか?

書き換えルールは、アルファベットの文字列のペアです。(これらの文字列のいずれかが空の場合があります。)書き換えルールの適用は、ペアの最初の文字列に等しいサブ文字列を見つけ、それを2番目の文字列で置き換えることで構成されます。

例でこれを明確にする必要があります。

アルファベットがABあり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)

得点

あなたのスコアは

  • ソース文字列の長さ、
  • ターゲット文字列の長さ
  • さらに、書き換えルールに含まれるすべての文字列の長さ、
  • 書き換えルールごとに1ポイント追加します。

上記のようにコロン区切り文字を使用して書き換えルールを記述する場合、これはすべての書き換えルールの合計長(セパレータを含む)にソース文字列とターゲット文字列の長さを加えたものになります。スコアが低いほど優れています。あなたのアルファベットの異なる文字の数は、同数を壊すために使用され、少ないほど良いです。

バウンティ

本当に低得点になる答えを見たいです。このチャレンジで100ポイント未満で、クラックされない最初の回答に200担当者を授与します。


3
バ、MUパズルに十分な表現力がありません。
ニール

1
@Neilは技術的にはチューリングマシンと同じくらい表現力があります-MUパズルのバージョンを作成できますが、ルールを実装するMx -> Mxxために余分なシンボルと遷移ルール​​の束が必要になるため、ホフスタッターのよりもはるかに複雑になります元の。
ナサニエル

回答:


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
ジョナサンアラン

このようなことは純粋な論理によって解決できますか?
VortexYT


@HyperNeutrino Drat、私はあなたのひびが私がつまずいたところに露出することを望んでいた。
ジョナサンアラン


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
Ⓕ⚪ : ⚪Ⓒ
⬛🎂 : 🎂
⚪🎂 : 🎂
🎂⬛ : 🎂
🎂⚪ : 🎂

これは、 Unicodeが誰にとってもうまく表示されない場合のASCIIバージョンです。


証明

これは、6ステートビジービーバーの現在の最高の候補と同等です。忙しいビーバーは、非常に長い時間後に停止するチューリングマシンです。このため、ソース文字列←A→は実際にターゲット文字列に変換できますが、物理的な実装では宇宙の時代よりも非常に長い時間を要するステップ←🎂→以上が必要7*10^36534です。

チューリングマシンのテープは、記号(0)および(1)で表されます。ルール

← : ←⬛
→ : ⬛→

つまり、テープの端は、常にゼロを増やして拡張できます。チューリングマシンのヘッドがテープの一方の端に近づいたら、これらのルールのいずれかを適用することができます。これにより、テープが無限であり、すべてゼロで埋められているふりをすることができます。(シンボルは作成または破棄されることはないため、常にテープの最後にあります。)

チューリング機械の頭部は、記号ABCDEⒶⒷⒸⒹⒺⒻとで表され🎂ます。A手段頭状態にあるAヘッドの下のシンボルは、それが状態にあります手段Ⓐ一方、(0)Aとその下のシンボルである(1)。これは他の州でも継続され、丸で囲まれた文字は頭の下に1を表し、丸で囲まれていないバージョンは0を表します(F頭がF下に1の状態になることはないため、記号はありません)

状態🎂は停止状態です。特別なルールがあります

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

停止状態に到達した場合、これらのルールを繰り返してテープのすべてを「吸い込む」ことができます(必要以上にテープを延長することで生じた余分なゼロを含む)←🎂→。したがって、到達可能性の問題は、状態に到達するかどうかに要約され🎂ます。

残りのルールは、チューリングマシンの移行ルールです。たとえば、ルール

A⬛ : ⚪B
A⚪ : ⚪Ⓑ

「マシンが状態Aにあり、ヘッドの下にゼロがある場合、1を書き込んで状態Bに変更し、右に移動する」と読むことができます。右に移動するには2つのルールが必要です。右のテープセルにはが含まれる場合があり、その場合はマシンがstate 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にあり、ヘッドの下にゼロがある場合、1を書き込んで状態Bに変更し、右に移動する」などと読むことができます。このテーブルの各エントリが上記のルールのペアに対応していることを確認するのは、面倒な場合は簡単です。

唯一の例外は、1RHマシンが0を超えて状態Fにあるときに発生するルールです。これは、マシンが1を書き込んですぐに停止し、状態Fになるとすぐに右に移動するのは無意味に思えたためです0以上です。だから私はあったであろうルールを変更しました

Ⓑ⬛ : ⚪F

Ⓑ⬛ : 🎂

これがF、アルファベットに記号がない理由です。(私が作ることができた他のいくつかの「ゴルフ」がありますが、私はそれをあまりあいまいにしたくありませんでした。)

それは基本的にそれです。ターゲット文字列はソース文字列から到達可能ですが、途方もない数のステップを経た後にのみ到達可能です。

もう1つの楽しい事実:私が使用していた場合

←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ビットセミプライムであると仮定すると、現在のPCはこれを考慮して数週間から数か月かかります
-didgogns

今では安全です。
user202729

2

402ポイント

アルファベット:abcdefghijklmnopqrstu
ソース:abcdoi
ターゲット:ioabcdnnnnnnnnnnnnnnnnnn
書き換えルール:

ab:ba
ba:ab
ac:ca
ca:ac
ad:da
da:ad
bc:cb
cb:bc
bd:db
db:bd
cd:dc
dc:cd
ナン
nb:bn
nc:cn
nd:dn
nm:mn
nj:jn
oi:eag
boi:ebg
coi:ecg
doi:edg
ae:ha
be:hb
ce:hc
de:hd
ioa:kam
iob:kbm
ioc:kcm
iod:kdm
ma:aj
mb:bj
mc:cj
md:dj
dg:rdnnnnnnnnnn
cg:qcnnnnn
bg:pbnn
ag:fan
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
ka:aln
uc:cl
ub:bl
ua:al
tb:bl
ta:al
sa:al
um:oi
tm:oi
sm:oi
lm:oi
lj:oi
:n

最後のルールでは、必要な数のを作成できますn

見た目はseemsいですが、実際にはかなり素晴らしいです。


*でaoi:eogあるeogことになっているeag
Kritixi Lithos

@Cowsquackはい、それを拾ってくれてありがとう
boboquack

2

1337ポイント

間違いなく競争力がなく、作成に時間がかかりすぎました(間違いを犯さないことを望みます)。

ヒント:

ルールを見る前にソース文字列を理解してください

アルファベット: ABEILRSTabcdefijlr

ソース: SIbbbbbbbdbffacebbfadbdbeecddfaeebddcefaddbdbeeecddaaaaadfaeeebdddcefbbfadbdbdbeeecdddfaeeebdddcefaddbdbeeecddaaaadfaeeebdddcefbfadbdbdbeeecdddfaeeebdddcbdbffacebfadbdbeecddfaeebddceeefadddbdbeeeecddddfaeeeebddddceefaddbdbeeecdddfaeeebdddceefadadbefadfacdbeecddfaeebddcefaeeefaddbdbeeecdddfaeeebdddcceecdfaeeaddceecefaeadcbefadfacecdfaebdceeeeefadddddbdbeeeeeecddddddfaeeeeeebddddddceeefaddaeecdddbdbffacebfadbdbeecddfaeebddceeefadddbdbeeeecddddfaeeeebddddceefaddbdbeeecdddfaeeebdddceefadadbefadfacdbeecddfaeebddcefaeeefaddbdbeeecdddfaeeebdddcceecdfaeeaddceecefaeadcbefadfacecdfaebdcefaefaeeebdddcdcefaceeaaaceefacdffacebdceeeeefadddddbdbeeeeeecddddddfaeeeeeebddddddceeefaddaeecdddbdbffacebfadbdbeecddfaeebddceeefadddbdbeeeecddddfaeeeebddddceefaddbdbeeecdddfaeeebdddceefadadbefadfacdbeecddfaeebddcefaeeefaddbdbeeecdddfaeeebdddcceecdfaeeaddceecefaeadcbefadfacecdfaebdcefaefaeeebdddcdcefaceeaaaaceefacdffacebdcecefacE

ターゲット: SE

書き換えルール:

Ab:bA
bA:Ab
Aa:aA
aA:Aa
Ad:dA
dA:広告
Ae:eA
eA:Ae
Af:fA
fA:Af
Ac:cA
cA:Ac
IA:AI
AI:IA
Bb:bB
bB:Bb
Ba:aB
aB:Ba
Bd:dB
eB:Be
Be:eB
dB:Bd
Bf:fB
fB:Bf
Bc:cB
cB:Bc
E:BE
S:SB
Ib:AbI
AIa:aI
IdB:dBI
BIe:eIB
AIf:AfI
BIfB:BfiLB
Lb:bL
La:aL
Le:eL
Ld:dL
Lf:fL
Lc:cL
ib:bi
ia:ai
すなわち:ei
id:di
if:fil
lb:bl
la:al
le:el
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
er:re
fr:rf
cr:rc
bR:Rb
aR:Ra
dR:Rd
eR:Re
fR:Rf
cR:Rc
cj:jrc
fjr:jf
fjR:If
それ
TB:T
BT:T
bT:T
aT:T
dT:T
eT:T
fT:T
cT:T
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 →  <

19のルールがあり、文字の総数は67です。


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にすると、値は変わりません。したがって、これは達成できません。



必要に応じて、目的のソリューションを編集することもできます。
ナサニエル

@ナサニエル、大丈夫
-VortexYT
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.