Bir ekip, her sabah birisinin herkese kruvasan getirmesi gerektiğine karar verdi. Her seferinde aynı kişi olmamalı, bu yüzden kimin sırayla olacağını belirleyen bir sistem olmalı. Bu sorunun amacı, yarın kruvasan getirmenin kimin sırası olacağına karar vermek için bir algoritma belirlemektir.
Kısıtlamalar, varsayımlar ve hedefler:
- Kimin kruvasan getirmesi bir önceki öğleden sonra belirlenecek.
- Herhangi bir günde, bazı insanlar yoktur. Algoritma o gün mevcut olacak birini seçmelidir. Tüm devamsızlıkların bir gün önceden bilindiğini varsayalım, böylece kruvasan alıcısı bir önceki öğleden sonra belirlenebilir.
- Genel olarak, çoğu insan çoğu günlerde mevcuttur.
- Adil olmak adına, herkes kruvasanları diğerlerinden daha fazla satın almalıdır. (Temel olarak, her ekip üyesinin kruvasanlara harcamak için aynı miktarda paraya sahip olduğunu varsayın.)
- Bir listenin can sıkıntısını hafifletmek için bazı rasgelelik unsurları veya en azından algılanan rasgelelik unsurları olması iyi olurdu. Bu zor bir kısıtlama değildir: daha çok estetik bir yargıdır. Ancak, aynı kişi arka arkaya iki kez seçilmemelidir.
- Kruvasanları getiren kişi önceden bilmelidir. Bu yüzden P kişisi D gününde kruvasan getirecekse, bu gerçek P kişisinin bulunduğu önceki bir günde belirlenmelidir. Örneğin, kruvasan getirici her zaman bir gün önce belirlenirse, bir gün önce mevcut olanlardan biri olmalıdır.
- Ekip üyelerinin sayısı, depolama ve bilgi işlem kaynaklarının etkin bir şekilde sınırsız olacağı kadar azdır. Örneğin, algoritma geçmişte kruvasanları kimin getirdiğine dair tam bir geçmişe dayanabilir. Her gün hızlı bir bilgisayarda birkaç dakikaya kadar hesaplama iyi olurdu.
Bu gerçek bir dünya probleminin bir modelidir, bu yüzden senaryonun daha iyi modellendiğini düşünüyorsanız varsayımlara itiraz etmek veya düzeltmek için özgürsünüz.
Kaynak 1: Florian Margaine tarafından kruvasanları kimin alacağını bulun.
Kaynak 2: Gilles'in kruvasanlarını kimin alacağını bulun .
Bu soru Gilles'le aynı sürümdür ve farklı toplulukların bir programlama sorununu nasıl ele aldığını görmek için Programcılar üzerinde bir deneme olarak yeniden yayınlanmıştır.