Bir ekip, her sabah birisinin herkese kruvasan getirmesi gerektiğine karar verdi. Her seferinde aynı kişi olmamalı, bu yüzden bir sonraki sıranın kim olduğunu belirlemek için 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ı rastgele unsurlar veya en azından algılanan rasgelelik unsurlarına sahip olmak güzel 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, o zaman bir gün önce mevcut olanlardan biri olmalıdır.
- Ekip üyesi 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 tamam 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.
Menşei: Florian Margaine tarafından kruvasanları kimin alacağını öğrenin . Buradaki reformlamamın biraz farklı gereksinimleri var.