Visualizzazione dei risultati da 1 a 10 su 26

Hybrid View

  1. #1
    Più in generale, dati due distinti interi non segnati min, max tali che 0 < min < max, l'idioma standard per generare un numero pseudorandom compreso tra min e max fa uso dell'operatore resto del C, ed è il seguente:

    codice:
        val = min + rand() % (max - min +1);

    L'espressione si semplifica in modo ovvio quando min = 0. Di vitale importanza l'incremento unitario presente nell'espressione del divisore (per chi ha bisogno dei sottotitoli, l'espressione tra parentesi evidenziata in rosso, a destra del segno %), troppo spesso dimenticato negli esempi in letteratura e sul web. Il resto è sempre, per definizione, strettamente minore del divisore!
    Ultima modifica di M.A.W. 1968; 04-06-2014 a 14:31
    • Un plauso a Grisha Perelman, raro esempio di genuino anticonformismo umano e scientifico.

  2. #2
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    Quote Originariamente inviata da M.A.W. 1968 Visualizza il messaggio
    dati due distinti interi non segnati min, max tali che 0 < min < max
    In realtà possono benissimo avere segno. L'unica condizione necessaria è che min < max
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  3. #3
    Quote Originariamente inviata da Scara95 Visualizza il messaggio
    In realtà possono benissimo avere segno. L'unica condizione necessaria è che min < max
    Estensione certamente possibile da un punto di vista meramente algebrico, ma sostanzialmente inutile parlando di generazione di numeri pseudorandom destinati ad indicizzare un array in linguaggio C, come appunto nel presente thread.

    In primo luogo, molti buoni compilatori (e vari supporti, come SPLINT o safer-C) pongono esplicitamente dei limiti all'uso di numeri segnati in tutte le espressioni assimilabili al subscripting, quelle di cui al paragrafo 6.5.2.1 del C'99, come già ho spiegato varie volte (ad esempio qui). Secondariamente, le norme di stile concordano nel raccomandare caldamente l'uso di size_t per ogni tipo di indici. Terzo, e non ultimo, l'OP potrebbe confondersi.
    • Un plauso a Grisha Perelman, raro esempio di genuino anticonformismo umano e scientifico.

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.