Torna indietro   Hardware Upgrade Forum > Software > Programmazione

NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abbiamo provato il tris d'assi di NZXT
NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abbiamo provato il tris d'assi di NZXT
Nelle ultime settimane abbiamo provato tre delle proposte top di gamma di NZXT nelle categorie case, dissipatori e ventole. Rispettivamente, parliamo dell'H9 Flow RGB+, Kraken Elite 420 e F140X. Si tratta, chiaramente, di prodotti di fascia alta che si rivolgono agli utenti DIY che desiderano il massimo per la propria build. Tuttavia, mentre i primi due dispositivi mantengono questa direzione, le ventole purtroppo hanno mostrato qualche tallone d'Achille di troppo
ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz
ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz
ASUS ROG Swift OLED PG34WCDN è il primo monitor gaming con pannello QD-OLED Gen 5 a layout RGB Stripe Pixel e 360 Hz su 34 pollici: lo abbiamo misurato con sonde colorimetriche e NVIDIA LDAT. Ecco tutti i dati
Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico
Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico
Nothing Phone (4a) Pro cambia pelle: l'alluminio unibody sostituisce la trasparenza integrale, portando una solidità inedita. Sotto il cofano troviamo uno Snapdragon 7 Gen 4 che spinge forte, mentre il display è quasi da top dig amma. Con un teleobiettivo 3.5x e la Glyph Matrix evoluta, è la prova di maturità di Carl Pei. C'è qualche compromesso, ma a 499EUR la sostanza hardware e la sua unicità lo rendono un buon "flagship killer" in salsa 2026
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 18-01-2007, 08:01   #1
84seawolf
Member
 
Iscritto dal: Apr 2006
Messaggi: 89
[C++] Algoritmo di spostamento casuale

mi serve un algoritmo (o meglio algoritmi) di spostamento casuale di un punto nel piano.
Il punto è caratterizzato da una coordinata x e una y; questo punto si deve muovere casualmente all'interno di un'area data (ad esempio 1000x1000).

Una soluzione banale sarebbe quella di generare un numero casuale compreso tra -1 e +1 e sommarlo alla x; stessa cosa per la y.

Oppure una seconda soluzione (a mio parere migliore) potrebbe essere quella di generare una coppia di coordinate casuali e fare arrivare pian piano il nostro punto nella coppia di coordinate casuali; una volta raggiunto viene generata un'altra coppia di coordinate casuali e così via.

Voi che ne pensate?? avete del materiale (manuali, tutorial, ecc...) sullo spostamento casuale di un punto nel piano?
Nella seconda soluzione, ci potrebbero essere molti modi per raggiungere la coppia di coordinate casuali; ad esempio (nel caso + semplice) seguendo una linea retta che congiunge il nostro punto al punto casuale.
Quindi vi chiedo anche se conoscete qualche manuale sui tipi di spostamento per raggiungere una data posizione nel piano.
84seawolf è offline   Rispondi citando il messaggio o parte di esso
Old 18-01-2007, 10:50   #2
yorkeiser
Senior Member
 
L'Avatar di yorkeiser
 
Iscritto dal: Jul 2006
Città: Tristram
Messaggi: 517
Se mi spieghi le finalità di tale spostamento (ovvero cosa vuoi indagare mediante lo spostamento di tale punto) posso consigliarti qualche funzione per far spostare il tuo punto; esistono un milione di funzioni casuali (ad esempio, gli fai fare una circonferenza ed aggiungi due coordinate randomiche di disturbo, oppure lo fai muovere secondo una composizione di sinusoidi ad ampiezze e fasi che variano casualmente; puoi randomizzare qualsiasi parametro di qualsiasi funzione matematica che ti viene in mente per ottenere uno spostamento casuale)
yorkeiser è offline   Rispondi citando il messaggio o parte di esso
Old 18-01-2007, 11:47   #3
84seawolf
Member
 
Iscritto dal: Apr 2006
Messaggi: 89
è lungo spiegare a cosa mi serve;
cmq NON devo "indagare" sul movimento in se...mi serve solo un punto che si muove a caso in una data area;

hai del materiale a riguardo? magari sulle funzioni usate più comunemente? anche io stavo pensando alla composizione di sinusoidi; ma se hai qualche manuale mi faresti un enorme favore!!!
84seawolf è offline   Rispondi citando il messaggio o parte di esso
Old 18-01-2007, 11:50   #4
84seawolf
Member
 
Iscritto dal: Apr 2006
Messaggi: 89
ah....dimenticavo....l'algoritmo non deve essere particolarmente pesante (dal punto di vista computazionale); in quanto potrebbero esserci anche centinaia (se non migliaia) di punti in movimento casuale!!
84seawolf è offline   Rispondi citando il messaggio o parte di esso
Old 18-01-2007, 12:11   #5
davide87
Senior Member
 
L'Avatar di davide87
 
Iscritto dal: Dec 2004
Città: Pomezia-Roma Mezzo: STGT ( Sola e Tacchi Gran Turismo )
Messaggi: 2647
x=random(1000)
y=random(1000)...troppo banale??
davide87 è offline   Rispondi citando il messaggio o parte di esso
Old 18-01-2007, 12:25   #6
yorkeiser
Senior Member
 
L'Avatar di yorkeiser
 
Iscritto dal: Jul 2006
Città: Tristram
Messaggi: 517
Non credo esistano manuali sull'argomento, ma magari trovi qualche articolo / tutorial interessante.
Googla
random + point + traslation
o random + point + movement
o qualcosa di simile e troverai qualcosa sicuramente
Altrimenti puoi provare su qualche sito universitario -> dipartimenti di fisica, la materia che ti interessa è la dinamica
yorkeiser è offline   Rispondi citando il messaggio o parte di esso
Old 18-01-2007, 12:25   #7
84seawolf
Member
 
Iscritto dal: Apr 2006
Messaggi: 89
x davide87:
purtroppo generare non va bene; perchè a me serve uno spostamento "continuo" (anche se poi il termine continuo non è del tutto esatto); cioè quello che fai tu è di posizionare a caso il punto all'interno dell'area; invece io devo spostare un punto da una posizione iniziale ad una posizione casuale. Cmq grazie lo stesso x il tentativo!!
84seawolf è offline   Rispondi citando il messaggio o parte di esso
Old 18-01-2007, 12:38   #8
davide87
Senior Member
 
L'Avatar di davide87
 
Iscritto dal: Dec 2004
Città: Pomezia-Roma Mezzo: STGT ( Sola e Tacchi Gran Turismo )
Messaggi: 2647
Quote:
Originariamente inviato da 84seawolf
x davide87:
purtroppo generare non va bene; perchè a me serve uno spostamento "continuo" (anche se poi il termine continuo non è del tutto esatto); cioè quello che fai tu è di posizionare a caso il punto all'interno dell'area; invece io devo spostare un punto da una posizione iniziale ad una posizione casuale. Cmq grazie lo stesso x il tentativo!!

Punto(x,y)
spost=random(8) Spostamento 8
If(spost==8)
x=x-random(50)
y=y+random(50)

else
if(spost==7)
x=x-random(50)
y=y;
e cosi via...poi devi mettere dei controlli per non far uscire il punto dall'area 1000x1000 dimmi che ne pensi?
davide87 è offline   Rispondi citando il messaggio o parte di esso
Old 18-01-2007, 13:28   #9
84seawolf
Member
 
Iscritto dal: Apr 2006
Messaggi: 89
x davide 87:

innanzitutto grazie mille x la seconda volta

Non saprei se l'algoritmo da te proposto possa andare bene; ti spiego subito il perchè: ho qualche dubbio che aggiungendo (o sottraendo) dalla posizione corrente una data quantità (che da quello che ho visto generi casualmente anche quella) lo spostamento medio sia pressocchè nullo.

Cioè, dato che gli eventi (nel nostro caso la sottrazione o l'addizione di valori) sono equiprobabili, difficilmente il punto si scosterà di tanto dalle coordinate da cui era partito inizialmente. (per la legge dei grandi numeri)

E' per questo motivo che ero + propenso a generare una coordinata casuale, e poi farlo inseguire dal nostro punto. Però dovrei trovare anche qualche algoritmo che generi traiettorie casuali tra il nostro punto e quello che dobbiamo raggiungere.
84seawolf è offline   Rispondi citando il messaggio o parte di esso
Old 18-01-2007, 13:41   #10
yorkeiser
Senior Member
 
L'Avatar di yorkeiser
 
Iscritto dal: Jul 2006
Città: Tristram
Messaggi: 517
Mi uppo con un semplice esempio di funzione sinusoidale che potrebbe fare al caso tuo: diciamo che lo vuoi far muovere all'interno di un'area quadrata, centrata nell'origine e di lato pari a 10:

#define MAX_AMPIEZZA 5

double fase=0.0;
while (1)
{
fase += rnd();
x=MAX_AMPIEZZA*cos(fase);
y=MAX_AMPIEZZA*sin(fase);
}

volendo puoi far variare anche l'ampiezza casualmente, o utilizzare anche altre sinusoidi ( x=a1*sin(f1)+a2*sin(f2)+....)

Spero l'esempio ti sia utile
yorkeiser è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abbiamo provato il tris d'assi di NZXT NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abb...
ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz ASUS ROG Swift OLED PG34WCDN recensione: il prim...
Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico Recensione Nothing Phone (4a) Pro: finalmente in...
WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro WoW: Midnight, Blizzard mette il primo, storico ...
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato Ecovacs Goat O1200 LiDAR Pro: la prova del robot...
Anthropic ha un'AI che trova falle in Wi...
I 10 migliori sconti Amazon del weekend:...
Con un coupon scendono ancora: le super ...
Minimo storico per Samsung Galaxy S26 Ul...
Si è conclusa la missione lunare ...
EK Waterblock si arrende agli aumenti, i...
Geekbench si aggiorna: tutti i test con ...
Per la prima volta un computer quantisti...
Telecamere Reolink 4K su Amazon: Wi-Fi 6...
Anthropic vuole farsi i chip da sola? Co...
Il fondatore di Framework: il personal c...
JBL Live Flex 3 a 129€ su Amazon: ANC ad...
Come un uomo ha costruito un'azienda da ...
Multe fino a 400 euro anche se hai pagat...
Tapo lancia una valanga di offerte su Am...
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: 05:02.


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