Torna indietro   Hardware Upgrade Forum > Software > Programmazione

WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
Un mondo affollato e vivo, personaggi destinati a sparire a fine test e nessuno a inseguire l'oggetto giusto. Beta e stress test di World of Warcraft: Forever hanno fatto emergere un roleplay spontaneo, tra danze a Goldshire e code ordinate ai PNG
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA
In tre giorni a Las Vegas Oracle ha presentato agenti che eseguono il lavoro, l'alleanza con OpenAI e un cloud aperto agli acceleratori di tutti. Ma i clienti europei chiedono garanzie prima ancora delle funzionalità
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
Fino a 740 km WLTP con la batteria da 97,2 kWh, sospensioni che leggono la strada con una telecamera e un abitacolo da salotto parigino. La nuova DS N°7 raccoglie l'eredità della DS 7 e la porta, per la prima volta, nel mondo 100% elettrico. Ecco come è fatta, cosa offre e quanto costa.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 20-02-2005, 18:18   #1
ALIEN3
Senior Member
 
L'Avatar di ALIEN3
 
Iscritto dal: Oct 2001
Messaggi: 3015
borland e random

Non riesco a capire come si utilizza randomize in borland: dovrei farmi stampare quattro numeri casuali, compresi tra 0 e 9 ma diversi tra loro
ex:
a=9
b=4
c=1
d=8

grazie a chi mi aiuterà

Byezzzzzzz zzzzzzzz
ALIEN3 è offline   Rispondi citando il messaggio o parte di esso
Old 20-02-2005, 21:00   #2
DarkTemplar
Member
 
L'Avatar di DarkTemplar
 
Iscritto dal: Nov 2004
Messaggi: 220
Randomize lo scrivi una sola volta in tutto il programma.
Solitamente lo scrivo dopo aver dichiarato le variabili nel main.
P.S.:non sono un esperto.
DarkTemplar è offline   Rispondi citando il messaggio o parte di esso
Old 20-02-2005, 23:44   #3
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Ma che linguaggio è ? Se è C/C++ puoi sempre usare le funzioni standard...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 21-02-2005, 07:59   #4
ALIEN3
Senior Member
 
L'Avatar di ALIEN3
 
Iscritto dal: Oct 2001
Messaggi: 3015
C++e uso borland

Byezzzzzzz zzzzzzzzzzzzzzz
ALIEN3 è offline   Rispondi citando il messaggio o parte di esso
Old 21-02-2005, 09:54   #5
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Ma Borland quale ? Che versione ?

Comunque puoi usare queste istruzioni standard:

#include <time.h>
#include <stdlib.h>

Poi da richiamare una sola volta nel tuo programma:

srand((unsigned)time(NULL)); //se non ti funziona richiama randomize(); contenuta in conio.h, ma è la versione non standard supportata solo da Borland

Per avere un numero random tra 0 e N-1:

int num = ((double)rand())/(RAND_MAX+1) * N; //se non ti funziona devi usare il corrispondente che funziona solo su Borland: random(N);
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 21-02-2005, 10:41   #6
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
Iscritto dal: Jun 2002
Città: Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
guarda cerca nell'help del borlan ci sono gli esempi fai prima

~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio.
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
Old 21-02-2005, 15:35   #7
ALIEN3
Senior Member
 
L'Avatar di ALIEN3
 
Iscritto dal: Oct 2001
Messaggi: 3015
Il problema è che non voglio che i numeri siano ripetuti: non è tanto la funzione random, quanto non riesco a capire come non farli apparire uguali. Cioè sull'help non so come si chiama la funzione di disuguaglianza o diverso.

Byezzzzzzz zzzzzzzzzzzz
ALIEN3 è offline   Rispondi citando il messaggio o parte di esso
Old 21-02-2005, 15:37   #8
ALIEN3
Senior Member
 
L'Avatar di ALIEN3
 
Iscritto dal: Oct 2001
Messaggi: 3015
La versione di vorland è Borland builder 5.

Byezzzzzzz zzzzzzzzzz
ALIEN3 è offline   Rispondi citando il messaggio o parte di esso
Old 21-02-2005, 16:26   #9
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
Iscritto dal: Jun 2002
Città: Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
Quote:
Originariamente inviato da ALIEN3
Il problema è che non voglio che i numeri siano ripetuti: non è tanto la funzione random, quanto non riesco a capire come non farli apparire uguali. Cioè sull'help non so come si chiama la funzione di disuguaglianza o diverso.

Byezzzzzzz zzzzzzzzzzzz
ahhh ho capito quello che intendi ... te dici una cosa del genere:

Codice:
#include <stdlib.h>
#include <stdio.h>
#include <time.h>

int Value(){
	return (rand()%10);
}

int main (void){
	int a, b, c, d;
	srand (time (NULL));
	a = Value();
	do{
		b = Value();
	}while (b==a);
	do{
		c = Value();
	}while (c==a || c==b);
	do{
		d = Value();
	}while (d==a || d==b || d==c);

	printf ("a:\t%d\nb:\t%d\nc:\t%d\nd:\t%d\n",a,b,c,d);
	system ("PAUSE");
	return (0);
}
è l'unico metodo dato che rand non si può ricordare quale valore ha restituito.

~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio.
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
Old 22-02-2005, 15:46   #10
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Così è errato perchè può portare in teoria ad un ciclo infinito...
Mentre per quattro variabili:
Codice:
#define N 10

int main (void){
	int a, b, c, d;
	srand (time (NULL));
	a = Value(N);
	b = Value(N-1);
	if (b==a)
	{
		++b;
	}
	c = Value(N-2);
        if(c>=a && c>=b) c+=2;
        else if(c>=a || c>=b) ++c;

	while (c==a || c==b)
		++c;

	d = Value(N-3);
	
	if(d>=a && d>=b && d>=c) d+=3
 	else if((d>=a && d>=b) || (d>=a && d>=c) || (d>=c && d>=b)) d+=2;
 	else if(d>=a || d>=b || d>=c) ++d;

	while (d==a || d==b || d==c)
		++d;

	printf ("a:\t%d\nb:\t%d\nc:\t%d\nd:\t%d\n",a,b,c,d);
	system ("PAUSE");
	return 0;
}
Se ne può fare anche una versione per un numero generico di variabili...

Ultima modifica di cionci : 22-02-2005 alle 18:28.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 22-02-2005, 17:10   #11
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
Iscritto dal: Jun 2002
Città: Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
scusa ma così ristringo sempre il campo ... non perdo valori??

~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio.
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
Old 22-02-2005, 17:16   #12
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da Fenomeno85
scusa ma così ristringo sempre il campo ... non perdo valori??

~§~ Sempre E Solo Lei ~§~
No perchè se vuoi una estrazione senza ripetizione (pensa ad esempio alla tombola)...ad ogni estrazioni i possibili numeri che possono uscire diminuiscono sempre
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 22-02-2005, 17:28   #13
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
Iscritto dal: Jun 2002
Città: Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
si ok ma io non elimino il valore estratto ma l'ultimo del range

~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio.
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
Old 22-02-2005, 18:16   #14
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Azzz...ho sbagliato Correggo... Magari con questa corezzione capirai meglio ciò che voglio fare (che rispetta la distribuzione statistica)...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 22-02-2005, 18:18   #15
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
Iscritto dal: Jun 2002
Città: Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
noo cade un mito

~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio.
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
Old 22-02-2005, 18:36   #16
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
In pratica i numeri estratti che hanno comunque una numerazione da 0 a N-2 (prendendo per esempio l'ultimo estratto), sono di fatto l'indice del numero da estrarre all'interno della popolazione rimasta...

Ad esempio da 1 a 10 estraggo 3 e 7...ora voglio estrarre un altro numero...

Estraggo un numero da 1 a 8...mettiamo sia 6...

I numeri rimasti da estrarre sono 1,2,4,5,6,8,9,10...quindi il sesto esemplare di questa popolazione è il numero 8 Il codice sopra vuole fare questo...

Ovviamente per fare estrazioni di questo tipo si fa prima con una funzione generica...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 22-02-2005, 18:38   #17
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
Iscritto dal: Jun 2002
Città: Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
ok capito

~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio.
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
Old 22-02-2005, 18:44   #18
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Ad esempio questo codice per niente ottimizzato fa al caso suo:
Codice:
/* estrazione senza reimbussolamento di m elementi
su una popolazione di n elementi (da 1 a n) */
int vettore_casuale(int *v, int m, int n)
{
   char *v2;
   int i, j;
   if(m > n)
      return 1;
   v2 = (char *) calloc(n, sizeof(char));
   for(i=0; i<m; i++)
   {
      v[i] = (((double)rand())/RAND_MAX)*(n-i) + 1;
      j = 0;
      while(v[i] > 0 )
      {
         if(v2[j++] == 0)
            v[i]--; 
      }
      v2[j-1] = 1;
      v[i] = j;
   }
   free(v2);
   return 0;
}
Altre soluzioni sarebbero molto semplici (come codice, ma magari di una durata temporale maggiore)...ad esempio tramite un vector in C++ che contiene tutti gli elementi della popolazione...man mano che un elemento viene estratto basta indicizzarlo tramite il numero random tirato su e successivamente eliminarlo dal vettore con erase...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 22-02-2005, 20:37   #19
ALIEN3
Senior Member
 
L'Avatar di ALIEN3
 
Iscritto dal: Oct 2001
Messaggi: 3015
Non mi collego un giorno e trovo tutto questa bella robba da sperimentare

Byezzzzzzzz zzzzzzzzzzz
ALIEN3 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà WoW Forever: la beta è stato uno dei mome...
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA Oracle AI World 2026: in Europa prima la sovrani...
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort DS N°7 E-Tense: il SUV premium made in Melfi...
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più Recensione Samsung Galaxy Tab S12 Ultra: non chi...
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura) Hyundai IONIQ 5 N, l'elettrica che finge di esse...
Gli USA dipendono dai robot stranieri: T...
Volkswagen non ha più soldi per l...
Telescopio spaziale Hubble: la NASA cerc...
Più sottile e potente: le nuove i...
Il JPL estende la vita operativa della s...
DAZN Full è in offerta: tutta la ...
GTA 6 su PC potrebbe arrivare prima del ...
Da zero al tracciato in secondi: LibreCo...
Il regista Rian Johnson lancia a 12,99 d...
Microsoft stravolge l'app Sicurezza di W...
Mercato smartphone in caduta libera: -20...
Android 17 QPR3 Beta 3 riporta il blocco...
Le 10 offerte TOP in Amazon del weekend:...
Dyson, doppio crollo su Amazon: purifica...
Il 70% delle imprese non vede effetti de...
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:01.


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