Hablando de compartir manzanas con niños ...

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.

Publicado 34 artículos originales · Me gusta 10 · Visitantes más de 10,000

Supongo que te gusta

Origin blog.csdn.net/weixin_41111088/article/details/105097123
Recomendado
Clasificación