Ikhtisar
Buat program yang menghasilkan array dengan panjang acak dengan angka acak, lalu terapkan serangkaian aturan yang mengubah array. Setelah aturan diterapkan, cetak jumlah array kecuali ditentukan lain
Pengaturan array
Array harus panjang acak antara 5 dan 10 inklusif, dengan bilangan bulat acak antara 1 dan 20 inklusif. Setiap panjang array harus memiliki probabilitas yang sama untuk terjadi dan setiap integer harus memiliki probabilitas yang sama untuk dipilih per elemen.
7 aturan
Aturan harus bertindak seolah-olah diterapkan secara berurutan (misalnya: aturan 1 bertindak sebelum aturan 2) dan hanya diterapkan sekali. Untuk bukti aplikasi aturan, array harus dicetak ke konsol setelah setiap aplikasi aturan dan satu kali sebelum aturan diterapkan.
- Jika array berisi angka 7, kurangi 1 dari setiap elemen
- Jika aturan 1 diterapkan dan array sekarang berisi 0, tambahkan 1 ke setiap elemen
- Jika array berisi 13, kecualikan 13, dan semua elemen yang mengikuti, dari array
- Jika array berisi 2, kecualikan semua angka ganjil
- Jika array berisi 20, dan elemen ketiga genap, kembalikan 20 sebagai penjumlahan, lalu terminasi. Jika 20 hadir dan elemen ketiga ganjil, kembalikan 20 kali panjang array sebagai jumlah kemudian diakhiri.
- Jika jumlahnya lebih besar dari 50, hapus elemen terakhir berulang kali hingga kurang dari atau sama dengan 50
- Jika array berisi 16, cetak jumlah dalam desimal dan heksadesimal.
Contoh
Berikut ini adalah array awal,
[20, 2, 5, 7, 14, 8]
Aturan 1 dapat diterapkan:
[19, 1, 4, 6, 13, 7]
Aturan 3 diterapkan selanjutnya:
[19, 1, 4, 6]
Tidak ada aturan lain yang diperlukan, sehingga program mengembalikan 30 sebagai jumlah.
Catatan
- Saya bukan pegolf kode berpengalaman, meskipun saya dapat mengatakan catatan pribadi saya adalah di Python 3 dengan 369 byte .
- Aturan tidak harus benar-benar diterapkan secara berurutan, tetapi harus bertindak seolah-olah mereka melakukannya.
[3 3 3 3 4 3]
dan [4 4 3 4 4]
, masing-masing dengan probabilitas 50%, sesuai dengan apa yang tertulis di bawah "pengaturan array". Jadi saya bisa menampilkan 19
setiap waktu? (Tentu saja, yang benar-benar saya pikirkan adalah bahwa definisi "acak" perlu diklarifikasi.)
If the array contains a 20, and the third element is even/odd
, bagaimana jika array memiliki kurang dari 3 elemen pada langkah ini?