Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Con velocità teoriche fino a 11 Gbps, gestione tramite app intelligente e protezione avanzata dei dispositivi, Roamii BE Pro porta il Wi‑Fi 7 tri‑band nelle abitazioni più esigenti. Un sistema Wi-Fi Mesh proposto da MSI allo scopo di garantire agli utenti una rete fluida e continua capace di sostenere streaming 8K, gaming competitivo e le applicazioni moderne più esigenti in termini di banda
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Mate X7 rinnova la sfida nel segmento dei pieghevoli premium puntando su un design ancora più sottile e resistente, unito al ritorno dei processori proprietari della serie Kirin. L'assenza dei servizi Google e del 5G pesa ancora sull'esperienza utente, ma il comparto fotografico e la qualità costruttiva cercano di compensare queste mancanze strutturali con soluzioni ingegneristiche di altissimo livello
Nioh 3: souls-like punitivo e Action RPG
Nioh 3: souls-like punitivo e Action RPG
Nioh 3 aggiorna la formula Team NINJA con aree esplorabili più grandi, due stili di combattimento intercambiabili al volo (Samurai e Ninja) e un sistema di progressione pieno di attività, basi nemiche e sfide legate al Crogiolo. La recensione entra nel dettaglio su combattimento, build, progressione e requisiti PC
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 12-03-2006, 17:27   #1
dejawho
Bannato
 
Iscritto dal: Aug 2005
Messaggi: 226
[C]Generazione di numeri random

Salve a tutti, qualcuno mi potrebbe gentilmente dire come si genera un intero random compreso tra zero e 10, usando il c?

Ultima modifica di dejawho : 12-03-2006 alle 17:35.
dejawho è offline   Rispondi citando il messaggio o parte di esso
Old 12-03-2006, 17:57   #2
redcloud
Bannato
 
L'Avatar di redcloud
 
Iscritto dal: Feb 2003
Città: Anche Chuck Norris usa Debian e Gnome
Messaggi: 1270
#include <stdlib.h>
#include <time.h>
#include <stdio.h>

int main() {

int i=0;

srand(time(NULL));

for(i=0; i <10; i++) {
printf("%d ", rand( ) % 11);
}

system("pause"); // se usi devc
}
redcloud è offline   Rispondi citando il messaggio o parte di esso
Old 12-03-2006, 19:10   #3
dejawho
Bannato
 
Iscritto dal: Aug 2005
Messaggi: 226
Quote:
Originariamente inviato da redcloud
#include <stdlib.h>
#include <time.h>
#include <stdio.h>

int main() {

int i=0;

srand(time(NULL));

for(i=0; i <10; i++) {
printf("%d ", rand( ) % 11);
}

system("pause"); // se usi devc
}

Ok, grazie. Io uso cygwin quindi system("pause"); non serve vero?
Poi volevo sapere, io il valore non lo devo stampare ma usarlo in una espressione quindi dovrebbe bastarmi rand( ) % 11 giusto?
Solo per curiosità perché prendo il resto della divisione per 11?
dejawho è offline   Rispondi citando il messaggio o parte di esso
Old 12-03-2006, 19:17   #4
Ziosilvio
Moderatore
 
L'Avatar di Ziosilvio
 
Iscritto dal: Nov 2003
Messaggi: 16213
Quote:
Originariamente inviato da redcloud
Codice:
printf("%d ", rand( ) % 11);
Chiamare "rand() % N" per generare un numero pseudorandom tra 0 e N-1, ha lo svantaggio di usare solo le cifre meno significative del valore restituito da rand --- il che, se rand non è molto sofisticata, può dare un generatore con cattive proprietà.
Un modo per stare un po' più tranquilli è trasformare il valore di rand in un valore in virgola mobile uniforme tra 0 incluso e 1 escluso, e poi moltiplicare per N e prendere la parte intera.
Ad esempio:
Codice:
int irand(int range) /* valore pseudorandom tra 0 e range-1 */
{
    return (int)(((double)rand()/(RAND_MAX+1))*range);
}
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" Chi scherza col fuoco si brucia.
Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici
REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu
Ziosilvio è offline   Rispondi citando il messaggio o parte di esso
Old 12-03-2006, 19:34   #5
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da Ziosilvio
Codice:
int irand(int range) /* valore pseudorandom tra 0 e range-1 */
{
    return (int)(((double)rand()/(RAND_MAX+1))*range);
}
Va sicuramente bene ma bisogna vedere quanto vale realmente RAND_MAX!! In certe implementazioni, RAND_MAX è uguale al massimo valore positivo per un intero. Facendo +1 ci sarebbe l'overflow! (e il valore diventerebbe negativo).
Su VC++ (.NET 2003) RAND_MAX vale 0x7FFF mentre su Linux (ho guardato su una Slackware) vale 2147483647.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 12-03-2006, 21:21   #6
Ziosilvio
Moderatore
 
L'Avatar di Ziosilvio
 
Iscritto dal: Nov 2003
Messaggi: 16213
Quote:
Originariamente inviato da andbin
bisogna vedere quanto vale realmente RAND_MAX!! In certe implementazioni, RAND_MAX è uguale al massimo valore positivo per un intero. Facendo +1 ci sarebbe l'overflow!
'Azz... vero!
Allora mi sa che bisogna scrivere RAND_MAX+1.0: il valore che viene fuori è un double, e (se non sbaglio) i double devono poter rappresentare correttamente tutti gli int.
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" Chi scherza col fuoco si brucia.
Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici
REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu
Ziosilvio è offline   Rispondi citando il messaggio o parte di esso
Old 22-04-2009, 17:49   #7
Nosf3r
Senior Member
 
L'Avatar di Nosf3r
 
Iscritto dal: Jan 2008
Città: Cuneo
Messaggi: 2774
E se invece si avesse bisogno di numeri casuali da -N a +N ?
__________________

Le mie trattative QUI - Cerco Pezzi di ricambio ANTEC SOLO II - Vendo Ram So-dimm ddr2 800 - Vendo 2 Router
Nosf3r è offline   Rispondi citando il messaggio o parte di esso
Old 22-04-2009, 20:14   #8
Torav
Senior Member
 
Iscritto dal: Dec 2005
Messaggi: 558
basta che tiri fuori un numero tra 0 e 2N e togli N
Torav è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo M...
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi Recensione HUAWEI Mate X7: un foldable ottimo, m...
Nioh 3: souls-like punitivo e Action RPG Nioh 3: souls-like punitivo e Action RPG
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti Test in super anteprima di Navimow i220 LiDAR: i...
Dark Perk Ergo e Sym provati tra wireless, software via browser e peso ridotto Dark Perk Ergo e Sym provati tra wireless, softw...
Amazon, ancora sconti sugli smartphone: ...
Il dispositivo hardware AI di Jony Ive p...
Wikipedia valuta il blocco di Archive.to...
Cupra Tavascan primo veicolo cinese a en...
openSIL, il firmware open-source di AMD ...
Da dove avete scaricato 7-zip? Il vostro...
Fotocamera selfie da 100 megapixel: la n...
Robot aspirapolvere in super offerta su ...
Addio a GPT-4o, il modello empatico (e p...
Razer Boomslang 20th Annyversary Edition...
Nintendo contro la pirateria: bloccati d...
NIS2 entra nel vivo: la soluzione di Cyn...
xAI perde due cofondatori in due giorni:...
Robot aspirapolvere Mova Z60 Ultra Rolle...
Google semplifica la rimozione di immagi...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 14:02.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v