2016-08-21 2 views
-3

Возможно ли рассчитать число Эйлера в 1000 итерации одним методом и мне нужно рассчитать факторный в первую очередь?Как рассчитать число Эйлера в 1000 итерациях?

Вот мой код:

import java.math.BigDecimal; 

public class EulerNumber { 

    public static void main(String[] args) { 
     for (int i = 1; i < 1000; i++) { 
     } 
     System.out.println("e = " + e); 
    } 

    private static double Euler() { 
     return 0; 
    } 
} 
+4

Удалите все лишние пустые строки из вашего кода и убедитесь, что его отступ соответствует! Кроме того, ваш вопрос довольно легко ответить: Да, это так. Я не думаю, что это ваш ответ, поэтому, пожалуйста, уточните свой вопрос! –

ответ

1

Это довольно прямолинейно, если я его правильно понимаю, вам нужно вычислить число эйлеров в 1000 итерациях, а не вычислять его 1000 раз, поэтому цикл for должен быть перемещен в функцию Эйлера.

public class EulerNumber { 

    public static void main(String[] args) { 
     System.out.println("e = " + Euler()); 
    } 

    private static double Euler() { 
     double e=1; 
     double f=1; 
     for (int i=1; i <= 1000; i++) { 
      f = f * (1.0/i); 
      if (f == 0) break; 
      e += f; 
     } 
     return e; 
    } 
} 

е расчетное число Euler до сих пор и F представляет собой фракцию, чтобы добавить в следующей операции (1/п!). Вам не нужно вычислять n! каждый раз лучше вычислять его, когда вы продолжаете. Я проверил и знаю, что 1000 слишком высока для двойной точности, поскольку f сходится к 0 после 178-й итерации на моем компьютере. поэтому остальной процесс не нужен.

1

Да, можно вычислить приближение с более чем 2300 правильных цифр с частичной суммой 1000 терминов. Ошибка меньше 2/1000! (в величине 1/300^1000)

Нет, нет необходимости вычислять факториал, и в любом случае следует избегать явной факториальной функции, просто обновить следующий термин от предыдущего или использовать Horner как схемы, начиная с последнего термина.

Смежные вопросы