Compre 100 manzanas, suponiendo que haya 10 hermanos y hermanas en total, cómo distribuir manzanas a los hermanos y hermanas de manera razonable y justa para que no peleen ni peleen.
Requisitos:
- Todos deben tener al menos una manzana, de lo contrario, los niños que no tienen una manzana pueden ser infelices
- Para garantizar la equidad, todos tienen la misma probabilidad de obtener una manzana y no pueden favorecer a ninguna de las partes.
- La manzana debe ser puntuada y no puede mantenerse
Use 0 ~ 9 para representar a 10 hermanos y hermanas menores, luego para asegurarse de que cada persona tenga al menos una manzana, primero deles una manzana para "garantizar el fondo" y luego comience a asignarlos al azar
Tu uno ... yo uno ...
#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;
}
Bueno ... justo y razonable.