Soyut Yeniden Yazma Yarışması (Polisler)


27

Bu biraz benzeri mücadelesidir. Bu polislerin ipliği; Soyguncuların ipliği burada.

Polisler

Görevin, bir kelimenin diğerinden ulaşılabilirliğinin belirlenmesinin zor olduğu soyut bir yeniden yazma sistemi tanımlamak . Aşağıdakileri hazırlayacaksınız:

  1. Alfabe denilen bir dizi sembol. (Bunlar için herhangi bir Unicode karakteri kullanabilirsiniz, ancak lütfen birbirlerinden ayırması zor olan beyaz boşlukları veya sembolleri kullanmayın.)

  2. Alfabenizdeki sembollerden oluşan bir kaynak dizesi .

  3. Alfabenizdeki sembollerden oluşan bir hedef dize .

  4. Alfabenizdeki karakterleri kullanarak yeniden yazma kuralları kümesi. (Yeniden yazma kuralının tanımı için aşağıya bakın.)

  5. Kaynak dizginizin, yeniden yazma kurallarınızın art arda uygulanmasıyla hedef dizginize dönüştürülüp dönüştürülmeyeceğini gösteren bir kanıt. Bu ispat, gerçek bir yeniden yazma adımı dizisinden ya da böyle bir dizinin olması gerektiğine ilişkin matematiksel bir kanıt ya da böyle bir dizilimin bulunmadığı bir matematik kanıtından oluşabilir.

Bunlardan ilk dördünü kanıtlayacaksınız; Soyguncular, hedef dizginizin kaynak dizginize ulaşıp erişemediğine dair kendi kanıtlarını sunarak cevabınızı kırmaya çalışacaktır. Başvurunuz iki hafta içinde çatlamazsa , kanıtınızı güvenli olarak işaretleyebilir ve düzenleyebilirsiniz.

Başvurular, yeniden yazma kurallarındaki karakter sayısına ve aşağıda belirtildiği gibi kaynak ve hedef dizgilerine göre puanlanacaktır. Kazanan, en düşük puanla uncracked gönderim olacak.

Yeniden yazma kuralı nedir?

Yeniden yazma kuralı, yalnızca alfabenizdeki bir dize çiftidir. (Bu dizelerden biri boş olabilir.) Yeniden yazma kuralının bir uygulaması, çiftin ilk dizgisine eşit bir alt dizginin bulunmasından ve ikincisinin yerine konulmasından oluşur.

Bir örnek bunu netleştirmelidir:

Varsayalım alfabesidir A, Bve C; kaynak dizge " A"; Hedef dize " C" ve yeniden yazma kuralları

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

sonra hedef dizgiye şu şekilde erişilebilir:

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

puanlama

Puanınız olacak

  • kaynak dizginizin uzunluğu,
  • artı hedef dizginizin uzunluğunu,
  • ayrıca yeniden yazma kurallarınıza dahil edilen tüm dizelerin uzunluğu,
  • artı her yeniden yazma kuralı için bir ekstra puan.

Yeniden yazma kurallarınızı yukarıdaki gibi bir sütun ayırıcıyla yazıyorsanız, bu, yeniden yazma kurallarının yalnızca toplam uzunluğu (ayırıcı dahil), ayrıca kaynak ve hedef dizelerin uzunluklarıdır. Düşük bir puan daha iyidir. Alfabenizdeki belirgin karakterlerin sayısı, daha az iyi olmakla birlikte ilişkileri bozmak için kullanılacaktır.

cömertlik

Gerçekten düşük puanlar için geçerli cevapları görmek isterim. Ben ödül olacak 200 rep puanları bu meydan az 100 puan ile birinci cevaba kırık almaz.


3
Bah, MU bulmacası için yeterince anlamlı değil .
Neil

1
Ne teknik olarak Turing makineleri kadar etkileyicidirler - MU bulmacasının bir versiyonunu yapabilirdiniz, ancak Mx -> Mxxkuralı uygulamak için bir sürü ekstra sembol ve geçiş kuralına ihtiyacınız olacaktı, bu yüzden Hofstadter'ınkinden çok daha karmaşık olacaktı. orijinal.
Nathaniel

Yanıtlar:


9

326 puan - jimmy23013 tarafından Cracked

Seviye, Aymeric du Peloux (önemsiz bir değişiklikle) tarafından Picokosmos # 13'tür. "Kutu" ve "duvar" ile aynı karakterde uygulanabilecek zevkli bir seviye bulmaya çalıştım. Bu seviye için merkezi boğulma noktasının bir sütun yerine iki sütun genişliğinde yapılması mümkün olmuştur.

Kurallar / başlangıç ​​/ hedef dizeleri biraz daha golf oynayabilirdi, ama bu sadece eğlence için.

İlk dize:

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

Hedef dize:

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

Kurallar:

_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 puan, HyperNeutrino tarafından çatlak

Kaynak: YAAAT

Hedef: VW626206555675126212043640270477001760465526277571600601

Kurallar:

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

Sadece yapılacak bir şey var. Gerçek yeniden yazma adımlarının sırası muhtemelen bir SE cevabına uymayacaktır.


I ancak almak çünkü aksayacağının bir yere sahip olmalıdır VWxburada xoluşturulur herhangi bir ikili bir dizgi _(0) ve +değerlendirmek (1) 10*n+6(öncü de dahil olmak üzere _, n= negatif olmayan bir tamsayı) henüz x(verilen 626...601) bu değerlendirir ikili oluşturulmaktadır için 10*n+3(büyük için n).
Jonathan Allan

Bunun gibi şeyler saf mantıkla çözülebilir mi?
VortexYT


@HyperNeutrino Drat, çatlağınızın tökezlediğim yerde açığa çıkacağını umuyordum.
Jonathan Allan,


4

139 puan (güvenli-ish)

Bu cevabın kırılmasını hedefledim ve user202729 yorumlarda temel olarak çözüldü, ancak hiç kimse soyguncuların konularına cevap vermedi, bu yüzden "güvenli-ish" i işaretliyorum ve aşağıdaki ispatlarımı ekliyorum.

(Bu şeyler yapmak, kırmak için olduğundan çok daha kolaydır. Ancak hiç kimse gerçekten çok düşük bir puan almaya çalışmamıştır ve bu zorluklar ortadan kalkarsa, bu şeylerin sonunda yaşanması daha eğlenceli olabilir. )


İşte kendine bir cevap. Potansiyel olarak çok zor, ama nereden geldiğini hesaplarsanız kolay olmalı.

alfabe: ABCDEⒶⒷⒸⒹⒺⒻ⬛⚪️️🎂←→

kaynak: ←A→

hedef: ←🎂→

Kurallar: (boşluk önemli değil)

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

İşte bir ASCII sürümü , unicode'un herkes için iyi görünmemesi durumunda.


Kanıt

Bu, altı eyalet meşgul kunduz için mevcut en iyi yarışmacının karşılığıdır . Yoğun bir kunduz, çok uzun bir süre sonra duran bir Turing makinesidir. Bu nedenle, kaynak dizi ←A→gerçekten hedef dizgeye dönüştürülebilir ←🎂→, ancak yalnızca 7*10^36534herhangi bir fiziksel uygulama için evrenin yaşından çok daha uzun sürecek olan adımlardan sonra gerçekleşebilir.

Turing makinesinin bandı, (0) ve (1) sembolleri ile temsil edilir . Kurallar

← : ←⬛
→ : ⬛→

kasetin uçlarının her zaman daha fazla sıfırla uzatılabileceği anlamına gelir. Turing makinesinin kafası bandın bir ucuna yaklaşırsa, bu kurallardan sadece birini uygulayabiliriz; (Semboller ve asla yaratılmazlar veya imha edilmezler, bu yüzden her zaman kasetin sonunda olurlar.)

Turing makinenin kafası sembolleriyle temsil edilir ABCDEⒶⒷⒸⒹⒺⒻve 🎂. Aanlamına gelir baş durumundayken Ave kafa altında sembol a, Ⓐ bu halde bulunuyor aracı ise, (0) Asembolü ile bir olan altında (1). Bu kafa altında bir 1 ve bir 0. temsil uncircled versiyonunu temsil eden daire içine harfle, diğer devletler için devam edilir (sembol yok yoktur Fkafa halde biter asla bu gerçekleşirse, çünkü FAltında 1'den.)

Devlet 🎂durduran devlettir. Özel kuralları var

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

Eğer durma durumuna ulaşılırsa, bu kuralları tekrar tekrar uygulayabiliriz (tüm bantı gereğinden fazla uzatmak için ortaya çıkan ekstra sıfırlar dahil) tüm bandı “emmek” için ←🎂→. Dolayısıyla ulaşılabilirlik sorunu, devlete 🎂hiç ulaşılıp ulaşılamayacağına bağlı olarak azalmaktadır.

Kalan kurallar, Turing makinesi için geçiş kurallarıdır. Örneğin, kurallar

A⬛ : ⚪B
A⚪ : ⚪Ⓑ

"makine A durumundaysa ve başın altında sıfır varsa, sonra bir 1 yazın, B durumuna geçin ve sağa hareket edin" olarak okunabilir. Sağa doğru hareket etmek iki kural alır, çünkü sağdaki bant hücresi a içerebilir , bu durumda makine duruma geçmeli Bveya hücre a'yı içerebilir , bu durumda altına girmelidir , çünkü altında bir durum vardır.

Benzer şekilde,

⬛Ⓓ : C⬛
⚪Ⓓ : Ⓒ⬛

"Makine D durumundaysa ve başın altında 1 varsa, sonra 0 yazın, C durumuna geçin ve sola gidin" anlamına gelir.

Kullanılan Turing makinesi 2010 yılında Pavel Kropitz tarafından keşfedildi. Yoğun kunduzlar bağlamında sıkça bahsedilmesine rağmen, gerçek geçiş tablosu izini sürmek biraz zor, ama burada örneğin bulunabilir . Olarak yazılabilir

    0   1

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

"Makine A durumundaysa ve başın altında sıfır varsa, sonra bir 1 yazın, B durumuna geçin ve sağa hareket edin" olarak okunabilir. Zahmetli ise, bu tablonun her girişinin yukarıda açıklandığı gibi bir çift kurala karşılık geldiğini kontrol etmek kolay olmalıdır.

Bunun tek istisnası, 1RHmakine 0 konumundayken F durumunda olduğunda meydana gelen kuraldır , çünkü makinenin 1 yazmasını sağlamak için oldukça anlamsız görünüyordu ve hemen F durumuna girer girmez hemen durduğunda sağa hareket ediyordu 0 dan fazla. Bu yüzden olacak olan kuralı değiştirdim.

Ⓑ⬛ : ⚪F

içine

Ⓑ⬛ : 🎂

Bu yüzden Falfabede sembol yok . (Yapabileceğim başka 'golf'ler' var, ama fazla gizlemek istemedim.)

Temel olarak bu. Hedef dizgeye kaynak dizgiden erişilebilir, ancak sadece çok sayıda adımdan sonra.

Bir daha eğlenceli gerçek: eğer kullanmış olsaydım

←A⚪⚪→

bunun yerine başlangıç ​​noktası 7*10^36534olarak durma 10^10^10^10^18705352adımlarını değil, çok büyük bir sayı olan basamakları alır.


1
Bu bir turing makinesinin bir uygulaması gibi görünüyor
NieDzejkob

1
Burada listelenen Turing Makinesi'nin "şu an 6 durumlu, 2 sembollü en iyi yarışmacı" olduğunu düşünüyorum . Şimdi birinin eşdeğer olduğunu kanıtlaması gerek.
user202729 14:18


1
@ user202729 Neden bir cevap olarak yazmıyorsunuz?
jimmy23013


3

287 puan, güvenli

Kaynak: YAAT

Hedef:

VW644507203420630255035757474755142053542246325217734264734527745236024300376212053464720055350477167345032015327021403167165534313137253235506613164473217702550435776242713

Kurallar:

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'ın bu amaçla gpg'den çok daha kolay olduğunu buldum.


Daha zayıf versiyona HyperNeutrino'nun çatlağını görün . Bu durumda, Cs sayısı:

22030661124527021657244569669713986649562044939414344827127551659400215941242670121250289039666163853124410625741840610262419007778597078437731811349579211

Ve ana faktörler:

220040395270643587721928041668579651570457474080109642875632513424514300377757
100120985046540745657156603717368093083538096517411033964934953688222272684423

İlk sayı mod 5 = 2, bu yüzden son dizgeyi elde etmek mümkün.



Bu 512 bitlik yarıasal rastgele olduğu varsayıldığında, cari PC'ler Bu faktörün ay haftayı alacaktır
didgogns

Şimdi güvenli.
user202729

2

402 puan

Alfabe: abcdefghijklmnopqrstu
Kaynak: abcdoi
Hedef: ioabcdnnnnnnnnnnnnnnnnnn
Kuralları yeniden yaz:

ab: ba
ba: ab
ac: ca
ca: ac
ekle
da: Reklam
bc: cb
cb: bc
bd: db
db: bd
cd: DC
DC: cd
na: Bir
nb: bn
nc: cn
nd: dn
nm: mn
nj: jn
aoi: eag
boi: ebg
coi: ekg
doi: edg
ae: ha
olmak: HB
ce: hc
de: hd
IOA: kam
İOK: 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
eşdeğer: io
ep: io
ef: io
hf: io
kd: dunnnnnnnnnn
kc: ctnnnnn
kb: bsnn
ka: aln
uc: cl
ub: bl
ua: diğ
tb: bl
TA: diğ
sa: diğ
um: oi
tm: oi
sm: oi
lm: oi
lj: oi
: n

Son kural, ihtiyacınız olan sayıda ns oluşturmanıza olanak sağlar .

Göründüğü gibi çirkin, aslında oldukça hoş, bir şekilde ya da başka ...


In * aoi:eogedilir eogolması gerekiyordu eag?
Kritixi Lithos

@Cowsquack evet, bunu aldığın için teşekkürler
boboquack

2

1337 Puan

Kesinlikle rekabetçi değil ve yaratması çok uzun sürdü (umarım hiçbir hata yapmadım).

İpucu:

Kurallara bakmadan önce kaynak dizgiyi anlamaya çalışın

Alfabe: ABEILRSTabcdefijlr

Kaynak: SIbbbbbbbdbffacebbfadbdbeecddfaeebddcefaddbdbeeecddaaaaadfaeeebdddcefbbfadbdbdbeeecdddfaeeebdddcefaddbdbeeecddaaaadfaeeebdddcefbfadbdbdbeeecdddfaeeebdddcbdbffacebfadbdbeecddfaeebddceeefadddbdbeeeecddddfaeeeebddddceefaddbdbeeecdddfaeeebdddceefadadbefadfacdbeecddfaeebddcefaeeefaddbdbeeecdddfaeeebdddcceecdfaeeaddceecefaeadcbefadfacecdfaebdceeeeefadddddbdbeeeeeecddddddfaeeeeeebddddddceeefaddaeecdddbdbffacebfadbdbeecddfaeebddceeefadddbdbeeeecddddfaeeeebddddceefaddbdbeeecdddfaeeebdddceefadadbefadfacdbeecddfaeebddcefaeeefaddbdbeeecdddfaeeebdddcceecdfaeeaddceecefaeadcbefadfacecdfaebdcefaefaeeebdddcdcefaceeaaaceefacdffacebdceeeeefadddddbdbeeeeeecddddddfaeeeeeebddddddceeefaddaeecdddbdbffacebfadbdbeecddfaeebddceeefadddbdbeeeecddddfaeeeebddddceefaddbdbeeecdddfaeeebdddceefadadbefadfacdbeecddfaeebddcefaeeefaddbdbeeecdddfaeeebdddcceecdfaeeaddceecefaeadcbefadfacecdfaebdcefaefaeeebdddcdcefaceeaaaaceefacdffacebdcecefacE

Hedef: SE

Kuralları yeniden yaz:

Ab: bA
bA: Ab
Aa: aA
aA: Aa
Ekle
dA: Reklam
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
BBC
dB: Bd
Bf: fB
fB: Bf
Bc: cB
cB: Bc
E: BE
S: SB
İb: Abl
Ala: 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
yani: ei
id: di
eğer: fil
lb: bl
la: al
le: el
ld: dl
Eğer: fl
lc: cl
icl: ci
ICL: cl
Ic: JRC
bj: jb
aj: ja
dj: jd
EJ: je
br: rb
ar: ra
dr: rd
er: Yeniden
fr: rf
cr: rc
BR: Rb
aR Ra
dR: Rd
eR: Re
fR: Rf
cR: Re
cj: JRC
fjr: jf
fjr: Eğer
O
Tb T
BT: T
BT: T
: T
dT T
eT: T
fT T
cT T
T:

2

Başlangıçta bazı hatalar yaptığımı unutmayın, böylece skor değişti. Bununla birlikte, fikir aynıdır. Umarım artık hata yoktur.


154 Puan

Alfabe: P.!xABC[{mD<
Kaynak: [x!P.P...P..P.P....P..P.P.....P.P....P......P.P..P...P.P...Pm(61 karakter)
Hedef: {CCCCC<(5 Cs, 7 karakter var)

Kurallar:

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 kural var, toplam karakter sayısı = 67.


1

106 puan - HyperNeutrino tarafından

Alfabe: ABCDEFGHIJ

Kaynak: FIABCJAGJDEHHID

Hedef: F

Kuralları Yeniden Yaz:

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

Tamam, HyperNeutrino bunun çözülemez olduğunu kanıtladı. Ancak bunun için başka bir çözüm var.


atın:

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

Kaynağın değeri bile. Hedefin değeri tuhaf. Her iki tarafı alırsak, değeri toplarsak ve değeri mod 2'ye alırsak, değerler aynı kalır. Bu nedenle, bu elde edilemez.



İsterseniz, istediğiniz çözümü düzenleyebilirsiniz.
Nathaniel

@Nathaniel, tamam tabi
VortexYT 16.07
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.