Ini adalah tantangan lanjutan dari yang satu ini , jika Anda bingung harap periksa yang pertama.
Pertama, mari menjadi jumlah cache misses urutan s dari akses sumber daya akan memiliki asumsi cache yang kami memiliki kapasitas k dan menggunakan (FIFO) skema ejeksi pertama-in-first-out ketika penuh.
Kemudian diberi rasio , kembalikan urutan sumber daya yang tidak kosong mengakses s sedemikian sehingga ada k > j dengan m ( s , k ) ≥ r ⋅ m ( s , j ) .
Dalam bahasa Inggris biasa, buat urutan dari sumber daya mengakses sehingga ada dua ukuran cache di mana cache yang lebih besar memiliki (setidaknya) r kali lebih banyak cache yang hilang ketika digunakan untuk menyelesaikan s .
Contoh untuk , output yang valid adalah urutan ( 3 , 2 , 1 , 0 , 3 , 2 , 4 , 3 , 2 , 1 , 0 , 4 ) , karena hal itu menyebabkan 9 cache miss untuk ukuran cache dari 3 , tetapi 10 gagal untuk ukuran cache 4 .
Tidak masalah urutan apa yang Anda kembalikan, asalkan memenuhi persyaratan.
Kode terpendek dalam byte menang.
Jawaban:
Bahasa Wolfram (Mathematica) ,
124113101 byteCobalah online!
CATATAN: Output TIO bukan daftar yang sebenarnya karena itu akan sangat panjang. Fungsi wrapper pada TIO memberi tahu Anda jumlah kesalahan halaman untuk dua kapasitas cache.
Untuk daftar sebenarnya: Cobalah online!
Terkait: arXiv: 1003.1336
Bagaimana?
Mari kita asumsikan situasi di mana kita memiliki dua kapasitas cache,
3
dan4
.Juga, katakanlah
3
-cache telah{4, 2, 5}
paged, dan4
-cache telah{5, 4, 3, 2}
paged. Lalu, mari kita coba paging{1, 2, 3, 4, 5, 1, 2, 3, 4, 5}
:The
3
-cache memiliki 5 kesalahan halaman, sedangkan4
-cache memiliki 10. Kami juga kembali ke keadaan semula kami.Di sini, jika kita mengulangi paging
{1, 2, 3, 4, 5}
, kita akan secara asimptot mencapai rasio2
.Kami dapat memperluas fenomena ini ke kapasitas cache yang lebih tinggi sehingga kami dapat halaman
{1, 2, 3, ... , 2n + 1}
dan berakhir dengan rasio apa pun.sumber