Вычислить значение бесконечной суммы (потоки) - C#

Узнай цену своей работы

Формулировка задачи:

Программа, которая будет вычислять значение бесконечной суммы 1-(1/1!)+(1/2!)-(1/3!)+ и т.д. с точностью E=10-6. Как создать потоки я понял, метод для факториала брал с msdn. Понял как вычислить один факториал, но бесконечную сумму, да еще и с чередованием знаков, не понял как. Может быть через цикл... Помогите пожалуйста!
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Threading;
  5. namespace ConsoleApplication16
  6. {
  7. class Program
  8. {
  9. static int n = 3;
  10. static double result = 0;
  11. static void Function_of_thread()
  12. {
  13. result = (1.0 / factorial(n));
  14. Console.WriteLine(result);
  15. }
  16. static long factorial(int n)
  17. {
  18. int fact = 1;
  19. for (int i = 1; i < n; i++)
  20. {
  21. fact *= i;
  22. }
  23. return fact;
  24. }
  25. static void Main(string[] args)
  26. {
  27. for (int i = 0; i < 3; i++)
  28. {
  29. Thread thr = new Thread(Function_of_thread);
  30. thr.Start();
  31. }
  32. Console.Read();
  33. }
  34. }
  35. }

Решение задачи: «Вычислить значение бесконечной суммы (потоки)»

textual
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Threading;
  5.  
  6. namespace ConsoleApplication16
  7. {
  8.     class Program
  9.     {
  10.         static object locker = new object();
  11.         static void Function_of_thread()
  12.         {
  13.                 double result = 1;
  14.                 double eps = 0.000001;
  15.                 double frl;
  16.                 int n = 1;
  17.                 do
  18.                 {
  19.                     frl = 1.0 / Fact(n);
  20.                     result += Math.Pow(-1, n) * frl;
  21.                     n = n + 1;
  22.                     Console.WriteLine("Я поток № " + Thread.CurrentThread.ManagedThreadId + " Сумма=" + result);
  23.                 } while (frl > eps);
  24.             }
  25.         static long Fact(int n)
  26.         {
  27.             int res = 1;
  28.             if (n <= 1) res = 1;
  29.  
  30.             else
  31.                 for (int i = n; i > 1; i--)
  32.                     res *= i;
  33.  
  34.             return res;
  35.         }
  36.         static void Main(string[] args)
  37.         {
  38.             for (int i = 0; i < 3; i++)
  39.             {
  40.                 Thread thr = new Thread(Function_of_thread);
  41.                 thr.Start();
  42.             }
  43.             Console.Read();
  44.         }
  45.     }
  46. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы