Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: Problema matematico

  1. #1

    Problema matematico

    Ciao a tutti e soprattutto ai bravi matematici,
    dato che io sono piuttosto scarso in materia vi pongo un piccolo quesito:

    Se ho un numero ad esempio 100 e voglio scomporlo in venti numeri casuali la cui somma dia però sempre 100 come posso fare?

    Spero di essere stato chiaro

    Grazie

  2. #2
    fai un ciclo dove il numero casuale estratto viene tolto dai limiti per estrarre il prossimo numero casuale.

    es:

    0;100 -> 20

    100-20 => 80
    0;80 -> 15

    80-15 => 65

    etc etc

    in linea teorica funziona però su 20 estrazioni è facile che gli ultimi siano uguali a zero. a questo punto giochi con i limiti in modo che le cose quadrino.

    ciao e buon divertimento

  3. #3
    numeri interi?
    solo postivi?

  4. #4
    No i numeri mi servirebbero anche decimali e tutti positivi certo

  5. #5
    un risultato tipo questo ti andrebbe bene lostesso ???

    99 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - ...



    no perche' la storia dei limiti e' parechio importante ...
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  6. #6
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    con numeri interi positivi:
    codice:
    $somma=0;
    $temp=array();
    for ($i=0;$i<4;$i++){
    	$temp[$i]=rand(1,100-$somma-10);
    	$somma+=$temp[$i];
    }
    $temp[4]=100-$somma;
    $somma=0;
    foreach($temp as $valore){
    	$somma+=$valore;
    	echo $valore."
    \n";
    }
    echo "somma: $somma";
    think simple think ringo

  7. #7
    Originariamente inviato da andr3a
    un risultato tipo questo ti andrebbe bene lostesso ???

    99 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - ...



    no perche' la storia dei limiti e' parechio importante ...
    concordo pienamente

  8. #8
    Originariamente inviato da marketto
    con numeri interi positivi:
    codice:
    $somma=0;
    $temp=array();
    for ($i=0;$i<4;$i++){
    	$temp[$i]=rand(1,100-$somma-10);
    	$somma+=$temp[$i];
    }
    $temp[4]=100-$somma;
    $somma=0;
    foreach($temp as $valore){
    	$somma+=$valore;
    	echo $valore."
    \n";
    }
    echo "somma: $somma";
    se metto 100 ho numeri negativi e in piu' la somma non la fa corretta




    codice:
    $max = 100;
    $subs = 20;
    $intv = $max / $subs;
    $lottery = Array();
    $tsum = 0;
    for( $a = 0, $b = ( $subs - 1 ); $a < $b; $a++ ) {
    	$num = rand( 1, ( $intv + ( $intv / 2 ) ) );
    	$tsum += $num;
    	array_push( $lottery, $num );
    }
    array_push( $lottery, ( $max - $tsum ) );
    
    var_dump( $lottery );
    pero' come noterai l'ultimo valore e' sempre molto grande rispetto gli altri ...
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  9. #9
    Concludendo non c'è soluzione?

  10. #10
    Originariamente inviato da silverwings
    Concludendo non c'è soluzione?
    la casualita' in questo caso non esiste, nel senso che sarebbe comunque 'incasuale' , tanto piu' se poi vorresti che ogni numero fosse univoco, ovvero non ripetuto .... aggiungici i decimali ... di sicuro un metodo puramente matematico c'e' ma non saprei quale
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.