С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
 Аватар для EveKS
601 / 485 / 185
Регистрация: 19.04.2016
Сообщений: 1,885

Задачка: Как бы вы реализовали калькулятор? Фибоначчи/Умножение/Сложение

15.08.2017, 13:02. Показов 1052. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Этакая минизадачка.

В общем, написал калькулятор с тримя методами, сложение, вычитание, и поиск числа Фибоначчи.
10000 чисел Фибоначчи находит за 4644,245 мс.

Не по теме:


Вроде как результаты выдает без ошибок :)



В общем, кому интересно, как вы считаете как происходит расчет, возможно у кого-то есть варианты более быстрых решений, не нужны ссылки на алгоритмы быстрых расчетов и тп. Хочется увидеть ваше мнение. Особенно любителей создать тему, "научите программировать".

Хотелось бы увидеть варианты кода, как делаются вычисления.

На написание своего варианта, вместе с C#Core+NodeJS потратил около часа, поэтому там нет не каких супер расчетов...

Вот ссылка на рабочий вариант онлайн калькулятора описанного выше:
http://u0380448.plsk.regruhosting.ru/

Фибоначчи считается по первому числу, не советую вводить число выше 10000...

Расчитывает быстрее, чем формирует эти самые 10000 полей <li>
Кликните здесь для просмотра всего текста

Можно было бы скрывать второй textarea,
JavaScript
1
2
3
if($(':checked').val() === 'fib'){
('textarea[name="second"]').perents('.form-group').hide();
}
но лень пересобирать сборку...


Расчеты делаются на C#
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.08.2017, 13:02
Ответы с готовыми решениями:

Калькулятор (сложение, вычитание, умножение, деление)
добрый вечер, уважаемые программисты и форумчани! помогите,пожалуйста,написать программу на языке Делфи 7. вот задание: сделать...

Калькулятор матриц (сложение, вычитание, умножение)
Немогу понять. Как правильно сделать этот калькулятор в консольном приложении?

Сделать калькулятор матриц (сложение, вычитание, умножение)
Всем привет! Есть задание, сделать калькулятор матриц (сложение, вычитание, умножение) в ГРАФИЧЕСКОМ режиме в Turbo Pascal. Как реализовать...

8
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
15.08.2017, 14:47
Цитата Сообщение от EveKS Посмотреть сообщение
Вот ссылка на рабочий вариант онлайн калькулятора описанного выше
Service Unavailable
HTTP Error 503. The service is unavailable.
Видать, считает.
1
 Аватар для EveKS
601 / 485 / 185
Регистрация: 19.04.2016
Сообщений: 1,885
15.08.2017, 14:55  [ТС]
kolorotur, хостинг не потянул 100000 Фибоначчи xD. Жду пока перезапустят.
Переделаю под вывод конкретного результата, а то ооочень много памяти съедает за несколько секунд...
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
15.08.2017, 15:14
Цитата Сообщение от EveKS Посмотреть сообщение
Переделаю под вывод конкретного результата, а то ооочень много памяти съедает за несколько секунд.
Что-то у вас какой-то там ядреный алгоритм используется.

C#
1
2
3
4
5
6
7
8
9
10
11
IEnumerable<BigInteger> Fibonacci(int count)
{
    BigInteger f1 = 1, f2 = 1, f3;
    while (count --> 0)
    {
        yield return f1;
        f3 = f1 + f2;
        f1 = f2;
        f2 = f3;
    }
}
C#
1
2
3
4
5
6
var sw = Stopwatch.StartNew();
var fib = Fibonacci(100000).Last();
sw.Stop();
 
WriteLine(fib);
WriteLine(sw.Elapsed);
100000 чисел высчитываются меньше чем за секунду.
0
 Аватар для EveKS
601 / 485 / 185
Регистрация: 19.04.2016
Сообщений: 1,885
15.08.2017, 17:04  [ТС]
Цитата Сообщение от kolorotur Посмотреть сообщение
ядреный алгоритм используется
Кэшировал в Dictionary и одновременно формировал класс вида { string: string: string: List<{int: string:}> }
И вот эти самые Dictionary + List съедали память.

Добавлено через 10 минут
Возможно кто-то еще решил посчитать Фибоначчи, в этот же момент

Добавлено через 1 час 6 минут
kolorotur, прикрутил ваш вариант, но что-то не хочет отдавать мне Json на 100000 элементов
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
15.08.2017, 17:46
Цитата Сообщение от EveKS Посмотреть сообщение
прикрутил ваш вариант, но что-то не хочет отдавать мне Json на 100000 элементов
Результат работы метода — итератор/генератор, а не готовый набор значений.
Значения он генерирует по запросу, а не все сразу
0
 Аватар для EveKS
601 / 485 / 185
Регистрация: 19.04.2016
Сообщений: 1,885
15.08.2017, 18:03  [ТС]
kolorotur, он генерирует все )))
Предположим в моем варианте:
C#
1
2
3
var fibs = Fibonacci(count);
value.Result = fibs
          .Select((n, i) => new Result { Index = i + 1, Value = n })
Да, сейчас он не генерирует, можно было бы, скажем, добавить ToList, но зачем, если

C#
1
2
3
_informations.Enqueue(value);
// -=-
return Ok(_informations);
Сделает всё что нужно.

Скажем 10000 он сформирует и вернет, но вот 100000 заставило перезагрузиться хостинг вновь...
Всё потому что я храню всё это в памяти, не записывая не куда.
C#
1
2
3
4
5
6
7
8
9
  if (_informations.Count < 10)
  {
    _informations.Enqueue(value);
  }
  else
  {
    _informations.TryDequeue(out var localValue);
    _informations.Enqueue(value);
  }
Т.к. в данном случае, я не стал заморачиваться и использую очередь для хранения в памяти 10 записей.
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
15.08.2017, 18:12
Цитата Сообщение от EveKS Посмотреть сообщение
Всё потому что я храню всё это в памяти, не записывая не куда.
На 100000 результатов — это что-то около 500МБ памяти.
Лучше все-таки это записывать куда-нибудь.
1
 Аватар для EveKS
601 / 485 / 185
Регистрация: 19.04.2016
Сообщений: 1,885
15.08.2017, 18:27  [ТС]
Цитата Сообщение от kolorotur Посмотреть сообщение
что-то около 500МБ памяти.
Подозреваю, что js из этого будет формировать нужную мне разметку... долго. Поэтому разом возвращать всё это на клиент, да еще из этого формировать страницу - плохая идея
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.08.2017, 18:27
Помогаю со студенческими работами здесь

Калькулятор: сложение, вычитание и умножение в разных системах счислениях
Как сделать в одном проекте сложение, вычитание и умножение в разных системах счислениях. Системы счисления переключать с помощью checkbox.

Написать калькулятор - сложение, умножение, вычитание, деление столбиком
Завтра экзамен, надо сдать три задачи, кто сможет ? 1. Написать калькулятор (сложение, умножение, вычитание, деление столбиком!!) 2....

Калькулятор, который поддерживает четыре операции: сложение, вычитание, умножение, деление
Помогиет пожалуйста... Я не знаю как написать эту программу...:help: Напишите программу, которая будет служить в качестве простого...

Задано 4 матрицы. Провести сложение, умножение, умножение на число
Задано 4 матрицы A,B,C,D размером 4х4.Вычеслить такие матрицы: F,G,T. G=3/4 A+B F=B*(2D) T=c/5

Определить рекурсивно умножение как сложение, вычитание и деление
помогите с кодом,пожалуйста Определить рекурсивно умножение как сложение, вычитание и деление и оформить алгоритмы в виде рекурсивных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru