Saya yakin sebagian besar dari kita pernah mendengar tentang bom ritsleting dan trik bom dekompresi serupa, di mana input yang dibuat dengan jahat menciptakan output yang tidak proporsional secara besar-besaran. Kami bahkan punya pertanyaan di sini untuk melakukannya ke kompiler pada satu titik.
Yah, terpikir oleh saya bahwa penurunan harga adalah format kompresi, menggantikan tag HTML besar dengan token "terkompresi" MD. Karena itu, mungkinkah membangun bom kompresi di Markdown?
Aturan tantangan:
Pengajuan harus berupa teks penurunan harga, dengan panjang antara 50 dan 256 karakter. (Mengenakan minimum untuk mencegah beberapa smart-aleck memposting respons 3 karakter atau serupa.)
Pengajuan akan diproses oleh prosesor Markdown StackExchange seperti yang diterapkan di situs ini.
Skor Anda akan menjadi rasio jumlah karakter dalam HTML yang dihasilkan dengan jumlah karakter teks Penurunan Harga Anda.
Kemenangan skor tertinggi.
sumber
Jawaban:
Blockquotes, 137.469 / 256 = 536,99
6.908 karakter, 511 baris baru, 130.050 spasi
Penurunan harga pasti menangani tanda kutip bersarang secara aneh. Setiap
>
karakter diubah menjadi<blockquote></blockquote>
rasio 1 banding 25 yang solid. Tapi tunggu! Saat merender HTML itu juga menambahkan dua spasi per sarang! Upaya ini untuk merender menyebabkan browser saya sedih, dan saya akan menyimpannya di dalam sangkar kode untuk saat ini. Jangan ragu untuk membuka kunci sendiri!Input kode terdiri dari 255
>
diikuti oleh&
sebagai karakter terakhir tidak berubah, tetapi lolos. Terima kasih BWO!
sebagai karakter terakhir yang memberikan blockquote terakhir kelas spoiler dengan tag p kosong di dalamnya. Terima kasih bta, 11 karakter tambahanMemasukkan:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>!
Output HTML:
Inilah yang terlihat dalam tampilan editor!
Merencanakan hasil sebagai jumlah
>
peningkatan seperti yang disarankan oleh LambdaBeta:sumber
!
sebelum ampersand, maka level terakhir dari blockquote akan mendapatkan `class =" spoiler "` ditambahkan ke dalamnya. Tambahkan ke tingkat lain dan itu lebih pendek output.MathJax, 529 252 640 ish / 256 ≈ 2 067 393
Kode gaya tertawa tua yang bagus
$$\def\a{🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣}\def\b{\a\a\a\a\a\a\a\a\a\a\a\a\a}\def\c{\b\b\b\b\b\b\b\b\b\b\b}\def\d{\c\c\c\c\c\c\c\c}\d\d\d\d\d\d\d\d$$
mengalikan inefisiensi besar mewakili karakter eksotis di MathJax dengan faktor yang cukup besar.
Batasan konfigurasi StackExchange MathJax dari 10 000 ekspansi makro sedang dihormati, sementara batasan browser klien, yang sangat mungkin menyebabkan masalah memperluas makro, tidak. (Browser saya juga tidak kooperatif, jadi angkanya adalah perkiraan.)
sumber
Tautan singkat: 68.960 / 256 = 269.375
Hanya ASCII: 10.114 / 256 = 39.508
Output adalah urutan elemen yang masing-masing terlihat seperti:
Setelah overhead tetap untuk membuat referensi URL, setiap tautan 5 karakter berkembang menjadi
42+strlen(url)
output karakter. Susun URL untuk memiliki jumlah karakter maksimum yang perlu diloloskan, dan ini berkembang menjadi47+3*strlen(url)
karakter per tautan. Sebuah eksperimen kecil menunjukkan bahwa output optimal melibatkan 26 tautan, dengan 114 karat per tautan.Pembaruan : Jika Anda mengartikan batas "256 karakter" untuk memasukkan karakter Unicode, Anda dapat memeras lebih banyak kekacauan. Mengganti caret dengan karakter bathtub Unicode (🛁, codepoint U + 1F6C1) menghasilkan
47+18*strlen(url)
karakter output per karakter input dengan total54.57468.960 (berkat notasi tautan jimmy23013 yang lebih pendek).Input Unicode:
Output adalah serangkaian:
sumber
[1],[1],[1]...
tautan. 2."
memiliki lebih banyak karakter daripada%5E
di versi non-Unicode.15888/50 = 317.76: Penyalahgunaan MathJaX
Ini kodenya:
Seperti inilah tampilannya:
HTML yang dihasilkan adalah:
Jangan lupakan orang-orang MathJax Anda.
Peringatan: MathJaX hanya menunjukkan kesalahan saat mengedit, jadi Anda harus melihatnya di editor. Ini masih implementasi penurunan harga di situs ini, jadi harus valid. Setelah diposting
Misplaced &
peringatan berubah menjadi normal & 's.sumber
Penyorotan sintaksis ,
63766464/256 ≈ 25.25+0.34375 berkat Ismael Miguel (menggunakan tab alih-alih 4 spasi)!
Ini menggunakan anotasi terpendek (sayangnya spasi sepertinya penting) untuk mendapatkan penyorotan sintaksis
lang-c
, membuka blok kode dan mengisinya dengan&
dan0
:Kita mulai dengan
&
karena diperluas ke&
dan gunakan0
selanjutnya, bergantian ini terus-menerus menciptakan<span>
elemen baru denganclass
atribut Sayangnya kami tidak dapat menggunakan saja&
atau&<&<...
karena keduanya tetap samapun
-<div>
Itu menghasilkan:
Dan yang diberikan oleh browser Anda menghasilkan:
sumber
<pre class="lang-c prettyprint-override"><code>&0&0& ... 0&0&0& </code></pre>
tempat...
yang lebih sama. Tag rentang tidak ada sama sekali. Itu skor 739/256 = 2.887190/50 = 3.8: Cetak miring
Ternyata, kekhawatiran 3 karakter Anda adalah benar.
*q*
menghasilkan<em>q</em>
rasio 10/3. Pemberian dua carriage return<p>...</p>\n\n
(dua carriage return tidak diperlukan, tetapi tampaknya diproduksi) dan rasio yang dihasilkan 9/2. Rasio total, 19/5.Html yang dihasilkan:
Dalam aksi:
q
q
q
q
q
q
q
q
q
q
sumber
> q
menggunakan<blockquote>
bukannya<em>
lebih baik. (catatan: Anda melakukannya untuk setiap baris lain, jika tidak hanya satu tag)222/53 = <4.2: Nasty lolos dalam inklusi gambar.
Hasil dalam:
HTML yang dihasilkan harus kira-kira:
Ini menyalahgunakan pencantuman gambar dan harus melarikan diri.
Dulu jauh lebih baik, tetapi tampaknya penurunan SE cukup non-standar untuk merusaknya.
Kiriman saya sebelumnya (yang bukan bagaimana SE membuatnya) adalah:
428/50 = 8.56: Nasty lolos dalam inklusi gambar.![&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&](&)
HTML yang dihasilkan harus kira-kira:
Ini menyalahgunakan fakta bahwa sebagian besar editor penurunan harga akan mengganti ampersand dalam teks alt dengan ampersand yang diloloskan ganda agar dapat ditampilkan dengan benar. Sementara itu satu ampersand dilemparkan ke bagian src sehingga parser akan melihatnya sebagai gambar.
sumber
[1]:https://&
garis, dan kemudian menggunakan![&][1]
lebih banyak waktu?MathJax: 13.579 / 52 = 261.13
Cukup buat sekelompok MathJax in-line kosong:
Kode HTML (dapat memeriksa ruang kosong di atas):
sumber
4830/256 = 18,87
Sebuah ide berdasarkan koreksi otomatis HTML. Skor tidak cukup tinggi.
sumber
421/56 = 7.518
Yang menghasilkan HTML berikut di SE:
... dan output berikut:
&
&
&
&
&
&
sumber
11190/255 = ~ 43.88
Saya terinspirasi oleh jawaban teratas ini , tetapi saya terlalu bodoh untuk mengalahkannya dan mencapai jumlah karakter maksimal jadi, saya kira saya harus puas dengan apa yang saya miliki ¯ \ _ (ツ) _ / ¯. Sebenarnya ada dua spasi setelah blockquote terakhir, tetapi format tidak menunjukkannya.
> - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - >
HTML:
sumber