|
1 / 1 / 0
Регистрация: 27.05.2015
Сообщений: 17
|
||||||
Как связать функцию с NumericUpDown?22.06.2016, 16:53. Показов 3810. Ответов 17
Метки нет (Все метки)
Пытаюсь написать программу, точнее написать формулу
Помогите, пожалуйста, как то связать эту функцию с NumericUpDown(в коде nud1) и с текст боксом(в коде tb1).
0
|
||||||
| 22.06.2016, 16:53 | |
|
Ответы с готовыми решениями:
17
|
|
1498 / 1213 / 821
Регистрация: 29.02.2016
Сообщений: 3,631
|
||||||
| 22.06.2016, 18:56 | ||||||
|
У вас ошибка в 44 строчке, а связать можно так
1
|
||||||
|
1 / 1 / 0
Регистрация: 27.05.2015
Сообщений: 17
|
||||||
| 23.06.2016, 14:36 [ТС] | ||||||
0
|
||||||
|
132 / 82 / 29
Регистрация: 01.10.2014
Сообщений: 263
|
|
| 23.06.2016, 14:59 | |
|
Ошибка в том что метод Fact реализован в виде бреда какого-то. Реализуйте метод вычисления факториала числа(!) и потом вычисляйте по формуле. Примеров реализации вычисления факториала вагон и маленькая тележка, например здесь же Существует ли встроенный метод для вычисления факториала
0
|
|
|
1 / 1 / 0
Регистрация: 27.05.2015
Сообщений: 17
|
|||||||||||
| 23.06.2016, 17:52 [ТС] | |||||||||||
|
Тут ответ, вроде, правильно выводит, но при n = 5, я ответа не дождался(около 2-х минут ждал и закрыл). Как мне его оптимизировать? И ещё желательно перенести на форму
0
|
|||||||||||
|
Master of Orion
|
|||||||||||
| 23.06.2016, 18:46 | |||||||||||
Сообщение было отмечено Несретдинович как решение
Решение
Несретдинович, то есть если число нечетное, то оно и факториалом является?
Неплохо.реализация в лоб, по идее нужно сокращать и тюнить, но лично у меня нормально сократить не получилось
"Связать с Numeric" тут как нефиг делать, подписываемся на событие TextChanged и считаем
1
|
|||||||||||
|
132 / 82 / 29
Регистрация: 01.10.2014
Сообщений: 263
|
|
| 23.06.2016, 19:12 | |
|
Зачем вам цикл при расчёте двойного факториала?
Для чётного n: Для нечётного: Эти формулы и надо реализовать в методе DoubleFact Ко всему прочему у вас при n<3 решения не будет, т.к. факториал вычисляется только от не отрицательного числа.
1
|
|
|
1 / 1 / 0
Регистрация: 27.05.2015
Сообщений: 17
|
|
| 23.06.2016, 19:38 [ТС] | |
|
Для этого https://docviewer.yandex.ru/?u... 6c10be63cc мне не нужно меньше 3-х
0
|
|
|
Master of Orion
|
|
| 23.06.2016, 22:01 | |
|
slashvlz, отлично, как теперь будем считать факториал в правой части выражения?
Только теперь нужно еще и 2 возводить в степень, а цикл будет ровно столько же n/2 итераций проходить, что и в случае наивной реализации.Добавлено через 1 минуту Хотя о чем это я У нас же всегда нечетное значение, значит нужно вычислять факторил дважды, потом делить, и еще на 2 в степени умножать Операций в разы больше от такого "упрощения".
1
|
|
|
964 / 485 / 241
Регистрация: 02.06.2016
Сообщений: 760
|
|
| 23.06.2016, 22:30 | |
|
Psilon, если я правильно посчитал, то там степень двойки уходит, такая формула (нужно проверить же):
если N не большие, можно записать множители числителя и знаменателя в массивы. перебрать gcd попарно и делить /умножать по очереди. Добавлено через 8 минут Вот, возможно, значения этой функции, можно в массив записать и не вычислять: Кликните здесь для просмотра всего текста
3, 1
4, 2 5, 5 6, 14 7, 42 8, 132 9, 429 10, 1430 11, 4862 12, 16796 13, 58786 14, 208012 15, 742900 16, 2674440 17, 9694845 18, 35357670 19, 129644790 20, 477638700 21, 1767263190 22, 6564120420 23, 24466267020 24, 91482563640 25, 343059613650 26, 1289904147324 27, 4861946401452 28, 18367353072152 29, 69533550916004 30, 263747951750360 31, 1002242216651368 32, 3814986502092304 33, 14544636039226909 34, 55534064877048198 35, 212336130412243110 36, 812944042149730764 37, 3116285494907301262 38, 11959798385860453492 39, 45950804324621742364 40, 176733862787006701400 41, 680425371729975800390 42, 2622127042276492108820 43, 10113918591637898134020 44, 39044429911904443959240 45, 150853479205085351660700 46, 583300119592996693088040 47, 2257117854077248073253720 48, 8740328711533173390046320 49, 33868773757191046886429490 50, 131327898242169365477991900 51, 509552245179617138054608572
1
|
|
|
132 / 82 / 29
Регистрация: 01.10.2014
Сообщений: 263
|
|
| 23.06.2016, 23:22 | |
|
1
|
|
|
Master of Orion
|
|
| 23.06.2016, 23:33 | |
|
Aael, формулу проще посчитать так, как она есть. Использовать табличку можно в обоих случаях, так что она тут разницы тоже не дает. Хотя конечно смысла в ней нет большого, тем более что нужно определиться, до какого момента эту табличку считаем.
Двойку можно убрать, но тогда останется 2*(2n-5)!/(n-3)!(n-1)!. Получается 3 факториала считать, вместо полутора Возведение двойки в степень быстрая операция. В результате получаем в 2 раза больше операций. Причем нужно понимать, что скорость работы BigInteger зависит от его размера, и поэтому для него посчитать n!*(n-1)! намного проще, чем (2n)!, хотя количество операций тут одинаково. Добавлено через 8 минут slashvlz, весьма занимательная статья, красота абстрактной математики в конкретных примерах Но все же я не вижу, как это можно тут использовать. Ну да, и там и там деление факториалов, только насколько я знаю нормально упростить это выражение нельзя. По крайней мере я истратил на это 2 листа бумаги)) Я конечно тот еще математик, но тривиальную задачу 1-2 курса думаю решил бы.
1
|
|
|
132 / 82 / 29
Регистрация: 01.10.2014
Сообщений: 263
|
|
| 23.06.2016, 23:56 | |
|
Статья к тому что эта последовательность называется числа Каталана, собственно её и надо было получить.
1
|
|
|
Master of Orion
|
|
| 24.06.2016, 00:45 | |
|
slashvlz, эмм, кто сказал, что это эквивалентные формулы? Можете выкладки привести? Что вот это вот выражение P(N) = (2n!)/(n!(n+1)!). Потому что по моим рассчетам этого не получается.
Ну и второе, ДАЖЕ если это число из последовательности Каталана, там ничего не сказано о том, как её получить проще, чем посчитать напрямую.
1
|
|
|
964 / 485 / 241
Регистрация: 02.06.2016
Сообщений: 760
|
||
| 24.06.2016, 01:43 | ||
|
Проверил варианты "в лоб"(с расчетом двух факториалов) и с моими сокращениями через НОД (с одним факториалом), до n=int.MaxValue моя функция в среднем работает на 2% медленнее. Хоть этот показатель и убывает с ростом n, все же думаю, что пока решения быстрее чем "в лоб" нет. Добавлено через 14 минут кстати, есть еще одно представление:
2
|
||
|
132 / 82 / 29
Регистрация: 01.10.2014
Сообщений: 263
|
|
| 24.06.2016, 01:52 | |
|
Psilon, Где автор откопал эту формулу лучше у него спросить, но совпадение последовательности чисел на лицо. Я собственно и не говорил, что будет проще вычислить
Я имел ввиду, что какие-либо последовательности уже как правило имеют разные известные способы реализации и зная их реализовать алгоритм будет проще и эффективнее.
1
|
|
|
Master of Orion
|
|
| 24.06.2016, 11:03 | |
|
Aael, я думаю это и есть различие в быстродействии BigInteger, т.к. посчитать n!! примерно равно по сложности посчитать (n/2)!, получается в знаменателе n/2 вычислений и в числителе столько же, всего N вычислений и быстрое возведение 2 в степень.
В вашем случае приходится считать полный факториал, это те же n вычислений, но т.к. числа сами по себе больше, то результат вычисляется медленнее.
1
|
|
|
1 / 1 / 0
Регистрация: 27.05.2015
Сообщений: 17
|
||||||
| 25.06.2016, 12:21 [ТС] | ||||||
|
https://docviewer.yandex.ru/?u... 6d260eff94Вот где я откопал эту формулу
Добавлено через 9 минут slashvlz, https://docviewer.yandex.ru/?u... 6d260eff94 Добавлено через 20 часов 45 минут Заработала
1
|
||||||
| 25.06.2016, 12:21 | |
|
Помогаю со студенческими работами здесь
18
Как ограничить numericUpDown?
Как создать часы с управлением как в NumericUpDown Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|