[C++] Oblicz sumę dla podanego n

Hebo
Użytkownik
Użytkownik
Posty: 245
Rejestracja: 19 lis 2009, o 19:31
Płeć: Mężczyzna
Lokalizacja: Małopolskie
Podziękował: 28 razy
Pomógł: 9 razy

[C++] Oblicz sumę dla podanego n

Post autor: Hebo »

Dla podanego \(\displaystyle{ x}\) oraz \(\displaystyle{ n}\) obliczyć sumę (iteracyjnie):

\(\displaystyle{ \sum_{i=1}^{n} \frac{x^i}{i!}}\)

doszedłem narazie tylko do tego:
\(\displaystyle{ \sum_{i=1}^{n} \frac{x^i}{i!}= \frac{x}{i}+ \frac{x}{i} \cdot \frac{x}{i+1}+ \frac{x}{i} \cdot \frac{x}{i+1} \cdot \frac{x}{i+2}+...}\)

oraz że:
wyrażenia \(\displaystyle{ \frac{x}{i} \cdot \frac{x}{i+1} \cdot \frac{x}{i+2}}\)(w zależności od n) można zapisać tak:

Kod: Zaznacz cały

for(i = 1; i <= n; i++)
a = x/i * a;
ale nie wiem co dalej
Ostatnio zmieniony 24 lis 2012, o 17:28 przez Afish, łącznie zmieniany 3 razy.
Powód: Kod w [code][\code]!Staraj się lepiej dobierać nazwy tematów, tak by wskazywały o czym jest treść zadania.
abc666

[C++] Oblicz sumę dla podanego n

Post autor: abc666 »

Hebo pisze:doszedłem narazie tylko do tego:
\(\displaystyle{ \sum_{i=1}^{n} \frac{x^i}{i!}= \frac{x}{i}+ \frac{x}{i} \cdot \frac{x}{i+1}+ \frac{x}{i} \cdot \frac{x}{i+1} \cdot \frac{x}{i+2}+...}\)
Jak już rozpisujesz sumę to indeks ci znika
\(\displaystyle{ \sum_{i=1}^{n} \frac{x^i}{i!}= \frac{x}{1}+ \frac{x}{1} \cdot \frac{x}{2}+ \frac{x}{1} \cdot \frac{x}{2} \cdot \frac{x}{3}+...}\)
Hebo pisze:ale nie wiem co dalej
No jeszcze teraz dodaj to a do sumy jakiejś w pętli i gotowe.
Hebo
Użytkownik
Użytkownik
Posty: 245
Rejestracja: 19 lis 2009, o 19:31
Płeć: Mężczyzna
Lokalizacja: Małopolskie
Podziękował: 28 razy
Pomógł: 9 razy

[C++] Oblicz sumę dla podanego n

Post autor: Hebo »

no właśnie problem w tym, że nie wiem jak to skonstruować, wpadłem tylko na:

Kod: Zaznacz cały

 for(int j = 1; j <= n; j++){
                 do{
                     float i = 1;
                     a = x/i*a;
                     i++;
                 }while(i <= j+1);
         s = s + a;
teraz tutaj mam problem jak zrobić, żeby tego i w nawiasie while czytało jako poprzednio zdefiniowane i
Ostatnio zmieniony 24 lis 2012, o 16:44 przez Anonymous, łącznie zmieniany 1 raz.
Powód: Kod w [code][\code]!
abc666

[C++] Oblicz sumę dla podanego n

Post autor: abc666 »

Nie potrzebujesz dwóch pętli. Pomyśl jakbyś chciał obliczyć taką sumę na tablicy. Obecnie robisz to tak.

1. obliczasz iloczyn x/i
2. sumujesz iloczyn z wcześniejszą sumą
3. ścierasz wynik mnożenia z punktu 1.
i wracasz do 1.

Wykorzystaj już to co obliczyłeś.

\(\displaystyle{ \sum_{i=1}^{n} \frac{x^i}{i!}= \underbrace{\frac{x}{1}}_{a_{1}}+ \overbrace{\underbrace{\frac{x}{1} }_{a_{1}}\cdot \frac{x}{2}}^{a_{2}}+ \underbrace{\frac{x}{1} \cdot \frac{x}{2}}_{a_{2}} \cdot \frac{x}{3}+...}\)
Hebo
Użytkownik
Użytkownik
Posty: 245
Rejestracja: 19 lis 2009, o 19:31
Płeć: Mężczyzna
Lokalizacja: Małopolskie
Podziękował: 28 razy
Pomógł: 9 razy

[C++] Oblicz sumę dla podanego n

Post autor: Hebo »

czyli to bedzie poprostu:

Kod: Zaznacz cały

 
float s = 0;
float a = 1;
for(float i = 1; i <= n; i++){
a = x/i * a;
s = s + a;}
?
abc666

[C++] Oblicz sumę dla podanego n

Post autor: abc666 »

Brakuje ci nawiasów. Jako indeks pętli lepiej zastosuj int, a jeśli x też jest intem to zrzutuj i przy dzieleniu.

Kod: Zaznacz cały

float s = 0;
float a = 1;
for(int i = 1; i <= n; i++) {
  a = x/(float)i * a;
  s = s + a;
}
ODPOWIEDZ