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

Discussione: Math.ceil(x)

  1. #1

    Math.ceil(x)

    ciao..voi sapete se questo metodo mi può far uscire due numeri uguali con il random?(ANCHE SE è IMPROBABILE..SU UN VALORE ALTO)

  2. #2

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    3,259
    a quel che ne so ceil() arrotonda un numero all'intero + alto...

  4. #4
    ma come faccio a non far ripetere dei numeri già usciti random?

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    3,259
    dovresti salvarli in un array, controllare quando fai un numero che non sia presente nell'array...

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Ieri non avevo capito la domanda, per cui non avevo risposto.

    Non e` comunque unproblema JS, ma unproblema diprogrammazione e calcolo probabilistico.

    La prima volta devi estrarre tra 90 numeri, la seconda tra 89 ... e cosi` via.
    E` la differenza fra estrazioni indipendenti ed estrazioni successive. E` uno dei temi su cui tutti gli studenti di fisica e materie affini devono sbattere la testa (di solito all'esame di Fisica1 oppure Analisi1).

    Vedi questo programmino.

    codice:
    <script type="text/javascript" language="JavaScript">
    function inizial() { // inizializzazione matrice
      var numeri = new Array(90); // preparazione matrice
      for (var i=0; i<90; i++) {
        numeri[i] = i+1;
      }
    }
    
    function estr1() {  // estrae un numero e accorcia matrice
      if(numeri.length < 1) {
        alert("non si puo` procedere all'estrazione");
        return 0;
      }
      var n = Math.floor(Math.random() * numeri.length;
      var estratto = numeri[n];
      var i = numeri.splice(n,1); // non so se funziona
      //for (var i=n+1; i<numeri.length; i++) { // toglie n da matrice
      //  numeri[n-1] = numeri[n];
      //}
      //numeri.length = numeri.length-1;
      return estratto;
    }
    </script>
    Ogni volta che viene chiamato estr1() viene ritornato un numero random scelto tra quelli non ancora estratti (corrisponde all'estrazione di un numero del lotto).
    Ogni volta che viene chiamato inizial() viene ripristinata la matirce (tutti i numeri vengono immessi nel cestello).

    Non ho controllato in quali browser funziona splice(), per cui ho scritto anche la funzione equivalente.

    Esempio HTML:

    <body onload="inizial();">

    <form ...>
    <input type="button" value="inizializza" onclick="inizial(); this.form.estratti.value='';">
    ...
    <input type="button" value="estrae" onclick="this.form.estratti.value+=estr1()+' ';">
    ...
    <input type="text" name="estratti" value='' readonly="true">

    Provalo, perche` io non lo ho fatto.
    E testa anche se estraendo 90 numeri sono tutti diversi. Attenzione: alla 91. estrazione dovrebbe dare il codice di errore.
    Puoi anche testare il tutto con un numero inferiore di numeri, cambiando il 90 presente nella prima funzione.


    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  7. #7
    no..questo non funziona....come faccio a creare un array di valory?
    tenendo conto che i valori glià usciti io ce li ho stampati sulla pagina..

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Ma tu le leggi le mie risposte?

    La prima funzione crea un array di valori (tra 1 e 90).
    La seconda funzione estrae un numero e lo toglie dalla array.

    Per estrarre 6 valori devi premere 6 volte sul bottone estrai.

    In Netscape e Mozilla dovrebbe funzionare senza problemi, in IE potrebbe avere problemi la funzione splice(), per cui la si puo` sostituire con il codice commentato subito sotto.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  9. #9
    io uso ie e mi dà errore...sei sicuro?

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Come dicevo io nolo ho testato, per cui ci possono essere errori di sintassi. Errori di logica non credo.

    Se mi dici che errore ti da` e in quale riga, ti posso aiutare, altrimenti e` un po' ardua.

    In IE devi abilitare la visualizzazione degli errori JS, selezionando (o deselezionando - non ricordo) un'opzione tra le opzioni internet avanzate.

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

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.