Le formule sono scritte bene .
Allora vi spiego il problema.
Il problema consiste nell'allocare la domanda in spazi(slot) all interno dei un rack(immaginatelo come un mobile con un tot di cassetti chiamati slot) dove al loro interno deve essere allocata la domanda dei clienti in ogni istante di tempo.
Questo programma mi serve soltanto per generare le domande per un certo numero di istanti di tempo e per un certo numero di prove che vengono inseriti manualmente all inizio del programma.
Una volta che ho il numero di slot e il numero di mobili ho la domanda totale che può essere allocata e cioè il prodotto slot e mobili(rack).
NB: un cliente può stare solo su un mobile.
siccome voglio avere domande grandi e pochi clienti, ho deciso che la domanda dei clienti varia dalla metà degli slot +1 a tutti gli slot su un mobile. Il codice è il seguente mi da la domanda
domanda_cliente=rand()%(slot-(slot/2)+1)+(slot/2);
mentre questo mi da il numero di clienti ottenuti dividendo la domanda totale diviso la domanda massima e minima
clienti= rand()%((2*(domanda_tot_sistema/slot)-(domanda_tot_sistema/slot))+1)+(domanda_tot_sistema/slot
successivamente ho messo questo if
etichetta:
for (i=1;i<=clienti;i++)
{
domanda_cliente=rand()%(slot-(slot/2)+1)+(slot/2);
cout<<"Domanda cliente "<<i<<" = "<<domanda_cliente<<endl;
totale+=domanda_cliente;
if(totale>=domanda_tot_sistema)
goto etichetta;
}
cout<<endl;
cout<<"La capacita' richiesta dal sistema e' = "<<totale<<endl;
dove prima sommo tutte le domande generate e se questa è superiore alla capacità che il sistema può sopportare torna a etichetta e calcola nuovamente la domanda fino a che la domanda sia inferiore alla capacità sopportata dal sistema.
una volta trovata la domanda la stampa a schermo.
Spero di essere stato chiario