Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere)
Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere)
Quattro modi di indossarlo, stessa app del Plaud Note Pro e integrazione con il desktop. Il registratore IA da indossare di Plaud eccelle in mobilità, ma resta vincolato all'abbonamento ed è facile da perdere
Redmi Watch 6 in prova: lo smartwatch con ampio display da 2000 nit a meno di 100 euro
Redmi Watch 6 in prova: lo smartwatch con ampio display da 2000 nit a meno di 100 euro
Xiaomi ha portato Redmi Watch 6 anche sul mercato italiano, puntando su un display AMOLED da 2,07 pollici con picco di luminosità a 2000 nit, frame in alluminio da 9,9mm e un'autonomia dichiarata di 12 giorni. Lo smartwatch gira su HyperOS 3 e integra GPS, Bluetooth 5.4 e oltre 150 sport mode. Il tutto a meno di 100 euro
Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ADV, ma con molti più pulsanti
Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ADV, ma con molti più pulsanti
Con 22 tasti, il pulsante 5D, lo Shift Mode e il sensore PixArt 3395 da 26.000 DPI, il nuovo mouse wireless di Mad Catz si rivolge in modo preciso ai giocatori di MMO e RPG. Ma chi conosce già il R.A.T. 8+ ADV si accorgerà subito di quanto i due prodotti condividano, e di dove invece divergono
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 25-01-2005, 14:49   #1
Misagi
Senior Member
 
Iscritto dal: Jun 2004
Città: Assisi
Messaggi: 1511
Random con C++

Salve, vorrei sapere se in questo modo ottengo numeri casuali da -1000 a 1000??
O se c'è un altro modo simile per farlo??

numero_casuale=(rand()%(2000+1))-1000;

Grazie
Misagi è offline   Rispondi citando il messaggio o parte di esso
Old 25-01-2005, 15:12   #2
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Questa ormai e' una FAQ
Chi si prende la briga di scriverla?

Codice:
		float FloatRand()
		{
			return rand() / (RAND_MAX + 1);
		}


		int IntRand(unsigned int range, int bias)
		{
			return (int) (range * frand()) + bias;
		}
		... 

		unsigned int x = IntRand(2000, -1000);
Questa e' la versione piu' C++ (ma puzza di overengineering):

Codice:
		class IntRand
		{
		public:
			IntRand(
				unsigned int	range,
				int		bias)
				: m_Range(range)
				, m_Bias(bias)
			{
			}

			unsigned int Generate(void)
			{
				float randomFloatValue = rand() / (RAND_MAX + 1);
				return (int) (m_Range * randomFloatValue) + m_Bias;
			}
			
		private:
			unsigned int	m_Range;
			int		m_Bias;			
		};

		...
		IntRand intRand(2000, -1000);		// da -1000 a +1000
		intRand.Generate();
Edit: Refactoring!

Ultima modifica di fek : 25-01-2005 alle 15:18.
fek è offline   Rispondi citando il messaggio o parte di esso
Old 25-01-2005, 15:12   #3
Ziosilvio
Moderatore
 
L'Avatar di Ziosilvio
 
Iscritto dal: Nov 2003
Messaggi: 16214
Cerca nei vecchi post.
Scoprirai non solo come si fa, ma anche il motivo per cui il metodo che tu suggerisci non è particolarmente consigliato.
__________________
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 25-01-2005, 16:32   #4
Ubi-Wan
Bannato
 
L'Avatar di Ubi-Wan
 
Iscritto dal: Jul 2004
Città: Tatooine
Messaggi: 506
Ziosilvio scommetto che non si ottiene una distribuzione uniforme se RAND_MAX non e' un multiplo di x per rand()%x!
Ubi-Wan è offline   Rispondi citando il messaggio o parte di esso
Old 25-01-2005, 17:05   #5
Ziosilvio
Moderatore
 
L'Avatar di Ziosilvio
 
Iscritto dal: Nov 2003
Messaggi: 16214
Quote:
Originariamente inviato da Ubi-Wan
Ziosilvio scommetto che non si ottiene una distribuzione uniforme se RAND_MAX non e' un multiplo di x per rand()%x!
Cerca nei vecchi post e non confondere RAND_MAX, che è il massimo valore ottenibile, con RAND_MAX+1 che è il numero di valori distinti ottenibili
__________________
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 25-01-2005, 17:07   #6
Ziosilvio
Moderatore
 
L'Avatar di Ziosilvio
 
Iscritto dal: Nov 2003
Messaggi: 16214
Uh uh... non me ne ero accorto subito...
Quote:
Originariamente inviato da fek
Codice:
float FloatRand()
{
	return rand() / (RAND_MAX + 1);
}
Questa funzione restituisce sempre 0.0 --- ESERCIZIO: dire perché.
__________________
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 25-01-2005, 18:48   #7
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da Ziosilvio
Uh uh... non me ne ero accorto subito...

Questa funzione restituisce sempre 0.0 --- ESERCIZIO: dire perché.
Perche' sono stupido e non l'ho castato a float...

Versione corretta:

Codice:
float FloatRand()
{
	return (float) rand() / (RAND_MAX + 1);
}
fek è offline   Rispondi citando il messaggio o parte di esso
Old 25-01-2005, 19:31   #8
Ubi-Wan
Bannato
 
L'Avatar di Ubi-Wan
 
Iscritto dal: Jul 2004
Città: Tatooine
Messaggi: 506
Quote:
Originariamente inviato da Ziosilvio
Cerca nei vecchi post e non confondere RAND_MAX, che è il massimo valore ottenibile, con RAND_MAX+1 che è il numero di valori distinti ottenibili
sapevo che c'era di sicuro qualcosa che non andava in quello che avevo scritto
Ubi-Wan è offline   Rispondi citando il messaggio o parte di esso
Old 26-01-2005, 11:23   #9
Misagi
Senior Member
 
Iscritto dal: Jun 2004
Città: Assisi
Messaggi: 1511
Grazie delle informazioni, volevo sapere se la parola bias ha qualche significato specifico o è solo una parola utilizzata a caso!
Misagi è offline   Rispondi citando il messaggio o parte di esso
Old 27-01-2005, 09:12   #10
Misagi
Senior Member
 
Iscritto dal: Jun 2004
Città: Assisi
Messaggi: 1511
Up
Misagi è offline   Rispondi citando il messaggio o parte di esso
Old 27-01-2005, 10:55   #11
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da Misagi
Grazie delle informazioni, volevo sapere se la parola bias ha qualche significato specifico o è solo una parola utilizzata a caso!
http://www.moreorless.net/diz/MoL_B.html

Quote:
bias = deviazione
fek è offline   Rispondi citando il messaggio o parte di esso
Old 27-01-2005, 14:17   #12
Banus
Senior Member
 
L'Avatar di Banus
 
Iscritto dal: Nov 2002
Città: Singularity
Messaggi: 894
Quote:
Originariamente inviato da Ziosilvio
Cerca nei vecchi post e non confondere RAND_MAX, che è il massimo valore ottenibile, con RAND_MAX+1 che è il numero di valori distinti ottenibili
Sembra una pignoleria ma non lo è affatto
Un po' di tempo fa ho scritto un algoritmo che generava automaticamente labirinti di grosse dimensioni, ma spesso mi capitava di avere una o due caselle "cannate". Dopo un lungo e intenso debug mi sono accorto che succedeva quando disgraziatamente ottenevo il risultato 1 dal random (1 volta su 30000 )
__________________
echo 'main(k){float r,i,j,x,y=-15;while(puts(""),y++<16)for(x=-39;x++<40;putchar(" .:-;!/>"[k&7])) for(k=0,r=x/20,i=y/8;j=r*r-i*i+.1, i=2*r*i+.6,j*j+i*i<11&&k++<111;r=j);}'&>jul.c;gcc -o jul jul.c;./jul |Only Connect| "To understand is to perceive patterns" Isaiah Berlin "People often speak of their faith, but act according to their instincts." Nietzsche - Bayesian Empirimancer - wizardry
Banus è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere) Plaud NotePin S, il registratore IA si fa indoss...
Redmi Watch 6 in prova: lo smartwatch con ampio display da 2000 nit a meno di 100 euro Redmi Watch 6 in prova: lo smartwatch con ampio ...
Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ADV, ma con molti più pulsanti Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ...
Radeon RX 9070 GRE, AMD la porta in tutto il mondo | Recensione Gigabyte Gaming OC Radeon RX 9070 GRE, AMD la porta in tutto il mon...
Reolink OMVI 3i WiFi: videosorveglianza più intelligente e facile da usare Reolink OMVI 3i WiFi: videosorveglianza pi&ugrav...
Virtua Fighter è tornato e non &e...
Il ritorno di Fumito Ueda, autore di Sha...
Cooler Master svela GPU Shield, la nuova...
Samsung Galaxy S27 Pro: sarà lui ...
Così Google ha ottimizzato Chrome...
Xiaomi non cambia idea: il display poste...
LG presenta in Italia le gamme TV Micro ...
Sette anni dopo l'annuncio, The Wolf Amo...
'Non avrete aumenti': la decisione shock...
TIM lancia il Pass Mondiali DAZN: 104 pa...
Tesla Roadster, promessa o miraggio? La ...
Mark Hamilton, la tavola periodica del m...
Hanger 13 annuncia Uomo d'Onore: espansi...
La battaglia delle HBM4 entra nel vivo: ...
Dopo 12 anni torna Alien: Isolation. Ecc...
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: 02:23.


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