Domanda

nel linguaggio di programmazione J ,

-: i. 5 

la funzione precedente calcola le metà di tutti i numeri interi in [0,4]. Ora diciamo che vorrei riscrivere la funzione -:, solo per divertimento. La mia ipotesi migliore finora è stata

]&%.2

ma questo non sembra tagliarlo. Come lo fai?

È stato utile?

Soluzione

%&2    NB. divide by two
0.5&*  NB. multiply by one half

Altri suggerimenti

Nota che]% 2: funzionerebbe anche, ma per garantire una grammatica corretta vorresti usarlo come definizione di un nome, oppure mettere l'espressione tra parentesi.

Ho visto che stavi usando%. probabilmente perché stavi dividendo una matrice e pensavi di dover fare una "divisione matrice".

Il divario di matrice e l'inverso della matrice di cui stanno parlando lì è per l'algebra di matrice, dove hai un elenco di, essenzialmente, essenzialmente polinomi, e vuoi fare trasformazioni sui polinomi contemporaneamente, in modo da risolvere le equazioni . Una delle cose che puoi fare facilmente in J è l'algebra della matrice, ci sono builtin per la divisione della matrice e per invertire una matrice (come hai visto) e nella sezione delle frasi, ci sono brevi frasi per fare tutte le tipiche trasformazioni della matrice . Prendendo il determinante, per esempio.

Ma quando stai semplicemente dividendo un vettore per uno scalare per ottenere un vettore, o stai dividendo una matrice per gli elementi corrispondenti di un'altra matrice, beh, questo è solo il simbolo di divisione%.

Se vuoi provare a capirlo, guarda il problema 101 di Eulero (http://projecteuler.net/problem=101) e quindi adattamento della curva di Google sul sito Jsoftware.com. La creazione delle matrici dalle osservazioni e le matrici di base come mostrato ti consentono di risolvere per ax ^ 2 + bx + c = y dove hai xey e vuoi determinare a, b, e c. Ricorda solo di usare l'aritmetica estesa per tutto, poiché le equazioni risultanti sono molto buone ma non perfette a meno che tu non lo faccia, e per risolvere l'equazione hai bisogno di equazioni perfette.

Solo un pensiero, a meno che tu non voglia giocare con Matrix Algebra, potrebbe non interessarti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top