Torna indietro   Hardware Upgrade Forum > Software > Programmazione

HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione
HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione
HONOR ha finalmente lanciato il suo nuovo flagship: Magic 8 Pro. Lo abbiamo provato a fondo in queste settimane e ve lo raccontiamo nella nostra recensione completa. HONOR rimane fedele alle linee della versione precedente, aggiungendo però un nuovo tasto dedicato all'AI. Ma è al suo interno che c'è la vera rivoluzione grazie al nuovo Snapdragon 8 Elite Gen 5 e alla nuova MagicOS 10
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata
Le webcam Insta360 Link 2 Pro e Link 2C Pro sono una proposta di fascia alta per chi cerca qualità 4K e tracciamento automatico del soggetto senza ricorrere a configurazioni complesse. Entrambi i modelli condividono sensore, ottiche e funzionalità audio avanzate, differenziandosi per il sistema di tracciamento: gimbal a due assi sul modello Link 2 Pro, soluzione digitale sul 2C Pro
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza
Motorola edge 70 porta il concetto di smartphone ultrasottile su un terreno più concreto e accessibile: abbina uno spessore sotto i 6 mm a una batteria di capacità relativamente elevata, un display pOLED da 6,7 pollici e un comparto fotografico triplo da 50 MP. Non punta ai record di potenza, ma si configura come alternativa più pragmatica rispetto ai modelli sottili più costosi di Samsung e Apple
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 30-04-2006, 15:55   #1
white05
Member
 
Iscritto dal: May 2005
Messaggi: 249
Linguaggio C funzione rand()

Come si fa in C a generare con la funzione rand() un numero compreso tra -100 e 100???

Grazie
white05 è offline   Rispondi citando il messaggio o parte di esso
Old 30-04-2006, 16:05   #2
wisher
Senior Member
 
L'Avatar di wisher
 
Iscritto dal: Aug 2005
Messaggi: 2755
fai una rand()%200 in modo da avere un numero compreso tra 0 e 200 poi sottrai 100
rand()%200-100
__________________
wisher è offline   Rispondi citando il messaggio o parte di esso
Old 30-04-2006, 16:24   #3
white05
Member
 
Iscritto dal: May 2005
Messaggi: 249
ok e per i negativi come faccio?
white05 è offline   Rispondi citando il messaggio o parte di esso
Old 30-04-2006, 16:47   #4
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da white05
ok e per i negativi come faccio?
rand()%201-100 fornisce un valore random tra -100 e +100.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 30-04-2006, 16:47   #5
wisher
Senior Member
 
L'Avatar di wisher
 
Iscritto dal: Aug 2005
Messaggi: 2755
basta così, se hai zero dalla rand()%200 sottraendo 100 ottieni -100, se hai 200 ottieni 100
__________________
wisher è offline   Rispondi citando il messaggio o parte di esso
Old 30-04-2006, 16:48   #6
dnarod
Senior Member
 
L'Avatar di dnarod
 
Iscritto dal: Nov 2002
Messaggi: 4329
come per i negativi come fai?

esempio : rand 200 = 50..... 50 - 100 = -50
esempio 2: rand 200 = 150......150 - 100 = 50

__________________
|18k+|slk800|a7n8x|1Gb/ddr400|Gf4mx440|Pio108|WD 160Gb|Case|Uni|Album|AnimeClick|OneManga|
|ClassicThrash!|BNR Metal|TrueMetal|Dime|Chuck|
dnarod è offline   Rispondi citando il messaggio o parte di esso
Old 30-04-2006, 17:54   #7
Ziosilvio
Moderatore
 
L'Avatar di Ziosilvio
 
Iscritto dal: Nov 2003
Messaggi: 16213
Quote:
Originariamente inviato da white05
Come si fa in C a generare con la funzione rand() un numero compreso tra -100 e 100???
Codice:
((int)(rand()/(RAND_MAX+1.0))*200)-100
sostituendo 200 con 201 se il valore 100 è ammissibile.
__________________
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 02-06-2006, 23:50   #8
white05
Member
 
Iscritto dal: May 2005
Messaggi: 249
Quote:
sostituendo 200 con 201 se il valore 100 è ammissibile

Sono sempre io.

Ho scritto

rand()%200-100

e mi da anche il valore -100 e 100 come è possibile?? Gli estremi dell'intervallo non dovrebbero essere compresi
white05 è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2006, 20:24   #9
kiedis
Junior Member
 
Iscritto dal: Jun 2006
Messaggi: 4
Non mi ricordo perfettamente se la rand ti da un valore compreso tra 0 e l'estremo compreso, se così è, e da quello che hai scritto pare di si basta che metti rand()%198 - 99, così se ti da:

rand()% 198 = 0 - 99 = -99 --> caso minimo
rand()% 198 = 198 - 99 = 99 --> caso massimo

Non vorrei dirti cavolate...però mi sembra sia così
kiedis è offline   Rispondi citando il messaggio o parte di esso
Old 04-06-2006, 01:37   #10
Ziosilvio
Moderatore
 
L'Avatar di Ziosilvio
 
Iscritto dal: Nov 2003
Messaggi: 16213
Quote:
Originariamente inviato da white05
Ho scritto

rand()%200-100

e mi da anche il valore -100 e 100 come è possibile?
L'espressione che hai scritto corrisponde a valutare rand, prendere il resto della divisione per 200, e sottrargli 100.
Ma un resto di una divisione per 200 è fra 0 e 199, quindi l'espressione dovrebbe variare tra -100 e +99 inclusi.
Per cui, se ogni tanto esce fuori +100, deve esserci qualcosa che non va da qualche altra parte.
Puoi postare un altro po' di codice?
__________________
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 04-06-2006, 02:06   #11
white05
Member
 
Iscritto dal: May 2005
Messaggi: 249
La parte interessata è questa

........................
srand((unsigned) time(NULL));

for(i=0;i<n;i++){

numero_casuale = rand()%200-100;

a[i]=numero_casuale;

}

printf("l'array generato e':\n\n");

for(i=0;i<n;i++){

printf("%d ",a[i]);
}
.................................

a me serve che non si visualizzi ne -100 ne 100 perché l'intervallo è aperto e quindi non ammette gli estremi....
white05 è offline   Rispondi citando il messaggio o parte di esso
Old 04-06-2006, 13:20   #12
Ziosilvio
Moderatore
 
L'Avatar di Ziosilvio
 
Iscritto dal: Nov 2003
Messaggi: 16213
Quote:
Originariamente inviato da white05
a me serve che non si visualizzi ne -100 ne 100 perché l'intervallo è aperto e quindi non ammette gli estremi....
Allora, i numeri "veri" che puoi prendere, sono gli interi tra -99 e +99 inclusi.
Il numero di questi interi è 199, non 200.
Quindi: o fai la congruenza modulare modulo 199, e poi sottrai 99; oppure fai una cosa un po' più pulita seguendo quello che ho scritto qui.

A parte questo, mi pare che il codice non contenga errori, e non capisco come faccia a uscire 100 ogni tanto, come dicevi poco fa.
__________________
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
 Rispondi


HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione HONOR Magic 8 Pro: ecco il primo TOP del 2026! L...
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata Insta360 Link 2 Pro e 2C Pro: le webcam 4K che t...
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza Motorola edge 70: lo smartphone ultrasottile che...
Display, mini PC, periferiche e networking: le novità ASUS al CES 2026 Display, mini PC, periferiche e networking: le n...
Le novità ASUS per il 2026 nel settore dei PC desktop Le novità ASUS per il 2026 nel settore de...
Bentornati nel 2007: le memorie DDR3 rin...
Stellantis aderisce ad AI4I e Fondazione...
Google Pixel 10a: prime conferme sul pre...
ISRO potrebbe lanciare la capsula Gagany...
Un nuovo leak conferma dimensioni e novi...
Steam Machine: requisiti Verified piu' s...
NVIDIA GeForce RTX 5070 Ti fuori produzi...
Sony ha annunciato i nuovi giochi che en...
IBM Sovereign Core: la sovranità ...
Cerchi un'asciugatrice conveniente su Am...
Ayaneo Pocket Play arriverà in ri...
iPad Pro 11'' con chip M4 scende a 949€ ...
The Sims entra in una nuova era, ma l'ac...
Netflix, Disney o Prime Video: qual &egr...
Perplexity blocca la generazione di imma...
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: 23:52.


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