Compre 100 maçãs, supondo que haja 10 irmãos e irmãs no total, como distribuir maçãs aos irmãos e irmãs de forma razoável e justa, para que eles não lutem ou briguem.
Requisitos:
- Todos devem ter pelo menos uma maçã, caso contrário, crianças que não têm uma maçã podem ser infelizes
- Para garantir a equidade, todos têm a mesma probabilidade de comprar uma maçã e não favorecem nenhuma parte
- A maçã deve ser pontuada e não pode ser mantida
Use 0 ~ 9 para representar 10 irmãos e irmãs mais novos. Depois, para garantir que cada pessoa tenha pelo menos uma maçã, primeiro dê a eles uma maçã para "garantir o fundo" e depois comece a atribuí-los aleatoriamente
Você um ... eu um ...
#include <iostream>
#include <time.h>
using namespace std;
int main() {
int a[10]= {1,1,1,1,1,1,1,1,1,1,};
int rest = 100 - 10;
srand((unsigned int) (time(NULL)));
while (rest != 0) {
int i = rand() % 10;
a[i]++;
rest--;
}
for (int j = 0; j < 10; ++j) {
cout << a[j] << " ";
}
return 0;
}
Bem ... justo e razoável.