Progressione aritmetica di ogni numero n di un array

di il
12 risposte

Progressione aritmetica di ogni numero n di un array

Ciao a tutti,

sto cercando di imparare a lavorare con gli arrays, nel caso specifico con gli items e per separato, e i loop for. Il problema è il seguente:

per un numero:

/*Method find sum of N numbers2*/

let sum=0;
const n=100

for (let i=1; i<n;i++){
sum+=i;
}

console.log(sum); //4850 risulta dalla sua progressione aritmetica

Ma se voglio applicare lo stesso metodo ad un array con due o piû numero, uguale, ho provato cosi:

var sum=0;
var n=[100,2];

for (var j=0;j<n.length;++){

for (var i=1; i<n;i++){
sum+=i; // in questa parte mi areno e non funziona, le ho provato un po tutte
}
}
console.log(sum);

Qualcuno mi può aiutare magari con una spiegazione in più di come funzionano?

12 Risposte

  • Re: Progressione aritmetica di ogni numero n di un array

    Ciao se ho compreso bene vuoi sommare il valore di ogni elemento dell'array?

    se si ecco il codice:
    var sum=0;
    var n=[100,2];
    
    for (var i=0; i<n.length;i++){
    sum +=n[i]; 
    }
    
    console.log(sum);
    altrimenti spiegati meglio
  • Re: Progressione aritmetica di ogni numero n di un array

    Grazie mille per la tua risposta. No, voglio semplicemente prendere ogni elemento dell'array e lavorarci sopra. Per esempio prendo il primo elemento 100 e faccio questa somma del numero stesso: 100+99+98+......+1 , prendo il 2=> 2+1=3.
  • Re: Progressione aritmetica di ogni numero n di un array

    Ok. Praticamente avevi messo un iterazione for in piu, di solito la doppia iterazioni si usa per array bidimensionali quando hanno righe e colonne, quindi l'indice i rappresenta le righe e j le colonne.
    Poi stavi utilizzando un for che partiva da 1, ricorda che il conteggio degli array parte da 0 (primo elemento).
    Infine stavi sommando sum+=i che significa sommare gli indici dell'array NON il valore contenuto a quell'indice.
  • Re: Progressione aritmetica di ogni numero n di un array

    Si, capisco un po meglio il discorso ora che me lo hai spiegato un'attimo. è faticoso. ma come risultato dovrei avere non la somma dei due elementi dell'array, cioè, 100+2=102 ma dovrebbe, essere un altro array con il risultato [5050, 3] => [[100+99+98+.....+1], [[2+1]]. Non so andare dentro il numero o item stesso dell'array e farci un qualcosa. è questo che cerco di capire. Pensavo che se avevo due loop for nel primo entravo nell'array e nel secondo andavo dentro il numero che poi elaboravo con una certa "formula". il discorso che fai sugli array riga e colonne c'entra con le matrici in matematica? Se io ho questa riga "sum+=i;" cosa fa come diagramma? un esempio semplice me lo puoi fare?
  • Re: Progressione aritmetica di ogni numero n di un array

    Lilac ha scritto:


    Si, capisco un po meglio il discorso ora che me lo hai spiegato un'attimo. è faticoso. ma come risultato dovrei avere non la somma dei due elementi dell'array, cioè, 100+2=102 ma dovrebbe, essere un altro array con il risultato [5050, 3] => [[100+99+98+.....+1], [[2+1]].
    Quindi vorresti sommare tra di loro tutti gli indici? non so a cosa ti serva ma puoi farlo cosi
    for (var i=0; i<n.length;i++){
    sum +=i; 
    }
    non capisco cosa vuoi inserire nell'array, cos'e' quel 3 [2+1]?

    Lilac ha scritto:


    il discorso che fai sugli array riga e colonne c'entra con le matrici in matematica?
    Esattamente....

    Lilac ha scritto:


    Se io ho questa riga "sum+=i;" cosa fa come diagramma? un esempio semplice me lo puoi fare?
    sum += i aggiunge alla variabile sum il valore corrente dell' i del for quindi 0+1+2+3+4 ecc
  • Re: Progressione aritmetica di ogni numero n di un array

    Ciao Lilac,
    Potrebbe essere più semplice per te se crei una funzione, in questo modo il codice risulterebbe più comprensibile.

    Se ho capito bene, potresti usare qualcosa del genere:
    
    // Prepari una funzione contenente il codice riutilizzabile
    
    function progressione(n) {
    	let sum = 0;
    	for (let i=1; i<=n; i++) {
    		sum += i;
    	}
    	return sum;
    }
    
    var n = [100, 2]
    
    // Per ogni elemento, lo modifichi richiamando la funzione
    
    for (let i = 0; i<n.length; i++) {
    	n[i] = progressione(n[i]);
    }
    
    console.log(n); // Questo solo per mostrare il risultato
    
  • Re: Progressione aritmetica di ogni numero n di un array

    Mille grazie per la risposta. Temo di non essermi spiegata bene. sono alle prime armi e sto facendo un corso da sola, per lo piû non mi ha posto grossi poblemi ma sono arrivata alla parte delle higher order function non con pochi problemi di risoluzioni problemi, e ai problemi con "recursion". Nella mia logica cerco di capire cosa sta dietro ad un metodo o a queste funzioni di ordine superiore che, sempre secondo me, si basano su un qualche loop sottoposto a condizione. Ci sto lavorando pure io per trovare una soluzione diversa per lo stesso problema che ti pongo ora. Allora, pongo il problema in questo modo: io ho un array di due elementi [100,2] e per ogni elemento voglio che si faccia questo, è una progressione aritmetica dello stesso numero: con 100 = 100+99+98.....+1 che da come risultato, credo, 5050. ora con 2= 2+1=3. quindi come risultato dovrei avere, credo, un'altro array [5050,3]. Appena scopro la soluzine la posto! Mille grazie per le vostre risposte.
  • Re: Progressione aritmetica di ogni numero n di un array

    Ciao,
    solo per dire che se è una progressione aritmetica
    https://it.wikipedia.org/wiki/Progressione_aritmetic
    non serve neanche il ciclo che somma;
    Gauss ha trovato una soluzione più elegante
  • Re: Progressione aritmetica di ogni numero n di un array

    Si, la stavo studiando nel pomeriggio! la questione, forse per te è facile per me un po meno, è come formularla. Ci devo pensare. grazie per la dritta! Ogni aiuto serve.
  • Re: Progressione aritmetica di ogni numero n di un array

    Ecco trovata: n(n+1)/2, n il numero. il resto te lo racconto dopo quando farò il piccolo programmino.
  • Re: Progressione aritmetica di ogni numero n di un array

    Lilac ha scritto:


    Si, la stavo studiando nel pomeriggio! la questione, forse per te è facile per me un po meno
    ...
    la conoscenza delle progressioni aritmetiche non è una questione
    di programmazione in senso stretto ma di matematica;
    diciamo che può facilitarti la vita ove servisse se la conosci
    ma puoi anche tranquillamente usare un ciclo per il tuo esercizio

  • Re: Progressione aritmetica di ogni numero n di un array

    Mille grazie per l'aiuto e per il programma!! Ora capisco un po meglio. Tu hai diviso in due blochi. Graziieeee
Devi accedere o registrarti per scrivere nel forum
12 risposte