[Matematica pura, fisica, chimica, ecc.: problemi di allenamento del cervello non legati in alcun modo al commercio - pagina 555

 
Svinotavr:

Anche questo video è una truffa? PS: Non solo l'opinione di Alexey , ma quella di altri membri del forum è interessante.


"L'unica persona che conosco che è riuscita a costruire un generatore di Searle che portava il nome di Searle è stato Searle stesso":)
 
Svinotavr:
Anche quelli che si sono impadroniti di mezza Europa non sono molti. Dimitri, pensi che questa frase "sconfessi" il resto del film? Allora, cosa ne pensi, divorzio o no?


Il film sembra una propaganda settaria. Assurdo prenderlo anche solo un po' sul serio... Per 60 anni ha dato... e cosa ha dato?

 
MetaDriver:

// Perdonate subito l'off-topic, poiché il caso particolare dell'applicazione delle soluzioni (se si trovano soluzioni) è ancora legato al commercio.

// (: ma d'altra parte, questo è un incentivo, giusto? :)

// Se mi aiuti davvero, ti dirò perché ne ho bisogno... ;) Ti assicuro che potrebbe tornarti utile...

Compito:

Dato: un insieme di M vettori ortogonali nello spazio N-dimensionale (M<N) // nel caso limite M==1

Richiesto: costruire un generatore di vettori (!) ortogonali a un dato insieme. Ho bisogno di un'idea su come generare rapidamente vettori casuali che soddisfino la condizione (! ).

Spiegazione-ricordo: per uno spazio di N dimensioni, la dimensione dello spazio della soluzione è uguale a (N-M), cioè con set iniziale in numero (M=N-1) di vettori abbiamo una soluzione unica (a proposito, come ottenerla in una mossa? C'è un articolo in wiki, ma non l'ho ancora capito. Chi può spiegare l'algoritmo sulle dita - dia la menta(di nuovo - mi dica a cosa mi serve tutto questo)). Con un insieme iniziale più piccolo - c'è un numero infinito di tali vettori, cioè "ci sono varianti". Queste sono le varianti che devono essere generate.

La frase "l'insieme dei vettori ortogonali A è ortogonale all'insieme B" è un po' ambigua (nel senso di cosa è esattamente ortogonale a cosa)... Puoi specificare la condizione esatta, preferibilmente con una formula?
 
alsu:
La frase "l'insieme dei vettori ortogonali A è ortogonale all'insieme B" è un po' ambigua (nel senso di cosa è esattamente ortogonale a cosa)... Possiamo specificare la condizione esatta, preferibilmente con una formula?

Puoi essere più specifico. Le parole sono più facili per me. Tutti i vettori sono ortogonali tra loro. :) Non ho bisogno del set B. Cioè, ne ho bisogno, ma non immediatamente, ma gradualmente. :))

Dovreste fare una funzione in mql(5) che prende un insieme iniziale di vettori (A) come array e restituisce un vettore ortogonale a tutti i vettori di ingresso.

Come questo:

bool GetOrtoVector(int Dimention, int InputCount, double &Input[], double &Out[]); 
  { 
    .....  
    return succes; 
  }

Il vettore di uscita è casuale, ma garantito essere da uno spazio complementare. (Nel caso in cui InputCount == Dimention-1, viene restituito l'unico possibile vettore a valore singolo)

Condizione importante: la funzione deve essere [il più veloce possibile]. Posso farlo da solo. :)

 
alsu:
La frase "l'insieme dei vettori ortogonali A è ortogonale all'insieme B" è un po' ambigua (nel senso di cosa è esattamente ortogonale a cosa)... Puoi specificare la condizione esatta, preferibilmente con una formula?

Riguardo alla formula: prodotti scalari reciproci a coppie di tutti i vettori in entrata e in uscita == 0

Questa condizione ci permette di risolvere univocamente il sistema di equazioni e di ottenere l'ultimo vettore (quando M==N-1).

Nel caso (M<N-1) il sistema ha già uno spazio di soluzioni.

Da questo spazio di soluzione ho bisogno di estrarre dei vettori casuali. Preferibilmente, molto rapidamente.

 
MetaDriver:

Questa condizione ci permette di risolvere univocamente il sistema di equazioni e di ottenere l'ultimo vettore (a M==N-1).

Solo se l'insieme è normalizzato. In caso contrario, otteniamo anche un numero infinito di soluzioni.

Esempio: per un insieme {(1,0,0), (0,2,0)} qualsiasi vettore della forma (0,0,z) sarà ortogonale

 
alsu:

Solo se l'insieme è normalizzato. In caso contrario, otteniamo anche un insieme infinito di soluzioni.

Esempio: per un insieme {(1,0,0), (0,2,0)} qualsiasi vettore della forma (0,0,z) sarà ortogonale

Sì, certo. Tutti i vettori sono normalizzati. Sia in entrata che in uscita.
 
MetaDriver:
Sì, certo. Tutti i vettori sono normalizzati. Sia in entrata che in uscita.
C'è una soluzione semplice... sulla lingua come si dice))) In questo momento
 
alsu:
C'è una soluzione semplice... sulla lingua come si dice))) ora

Per un singolo vettore (x0) in ingresso ho facilmente e da tempo trovato una soluzione (per uno spazio di dimensionalità arbitraria):

. . 1. Генерируем случайный вектор (x1r)

. . 2. Нормируем его -> (x1rn)

. . 3. Находим сумму и разность вродного (х0) и полученного (x1rn) -> (sX, dX)

. . 4. Складываем sX+dX и нормируем сумму.

. . 5. Готово. Возвращаем из функции и берём с полки пирожок.

--

Ma per più di un vettore di input questo algoritmo non va bene. O non sono stato in grado di adattarlo correttamente.

Se avete un'idea su come adattarlo in modo che le iterazioni non si moltiplichino come una palla di neve, sarebbe utile.

 

Merda, mentre lo spiegavo, credo di aver capito. :)

Se facciamo la procedura di cui sopra per ogni vettore di input, allora tutti i vettori ottenuti per somma con successiva normalizzazione della somma daranno il vettore pseudo-casuale desiderato!

alsu, correggimi se sono ottuso.

--

//si, quasi ci siamo. Un po' più complicato, non funziona così facilmente. Dopo aver ottenuto il vettore xi ad ogni passo, si dovrebbe prima "aggiungere-sottrarre-normalizzare" con il prossimo vettore di input e così via, fino all'esaurimento dei vettori di input. Qualcosa del genere.