Ini pemilihan! Area tempat kami menerapkan sistem pemungutan suara yang disebut limpasan instan (kadang-kadang disebut pemilihan alternatif atau pemilihan preferensial ). Setiap pemilih memerintahkan setiap kandidat dari yang paling disukai sampai yang paling tidak disukai, menandai "1" untuk kandidat yang paling disukai mereka, "2" untuk kandidat kedua mereka, dan seterusnya hingga setiap kandidat diberi nomor. Saya akan membiarkan koala yang ramah ini menjelaskan sisanya:
(Gambar dimodifikasi dari aslinya oleh Patrick Alexander , digunakan di bawah lisensi CC BY-NC-SA 3.0 AU ).
Jika Anda lebih suka penjelasan limpasan instan Anda dalam bentuk teks, ada juga artikel Wikipedia .
(Catatan: Ini juga mungkin, meskipun tidak mungkin, untuk ada dua atau lebih kandidat dengan suara terbanyak. Dalam situasi ini, pilih salah satu dari mereka secara acak pada probabilitas yang sama dan hilangkan mereka.)
Dalam tantangan ini, baris input pertama adalah daftar string, yang merupakan nama-nama kandidat untuk pemilihan. Dalam contoh-contoh ini saya telah menggunakan nilai batas pipa, meskipun merasa bebas untuk menyesuaikan format input yang sesuai dengan bahasa Anda.
The Omitted Anti-neutrino|Placazoa|Alexander the Awesome|Tau Not Two|Semolina Sorcerer
Berikut ini adalah nbaris input yang juga daftar string, yang masing-masing mewakili satu suara. Entri pertama menyatakan bahwa preferensi # 1 suara, berikutnya preferensi # 2, dll. Misalnya:
Alexander the Awesome|Semolina Sorcerer|Tau Not Two|Placazoa|The Omitted Anti-neutrino
akan berarti bahwa suara tertentu memiliki Alexander sebagai preferensi pertama mereka, Semolina Sorcerer sebagai yang kedua, Tau Bukan Dua sebagai yang ketiga, dll. Anda dapat mengasumsikan bahwa setiap suara akan berisi setiap kandidat, dan bahwa tidak akan ada suara yang kosong atau tidak lengkap.
Dengan memberikan suara sebagai input, program atau fungsi Anda kemudian akan menghasilkan pemenang pemilihan. Anda dapat menemukan implementasi referensi tak bertali di Python 3 di sini .
Contoh Input dan Output
Memasukkan
Dionysius|Portal Butter|Alexander the Awesome|Red Trainmen
Portal Butter|Alexander the Awesome|Dionysius|Red Trainmen
Dionysius|Portal Butter|Alexander the Awesome|Red Trainmen
Portal Butter|Red Trainmen|Alexander the Awesome|Dionysius
Dionysius|Portal Butter|Alexander the Awesome|Red Trainmen
Alexander the Awesome|Red Trainmen|Portal Butter|Dionysius
Red Trainmen|Alexander the Awesome|Dionysius|Portal Butter
Dionysius|Portal Butter|Alexander the Awesome|Red Trainmen
Red Trainmen|Dionysius|Portal Butter|Alexander the Awesome
Alexander the Awesome|Dionysius|Red Trainmen|Portal Butter
Dionysius|Portal Butter|Alexander the Awesome|Red Trainmen
Alexander the Awesome|Red Trainmen|Dionysius|Portal Butter
Keluaran
Alexander the Awesome
Memasukkan
Depressed Billy|Sighted Citrus|Frosty Fox|Electronic Accident
Frosty Fox|Sighted Citrus|Electronic Accident|Depressed Billy
Frosty Fox|Depressed Billy|Sighted Citrus|Electronic Accident
Depressed Billy|Electronic Accident|Sighted Citrus|Frosty Fox
Depressed Billy|Sighted Citrus|Electronic Accident|Frosty Fox
Depressed Billy|Electronic Accident|Sighted Citrus|Frosty Fox
Electronic Accident|Frosty Fox|Depressed Billy|Sighted Citrus
Sighted Citrus|Frosty Fox|Electronic Accident|Depressed Billy
Frosty Fox|Depressed Billy|Sighted Citrus|Electronic Accident
Sighted Citrus|Electronic Accident|Frosty Fox|Depressed Billy
Frosty Fox|Electronic Accident|Depressed Billy|Sighted Citrus
Sighted Citrus|Frosty Fox|Depressed Billy|Electronic Accident
Keluaran
Sighted Citrusatau Frosty Fox(secara acak)
Memasukkan
Anda bisa mendapatkan set input terakhir di sini . Ini adalah salah satu area pemungutan suara dari pemilihan Australia baru-baru ini, dan terdiri dari 63.428 suara.
Keluaran
Ross HART
