Radyasyon yumuşatılmış


38

Çok basit: Herhangi bir karakteri kaldırırsanız, yine de bir kinin olduğu yerde düzgün bir kın olun.

Bu ve radyasyon arasındaki fark quine program ise olmasıdır sertleştirilmiş ABbir radyasyon quine sertleştirilmiş Açıkışı olur AB, ama burada, Açıkış alacaktı A.

Kod golf, tüm standart kurallar, standart boşluklar uygulanır, hile yapılmaz.


Boş bir program geçerli mi?
Loovjo

4
@Loovjo No.
Martin Ender

3
@ feersum Mücadelede "Nerede bir ... olun" ifadesi var, ABçıktı vermeli AB.
Mego

1
@Mego Ben söylediğini biliyorum, ancak özellikler her zaman çok kesin değildir ve örneklerde gösterilmemiştir.
feersum

4
@ feersum "Bir" yapmak ", bir yazı yapmak anlamına gelir. "Bu ve radyasyonla sertleştirilmiş bir yüzgeç arasındaki fark ...", tek farkın, herhangi bir bayt kaldırılmış olan programın, orijinal programın kaynağını basan bir program değil, bir yüzgeçle sonuçlanmasıdır. Burada belirsizlik yoktur.
Mego

Yanıtlar:


22

> <> (Balık), 145 107 bayt

Bu cevap sorunu çözmek için> <> 'nin atlama talimatını kullanır.

!<0078*+00~..>0[!."r43a*+8a+&{ee+00&1-:&(?.~~ol?!;4b*0.0f<>0['r3d*159*+&}7a*00&1-:&(?.~~ol?!;68a*+0.0+*a58 

Bu quine aslında iki farklı quine üreteci içerir. Bazı atlama mantıklarıyla başlar ve varsayılan olarak soldaki sırayı kullanır. Bir karakter atlama mantığından veya soldaki dizgeden kaldırılırsa, program sağdaki çizgiye atlar.

Burada deneyebilirsiniz

açıklama

Kod birkaç parçaya ayrılabilir:

A: !<0078*+00~..>0[!. 
B:              >0[!."r43a*+8a+&{ee+00&1-:&(?.~~ol?!;4b*0.
C:                                                    .0f<
D:                                                        >0['r3d*159*+&}7a*00&1-:&(?.~~ol?!;68a*+0.
E:                                                                                                 .0+*a58 

Farklı parçaların açıklaması:

  • A: C'nin sağına atlar. Herhangi bir karakter A'dan silinirse, bu D'nin soluna veya E'nin sağına atlayarak ikinci sırayı tetikler. Herhangi bir karakter B veya C'den silinirse, kod 1 karakter sola kaydırılır ve bu, D'nin sola atlamasına neden olur.
  • C: Bu kod B'nin soluna atlar.
  • B: Quine # 1
  • D: Quine # 2
  • E: D'nin soluna atlar

Kesenin açıklaması (örnek # 1 ile):

Talimat işaretçisi, herhangi bir sıraya ulaştığında, sıranın tamamen sağlam olduğundan emin olursunuz.

>0[!.                                       //Fix the instruction pointer's direction and empty the stack (The '!.' is a leftover from codepart A)
     "r43a*+                                //Start reading all of the code and add the '"' character to the stack
            8a+&                            //Because the quine started reading at the 19th character instead of the first, the stack has to move 18 characters. 
                                            //This part saves the number 18 to the register.
                {ee+00&1-:&(?.              //Move the stack one to the left, decrease the stack by 1. If the stack is not empty yet, jump back to the start of this section.
                              ~~              //Clean the temporary variables from the stack. It should now contain the whole quine.
                                ol?!;4b*0.  //Print the first character from the stack. As long as the stack isn't empty, jump back to the start of this section.

Açıklama lütfen.
CalculatorFeline

Yukarıda yinelenen.
Hesap MakinesiFeline

1
Bu yeterince açık mı?
Thijs ter Haar

36

Lenguage , 4.54 × 10 761 bayt

Bu boş karakter sayısına sahiptir:

453997365974271498471447945720930600149036031871190716908688344432973027776681259141680552038829875159204621651993092104775733418288411812715164994750890484868305218411129600012389568016974351721147925344946382782884546247102886167837964612372737300786173159265347137401863281368021545169383664534228503236761742285358985343373496184959796553930661837467682191561275123057706776367104142995491262443697167483190110516522677811931124842961701222425076750211774387637740969301686178545299089832300154448308384461700726890067468872402133010536518468336342175124002115991866466700174974019423711837589532744970385003356612639263433822126850314801275940879069069974437167102618471264140597777702065896715558989678487253830854848740247786166790545462769498303055791292

Bu zorluktaki kriterin "uygun bir ince" tanımıyla nasıl çakıştığını görünce, ciddi olarak, Unary varyantının kazanacağını düşünüyorum.

Genişletilmiş Brainfuck kodu:

>>+++>++++++++>+++>+++>+>+>+>+>+>+>+>+++>+>+>+>+>+>+>+>+>+++>+>+>+>+>+>+>+>+>++++++++>++++>++++++++>++++>+++++++>++>+++>+>+++>++>+++>+++>+>+>+>+>+>+>+>+>++++>++++>+++++++>+>++++>++++++++>++>+++++++>+++>++++++++>++>+++++++>+++>++++++++>++>+++++++>+++>++++++++>++>+++++++>+++>+++++>++++++++>++++>+++++++>+++++++>+>+>+++>+>+>+>++++++++>+++>+++++++>+>+++>+>+++>+>+++>+>++++++++>++++>++++++++>++++>++++++++>++++>++++>+>+++>+++>++>+++++++>+++++++>+>+>+>++++++++>+++>+>++++++++>++++>+>+++>++>+++++++>++>+++++++>++++>++++>++++++++>+++>++++++++>+++>+++>+>++++>++++>++>+++++++>+++>+++>++++++++>++++>+>+++>++>+++++++>++++>++++>+++++++>+++>+++>+++>+++>++++++++>++++>++++>+>+++>+>+++>++>+++++++>+++++++
[
    [->+>+<<]
    >>>>[<<[->+<]>>[-<<+>>]>]
    <<[-[->+<]+>]+++
    [[->>+<<]<]<
]
+>+>+>+
[>]+++>++
[
    [<].
    >[-]>[-]>[-]>[-]
    <+[<<++++++++>>->+>-[<]<]
    ++++++++>++++++++>+++++++>>
]
.

Lenguage programından bir karakter kaldırılırsa, son karakter a <olur ve bu da programın bir karakterden daha az karakter yazmasına neden olur.


1
Bu sabit noktayı nasıl buldun? (Ya da alternatif olarak, Brainfuck kodu nasıl çalışır?)
Martin Ender

1
@ MartinBüttner İlk büyük döngü, verileri "> +++ ..." şeklinde kopyalar ve kodlar (ve tersine çevirir). Diğer büyük döngü, verileri tek bir tamsayı olarak yazdırır. O kadar karmaşık değil ama sadece Brainfuck olduğu için uzun.
jimmy23013

Doğru, öyleyse sadece sade bir Brainfuck quine gibi, fakat farklı bir kod çözme işlevi var?
Martin Ender

@ MartinBüttner Biraz. Ancak programın yarısı "kod çözme işlevi" dir.
jimmy23013

Bu kodgolf.stackexchange.com/q/57257/8478 için rastgele puanların cevaplarını oluşturmak için benzer bir teknik kullanabileceğiniz görülüyor .
Martin Ender
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.