Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2 è la nuova handheld PC gaming con processore AMD Ryzen Z2 Extreme (8 core Zen 5/5c, GPU RDNA 3.5 16 CU) e schermo OLED 8,8" 1920x1200 144Hz. È dotata anche di controller rimovibili TrueStrike con joystick Hall effect e una batteria da 74Wh. Rispetto al dispositivo che l'ha preceduta, migliora ergonomia e prestazioni a basse risoluzioni, ma pesa 920g e costa 1.299€ nella configurazione con 32GB RAM/1TB SSD e Z2 Extreme
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
A re:Invent 2025, AWS mostra un’evoluzione profonda della propria strategia: l’IA diventa una piattaforma di servizi sempre più pronta all’uso, con agenti e modelli preconfigurati che accelerano lo sviluppo, mentre il cloud resta la base imprescindibile per governare dati, complessità e lock-in in uno scenario sempre più orientato all’hybrid cloud
Cos'è la bolla dell'IA e perché se ne parla
Cos'è la bolla dell'IA e perché se ne parla
Si parla molto ultimamente di "bolla dell'intelligenza artificiale", ma non è sempre chiaro perché: l'IA è una tecnologia molto promettente e che ha già cambiato molte cose dentro e fuori le aziende, ma ci sono enormi aspettative che stanno gonfiando a dismisura i valori delle azioni e distorcendo il mercato. Il che, com'è facile intuire, può portare a una ripetizione della "bolla dotcom", e forse anche di quella dei mutui subprime. Vediamo perché
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 10-12-2010, 12:41   #1
Helldron
Senior Member
 
L'Avatar di Helldron
 
Iscritto dal: Jul 2007
Messaggi: 411
[C] Perchè rand() a volte funziona e a volte no??

Sto generando in C dei valori casuali usando la funzione rand().

In pratica sto usando delle variabili per descrivere un Impiegato e mi costruisco una stringa da stampare più volte su di un file, la cosa da notare (a parte quelle grosse fprintf) è l'uso delle variabili intere che io dentro l'if randomizzo. Ufficio e reparto sembrano tirare fuori sempre questo risultato:

2293260

Le altre mi danno valori coerenti (anno, a, m, g, stip).


Codice:
#include <stdio.h>
#include <stdlib.h>
main () {
	
	FILE *pf;
	int i;       //la matricola è l'intero "i" che si incrementa

.
.
.
.
.
    	int a, m, g;		//data_nascita
	int anno; 		//anno_assunzione
	int stip;		  //stipendio
			
	int uff; //numero dell'ufficio
	int rep; //reparto effettivo
	
    int f=0; //intero per scegliere a caso se avrò un ufficio o meno
    
	pf = fopen ("dati.txt", "w");
	
	if (pf) {
		for (i=1; i<20; i++) { 
            
            
			anno=rand()%40 + 1970;
			stip=rand()%750 + 850;
			a=rand()%41 + 1950;
			m=rand()%12 + 1;
			g=rand()%31 + 1;
			
			rep=rand()%10 + 1;    //scelgo un reparto da 1 a 10 casuale
			
						
			f=rand()%3 + 1;    //scegli se avrò un ufficio			
			if (f==1) {			// dipendente con ufficio
			uff=rand()%10 + 1; 
		fprintf(pf,"%s%d%s%s%d%s%s%d%s%d%s%d%s%d%s%d%s%d%s%d%s%s%d%s\n", &s,i,&s2,&nome,i,&s2,&cognome,i,&s2,a,&separatore,m,&separatore,g,&s2,anno,&s2,stip,&s2,&uff,&s2,reparto,&rep,&s3);
			}
			else {			// dipendente senza ufficio
		fprintf(pf,"%s%d%s%s%d%s%s%d%s%d%s%d%s%d%s%d%s%d%s%s%s%s%d%s\n", &s,i,&s2,&nome,i,&s2,&cognome,i,&s2,a,&separatore,m,&separatore,g,&s2,anno,&s2,stip,&s2,&vuoto,&s2,reparto,&rep,&s3);
			}
		}
	
		fclose (pf);
	}

	else printf("\nnon sei entrato.\n");

}
Mi sembra di usarle nello stesso identico modo, che succede???

Grazie
__________________
MOTHERBOARD Asus P5Q-Pro - CPU intel Core 2 Quad Q9550 2.8 Ghz 12 MB Cache - VGA Sapphire Radeon HD4870 512 MB - HD Seagate Barracuda 7200 500GB 32 MB - RAM 4 GB ocz platinum DDR2 pc6400 800 Mhz @5-4-4 - ALIM Enermax 620W - CASE Enermax Chakra - OS Windows 7 Professional 64bit
Helldron è offline   Rispondi citando il messaggio o parte di esso
Old 10-12-2010, 16:38   #2
Supdario
Member
 
Iscritto dal: Mar 2008
Messaggi: 267
Devi prima inizializzare il seed del generatore pseudorandom con questa funzione:

Codice:
srand((unsigned)time(NULL));
Probabilmente dovrai includere time.h.

Come forse saprai la funzione rand() non è proprio casuale (dato che la casualità in matematica non esiste), quindi è necessario inizializzare il dato di partenza che servirà per generare la successione di numeri random.
Supdario è offline   Rispondi citando il messaggio o parte di esso
Old 10-12-2010, 16:42   #3
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Circa la generazione di numeri random, consiglio vivamente (anche se al momento devi fare cose semplicissime) la lettura del tutorial scritto da Ziosilvio:
[Tutorial C/C++] Generazione di sequenze pseudorandom
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 13-12-2010, 08:35   #4
Helldron
Senior Member
 
L'Avatar di Helldron
 
Iscritto dal: Jul 2007
Messaggi: 411
Quote:
Originariamente inviato da Supdario Guarda i messaggi
Devi prima inizializzare il seed del generatore pseudorandom con questa funzione:

Codice:
srand((unsigned)time(NULL));
Probabilmente dovrai includere time.h.

Come forse saprai la funzione rand() non è proprio casuale (dato che la casualità in matematica non esiste), quindi è necessario inizializzare il dato di partenza che servirà per generare la successione di numeri random.
Non va e aggiungo ancora una volta che la randomizzazione funziona perfettamente per tutte le variabili eccetto per rep ed uff, ora per uff mi da sempre 2293260 e rep sempre 2293256. E' stranissimo!!
__________________
MOTHERBOARD Asus P5Q-Pro - CPU intel Core 2 Quad Q9550 2.8 Ghz 12 MB Cache - VGA Sapphire Radeon HD4870 512 MB - HD Seagate Barracuda 7200 500GB 32 MB - RAM 4 GB ocz platinum DDR2 pc6400 800 Mhz @5-4-4 - ALIM Enermax 620W - CASE Enermax Chakra - OS Windows 7 Professional 64bit

Ultima modifica di Helldron : 13-12-2010 alle 09:02.
Helldron è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'...
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti AWS re:Invent 2025: inizia l'era dell'AI-as-a-Se...
Cos'è la bolla dell'IA e perché se ne parla Cos'è la bolla dell'IA e perché se...
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile BOOX Palma 2 Pro in prova: l'e-reader diventa a ...
FRITZ!Repeater 1700 estende la rete super-veloce Wi-Fi 7 FRITZ!Repeater 1700 estende la rete super-veloce...
Cloud sovrano: l'approccio di Broadcom c...
HONOR conferma l'arrivo in Italia di Mag...
La Cina sotto pressione impone maniglie ...
OpenAI integra le app in ChatGPT per tra...
NVIDIA sarebbe pronta a tagliare la prod...
Prezzo minimo storico per iPhone 16 Pro:...
Riot Games scopre una falla nei BIOS che...
Beats in super offerta su Amazon: aurico...
Batterie elettriche, Samsung SDI e Stell...
Clivet presenta Fullness, la pompa di ca...
SpaceX lancerà 167 razzi spaziali...
Yakuza Kiwami 3 e Dark Ties protagonisti...
Privacy a rischio: ecco la VPN che regis...
SpaceX ha annunciato che un satellite St...
ASUSTOR presenta i nuovi NAS Lockerstor ...
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: 18:29.


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