|
70 / 63 / 1
Регистрация: 25.04.2011
Сообщений: 181
|
|
Извлекаем факториал с абсолютной точностью.26.07.2011, 03:52. Показов 5404. Ответов 35
Метки нет (Все метки)
Вот представляю вам утилитку для нахождения факториала. Просто я часто встречал вопросы с факториалом и числами высокой точности на форумах вот и решил написать dll.Можно узнавать факториал числа от 0 до 3200, возвращается string-овой строкой, можно с разделителями, можно без. Также можно узнать количество разрядов (кол-во которых может достигать чуть меньше 10 к) в получившемся факториале, и ещё примерное время вычисления. Вообщем более подробное описание свойств в архиве в текстовом документе.
Кидаю программку и исходник программки с dll файлом. Надеюсь кому-нибудь она пригодится=)
3
|
|
| 26.07.2011, 03:52 | |
|
Ответы с готовыми решениями:
35
Вычислить факториал с точностью Е факториал с точностью до единицы |
|
70 / 63 / 1
Регистрация: 25.04.2011
Сообщений: 181
|
|
| 29.07.2011, 15:03 [ТС] | |
|
Maxwe11, я таким способом и делал.
0
|
|
|
70 / 63 / 1
Регистрация: 25.04.2011
Сообщений: 181
|
|
| 29.07.2011, 15:16 [ТС] | |
|
но проблема в том, что массива байтов не хватает. Дело в том, что при умножении первый множитель умножается на каждый разряд второго множителя. Допустим первый множитель у нас равен 255, а второй любая цифра. Получается, мы при умножении выходим за границы. Для факториала может ещё подойти short, ну а для супер умножения, только integer или даже long. Вся память и уходит на это. И ещё не малую часть памяти забирает функция переноса разряда.
Добавлено через 1 минуту Maxwe11, вот я и не могу сделать её эффективнее. В принципе можно любое число, но с 3 к считает 10 мин, это достаточно плохой показатель. Косяк найти не могу. Добавлено через 48 секунд Maxwe11, может взглянешь класс? на первой странице данной темы.
0
|
|
|
559 / 436 / 21
Регистрация: 16.12.2010
Сообщений: 953
|
|||||||||||
| 29.07.2011, 16:01 | |||||||||||
|
probit, советую тебе написать библу с новой переменной, что бы можно было написать
0
|
|||||||||||
|
70 / 63 / 1
Регистрация: 25.04.2011
Сообщений: 181
|
|
| 29.07.2011, 16:10 [ТС] | |
|
Ciberst, разъясни поподробней, пожалуйста.
0
|
|
|
559 / 436 / 21
Регистрация: 16.12.2010
Сообщений: 953
|
|||||||||||
| 29.07.2011, 16:38 | |||||||||||
|
Взял небольшой кусок из BigInteger, писать его с нуля для 3.5 Framework мне лень и времени нет и не факт, что получится еще.
Код
что умеет этот код? в общем это не нужный велосипед, показывающий, как создавать свои переменные
2
|
|||||||||||
|
Почетный модератор
23253 / 9167 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
|
|
| 29.07.2011, 18:04 | |
|
smallvill, ну так ты будешь делиться исходниками? Люди же просят.
Maxwe11, сильно принципиально НЕ использовать строки? Вроде код smallvill считает немедленно, вопрос в том, что одно умножение считается быстро, а как будет обстоять дело с циклом умножений. Ciberst, фишка хорошая, но в этой теме она не решает вопроса, хотя, возможно, и дает кой-какие идеи автору
0
|
|
|
0 / 0 / 0
Регистрация: 13.01.2011
Сообщений: 13
|
||||||
| 29.07.2011, 18:23 | ||||||
|
Сейчас у меня нет исходника но даю слова что будет. В данное время ест Basic вариант. Немного изменений и будет VB .Net вариант:
.НЕТ вариант напишу снова. Добавлено через 15 секунд .НЕТ вариант напишу снова.
0
|
||||||
|
70 / 63 / 1
Регистрация: 25.04.2011
Сообщений: 181
|
|
| 29.07.2011, 23:04 [ТС] | |
|
Ciberst, слишком тяжко для меня(
0
|
|
|
0 / 0 / 0
Регистрация: 13.01.2011
Сообщений: 13
|
||||||
| 30.07.2011, 12:02 | ||||||
|
Вот исходник который обещал:
probit! Естественно моя программа работает примерно 2 или 2.5 раза медленно. Например извлечение факториала числа 2840 тянет 24 минуты у меня. Может немного зависет от частоты процессора, объёма памяти, частоты памяти и т. д. Можно спросить каковы у вас характеристикы компютера? Добавлено через 1 минуту И ещё. Я написал программу для факториала с помощю того же программы (умножения).
0
|
||||||
|
70 / 63 / 1
Регистрация: 25.04.2011
Сообщений: 181
|
|
| 30.07.2011, 12:45 [ТС] | |
|
Intel(R) Pentiup(R) CPU G6950 2.80 GHz оперативка 3 Гб 64 разряда.
Добавлено через 5 минут smallvill, посмотрел твой код: слишком уж он наворочен циклами. Не забывай про основное правило программиста: используй метод инкапсуляции (распределяй возможные функции на более мелкие, используй как можно меньше переменных, и также использую такой дар visual basic , как редактирование области видимости переменных)
0
|
|
|
|
|
| 30.07.2011, 13:02 | |
|
probit, да тут уже выкладывали ...вычисление факториала ЛЮБОЙ величины. Используется вектор. и игра с целочисленными типами. Я тогда скажем так был удивлен. Человек отлично знает свойства базовых типов и их применение. Факториал 1000 считает какие то секунды. 10000 - уже подольше. а прога то сама - 2-3 функции. Сравнивал со своим творением. У меня был класс(как в задании просили) который принимал стринг и давал результат в стринге. Но в силу неопытности он катастрофически медленно работал, хотя считал так же факториал любой величины.
а черт это раздел бэйсик. сорри. Я не туда залез. Я про с++
0
|
|
|
0 / 0 / 0
Регистрация: 13.01.2011
Сообщений: 13
|
|
| 05.08.2011, 13:53 | |
|
probit А можно вы поделитесь исходником в текстовом формате? А то у меня Студио 2010 и не могу увидеть полный код. Видно только готовые методы.
Добавлено через 7 минут И ещё не могу использовать тип БигИнтегер корректно. Использую System.Numerics.Biginteger. Но возникает ошибка перенаполнения.Например как объявлять 2 переменных типа System.Numerics.Biginteger и выводить их сумму? Просто хочу узнать как объявлять и использовать корректно. Заранее спасибо.
0
|
|
|
70 / 63 / 1
Регистрация: 25.04.2011
Сообщений: 181
|
|
| 05.08.2011, 15:12 [ТС] | |
|
smallvill, про bidinteger ничего не скажу, сам не в курсах. Код самой dll библиотеки полностью лежит в блокнотике снизу. Учти, что это код для dll, без windows forms он работать не будет.
0
|
|
|
0 / 0 / 0
Регистрация: 13.01.2011
Сообщений: 13
|
|
| 05.08.2011, 20:54 | |
|
Спасибо тебе!
0
|
|
| 05.08.2011, 20:54 | |
|
Вычислить факториал с заданной точностью Найти сумму ряда S с точностью до члена ряда, по абсолютной величине меньшего eps
Извлекаем данные из файла Извлекаем комментарии с booking.com, используя urlopen() Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки
Правым кликом по серверу -> отладочная информация -> edit
Заменить "net": "raw", на "net": "tcp",
Нажать кнопку reload.
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|