Saya seorang guru , dan dalam beberapa hari saya harus memberi siswa saya ujian. Sekarang, saya selalu khawatir tentang murid-murid terindah saya yang terluka oleh yang paling tidak menyenangkan ketika mereka curang, jadi saya ingin mengacak tes sehingga tidak ada yang bisa menipu siapa pun.
Saat ini, tes saya disimpan dalam format ini:
When was Java invented?
Why does this matter?
1941
War was beginning
None of the above
What is the increment operator in Java?
Stack Overflow>how 2 incrememnt
Google>how 2 incrememnt
increment
++
Yaitu, pertanyaan dipisahkan oleh satu baris kosong, dan jawabannya semua didahului oleh dua spasi. Ini adalah output yang saya butuhkan:
What is the increment operator in Java?
++
increment
Google>how 2 incrememnt
Stack Overflow>how 2 incrememnt
When was Java invented?
War was beginning
1941
Why does this matter?
None of the above
Yaitu, setiap jawaban pada pertanyaan dalam urutan acak, dan urutan pertanyaan diacak juga. Perlu diingat bahwa jika pilihan jawaban adalah "Tidak ada yang di atas", itu harus tetap di bagian bawah. Setiap pertanyaan selalu memiliki empat jawaban, dan "Tidak satu pun di atas" hanya akan muncul sebagai pilihan jawaban terakhir - dan tidak pernah muncul sebagai substring dari pilihan jawaban yang bukan "Tidak satu pun di atas". Sayangnya, saya tidak dapat menulis ulang semua tes saya, jadi Anda harus mengambilnya dalam format itu. Juga, murid-murid saya harus bisa membacanya, jadi saya tidak bisa mengambil output dengan cara lain (kecuali seperti yang dijelaskan di bawah).
Saya tidak perlu itu menjadi acak sempurna. Selama dekat.
Celah standar dilarang.
Bonus
Sekarang, murid-murid saya sudah terbiasa dengan format sederhana itu, tetapi jika Anda dapat membuatnya terlihat seperti ini ...
1. What is the increment operator in Java?
A. ++
B. increment
C. Google>how 2 incrememnt
D. Stack Overflow>how 2 incrememnt
2. When was Java invented?
A. War was beginning
B. 1941
C. Why does this matter?
D. None of the above
Saya akan mengambil potongan 25% dari skor akhir Anda. Anda akan mendapatkan input dengan cara yang sama.
Yaitu, jika Anda memberi nomor pertanyaan dan memberi label jawabannya. Harap diingat bahwa pertanyaan harus dimulai dari 1, dan jawabannya dari A ke D.
NB: Contoh-contoh berbeda dari yang ada di jawaban karena saya mengubahnya setelah fakta. Contoh-contoh spesifik bukanlah intinya; jawaban harus bekerja dengan pertanyaan sewenang-wenang.
Jawaban:
Pyth -
48424139 byteAkan dikemas string.
Cobalah online di sini .
sumber
JavaScript ES6, 170 byte
Apakah fungsi anonim, beri nama. Catatan: ini menggunakan metode pengurutan acak, yang tidak sepenuhnya acak , tetapi cukup, asalkan Anda bukan guru probabilitas.
Dengan bonus, 180,75 byte
Uji itu!
Tampilkan cuplikan kode
sumber
_=>.5-Math.random()
ke variabelr
, yang saya referensi kemudian di baris kelima. Saya sebenarnya melakukan dua macam acak: satu pada item, dan yang lainnya pada pertanyaan. Jika Anda ingin mempelajari lebih lanjut ES6, saya sarankan membaca di sini .CJam,
54535552 byteDisimpan 1 byte dari menggunakan rilis yang lebih baru (tersedia pada TIO). Memperoleh 2 byte karena saya lupa mengacak urutan pertanyaan. Disimpan 2 byte dari bug lain yang diperbaiki pada TIO.
Cobalah online!
sumber
mr
operator (mengacak) untuk mengacak urutan pertanyaan sebelum logika jawaban terjadi.