Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Roborock Qrevo Curv 2 Flow: ora lava con un rullo
Roborock Qrevo Curv 2 Flow: ora lava con un rullo
Qrevo Curv 2 Flow è l'ultima novità di casa Roborock per la pulizia di casa: un robot completo, forte di un sistema di lavaggio dei pavimenti basato su rullo che si estende a seguire il profilo delle pareti abbinato ad un potente motore di aspirazione con doppia spazzola laterale
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite
Abbiamo guidato per diversi giorni la Alpine A290, la prima elettrica del nuovo corso della marca. Non è solo una Renault 5 sotto steroidi, ha una sua identità e vuole farsi guidare
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile
Abbiamo provato a fondo il nuovo Magic 8 Lite di HONOR, e per farlo siamo volati fino a Marrakech , dove abbiamo testato la resistenza di questo smartphone in ogni condizione possibile ed immaginabile. Il risultato? Uno smartphone praticamente indistruttibile e con un'autonomia davvero ottima. Ma c'è molto altro da sapere su Magic 8 Lite, ve lo raccontiamo in questa recensione completa.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 23-12-2004, 17:49   #1
supertonno
Senior Member
 
L'Avatar di supertonno
 
Iscritto dal: Aug 2003
Città: Rimini
Messaggi: 422
Permutazioni Casuali

Ciao a tutti.
Avrei bisogno di aiuto nel creare delle permuazioni casuali di numeri da 1 a N.
Per esempio 4 permutazioni a caso di una serie di numeri da 1 a 10.
Qualcuno ha in mente come fare senza generarle tutte e po prenderle a caso?

Grazie
supertonno è offline   Rispondi citando il messaggio o parte di esso
Old 23-12-2004, 18:12   #2
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
Linguaggio ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 23-12-2004, 18:14   #3
supertonno
Senior Member
 
L'Avatar di supertonno
 
Iscritto dal: Aug 2003
Città: Rimini
Messaggi: 422
va benissimo C o C++
supertonno è offline   Rispondi citando il messaggio o parte di esso
Old 23-12-2004, 18:15   #4
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
Codice:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <memory.h>


/* estrazione senza reimbussolamento di m elementi
su una popolazione di n elementi */
int vettore_casuale(int *v, int m, int n)
{
   char *v2;
   int i, j;
   if(m > n)
      return 1;
   v2 = malloc(sizeof(char)*n);
   memset(v2, 0, sizeof(char)*n);
   for(i=0; i<m; i++)
   {
      v[i] = rand()%(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;
} 

#define M	10
#define N	10

int main()
{
	int v[M], i;
	srand((unsigned)time(NULL));
	
	vettore_casuale(v, M, N);
	for(i=0; i<M; ++i)
		printf("%4d", v[i]);
	printf("\n");
	vettore_casuale(v, M, N);
	for(i=0; i<M; ++i)
		printf("%4d", v[i]);
	printf("\n");
	vettore_casuale(v, M, N);
	for(i=0; i<M; ++i)
		printf("%4d", v[i]);
	printf("\n");
	getchar();
	return 0;
}
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 23-12-2004, 18:16   #5
supertonno
Senior Member
 
L'Avatar di supertonno
 
Iscritto dal: Aug 2003
Città: Rimini
Messaggi: 422
Grazie Mille, ora lo provo
supertonno è offline   Rispondi citando il messaggio o parte di esso
Old 23-12-2004, 18:21   #6
anx721
Senior Member
 
L'Avatar di anx721
 
Iscritto dal: Oct 2002
Città: Roma
Messaggi: 1502
Questa è l'implementazione di un noto algoritmo, inventato da non ricordo chi, per generare una permutazione di n elementi con complessità lineare:

Codice:
#include <stdlib.h>


void swap(int *a, int *b){
	int temp = *a;
	*a = *b;
	*b = temp;
}


int * perm(unsigned int n){
	int *vect = (int *)malloc(n * sizeof(int));
	int i;
	for(i = 0; i < n; i++)
		vect[i] = i;
	for (i = n-1;i >= 0;i--)
	swap(&vect[i],&vect[(int) ((rand()/(1.0 + RAND_MAX)) * (i+1))]);
	return vect;
}
__________________
Sun Certified Java Programmer
EUCIP Core Level Certified

European Certification of Informatics Professionals

Ultima modifica di anx721 : 23-12-2004 alle 18:23.
anx721 è offline   Rispondi citando il messaggio o parte di esso
Old 23-12-2004, 18:23   #7
supertonno
Senior Member
 
L'Avatar di supertonno
 
Iscritto dal: Aug 2003
Città: Rimini
Messaggi: 422
Quote:
Originariamente inviato da anx721
Codice:
#include <stdlib.h>


void swap(int *a, int *b){
	int temp = *a;
	*a = *b;
	*b = temp;
}


int * perm(unsigned int n){
	int *vect = (int *)malloc(n * sizeof(int));
	int i;
	for(i = 0; i < n; i++)
		vect[i] = i;
	for (i = n-1;i >= 0;i--)
	swap(&vect[i],&vect[(int) ((rand()/(1.0 + RAND_MAX)) * (i+1))]);
	return vect;
}

Lo stavo proprio implementando cosi, con swap casuali...
Ora li provo tutte e due vedo quello che ha prestazioni migliori
supertonno è offline   Rispondi citando il messaggio o parte di esso
Old 23-12-2004, 18:24   #8
anx721
Senior Member
 
L'Avatar di anx721
 
Iscritto dal: Oct 2002
Città: Roma
Messaggi: 1502
la "mia" credo sia piu efficiente
__________________
Sun Certified Java Programmer
EUCIP Core Level Certified

European Certification of Informatics Professionals
anx721 è offline   Rispondi citando il messaggio o parte di esso
Old 23-12-2004, 18:35   #9
atidem
Senior Member
 
L'Avatar di atidem
 
Iscritto dal: Oct 2004
Messaggi: 752
Quote:
Originariamente inviato da anx721
Questa è l'implementazione di un noto algoritmo, inventato da non ricordo chi, per generare una permutazione di n elementi con complessità lineare:

Codice:
#include <stdlib.h>


void swap(int *a, int *b){
	int temp = *a;
	*a = *b;
	*b = temp;
}


int * perm(unsigned int n){
	int *vect = (int *)malloc(n * sizeof(int));
	int i;
	for(i = 0; i < n; i++)
		vect[i] = i;
	for (i = n-1;i >= 0;i--)
	swap(&vect[i],&vect[(int) ((rand()/(1.0 + RAND_MAX)) * (i+1))]);
	return vect;
}

Standard shuffling algorithm
Seminumerical Algorithms (Vol. 2 of "The Art of Computer Programming")

Codice:
 

for (i=0; i<N; i++)
 a[i] = i;
for (j=N-1; j>0; j--) {
 i = choose(0,j); /* Generatore di numeri casuale */
 t = a[i];
 a[i] = a[j];
 a[j] = t;
}

Ultima modifica di atidem : 23-12-2004 alle 18:41.
atidem è offline   Rispondi citando il messaggio o parte di esso
Old 23-12-2004, 18:40   #10
anx721
Senior Member
 
L'Avatar di anx721
 
Iscritto dal: Oct 2002
Città: Roma
Messaggi: 1502
Quote:
Originariamente inviato da atidem
Standard shuffling algorithm
Seminumerical Algorithms (Vol. 2 of "The Art of Computer Programming")

ok, ma se non ricordo l'ha inventato un pezzo grosso tipo knut o qualkunaltro...
__________________
Sun Certified Java Programmer
EUCIP Core Level Certified

European Certification of Informatics Professionals
anx721 è offline   Rispondi citando il messaggio o parte di esso
Old 23-12-2004, 18:42   #11
atidem
Senior Member
 
L'Avatar di atidem
 
Iscritto dal: Oct 2004
Messaggi: 752
Quote:
Originariamente inviato da anx721
ok, ma se non ricordo l'ha inventato un pezzo grosso tipo knut o qualkunaltro...
Knuth
http://www-cs-faculty.stanford.edu/~knuth/index.html

Ultima modifica di atidem : 23-12-2004 alle 18:45.
atidem è offline   Rispondi citando il messaggio o parte di esso
Old 23-12-2004, 18:46   #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 anx721
la "mia" credo sia piu efficiente
Decisamente...anche perchè quello sopra era fatto per risolvere altri problemi...
cionci è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Roborock Qrevo Curv 2 Flow: ora lava con un rullo Roborock Qrevo Curv 2 Flow: ora lava con un rull...
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite Alpine A290 alla prova: un'auto bella che ti fa ...
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile Recensione HONOR Magic 8 Lite: lo smartphone ind...
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora Sony WF-1000X M6: le cuffie in-ear di riferiment...
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI Snowflake porta l'IA dove sono i dati, anche gra...
Missione Artemis II diretta verso la Lun...
Toy Story 5 arriva al cinema: è l...
Intel cambia rotta su Linux? Nuove assun...
Samsung aggiorna Bixby con One UI 8.5: p...
L'Etiopia vieta le auto a combustione: a...
Pirateria audiovisiva: la Guardia di Fin...
Ubisoft conferma due nuovi Far Cry in sv...
Chi vincerà il Festival di Sanrem...
G42 e Cerebras portano in India un super...
Offerte aggiornate del weekend Amazon: 7...
4 MacBook Air in offerta e scende a 939€...
Chrome cambia il tuo modo di lavorare: o...
Minimo storico iPhone 17 su Amazon: 909€...
USA, incriminati tre ingegneri della Sil...
Xbox: Phil Spencer lascia dopo 38 anni, ...
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: 06:21.


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