70 / 63 / 1
Регистрация: 25.04.2011
Сообщений: 181
|
|
1 | |
Извлекаем факториал с абсолютной точностью.26.07.2011, 03:52. Показов 4975. Ответов 35
Метки нет (Все метки)
Вот представляю вам утилитку для нахождения факториала. Просто я часто встречал вопросы с факториалом и числами высокой точности на форумах вот и решил написать dll.Можно узнавать факториал числа от 0 до 3200, возвращается string-овой строкой, можно с разделителями, можно без. Также можно узнать количество разрядов (кол-во которых может достигать чуть меньше 10 к) в получившемся факториале, и ещё примерное время вычисления. Вообщем более подробное описание свойств в архиве в текстовом документе.
Кидаю программку и исходник программки с dll файлом. Надеюсь кому-нибудь она пригодится=)
3
|
26.07.2011, 03:52 | |
Ответы с готовыми решениями:
35
Решить уравнение с абсолютной точностью Вычислить факториал с точностью Е факториал с точностью до единицы Вычислить факториал с заданной точностью |
70 / 63 / 1
Регистрация: 25.04.2011
Сообщений: 181
|
|
26.07.2011, 03:55 [ТС] | 2 |
Программа нужна лишь для презентации dll.
0
|
70 / 63 / 1
Регистрация: 25.04.2011
Сообщений: 181
|
|
26.07.2011, 12:56 [ТС] | 4 |
Maxwe11, один архив с dll, один проект с программой-презентацией, и третий проект с исходником программы. До 3200 так как для больших чисел нужно больше времени для вычисления, на 3200 факториал высчитывает около 10 минут. Я думаю этого достаточно. Но если кому-то нужно больше, обращайтесь.
0
|
70 / 63 / 1
Регистрация: 25.04.2011
Сообщений: 181
|
|
26.07.2011, 15:18 [ТС] | 7 |
Eugene22, из-за ограниченности доступных переменных, я создал массив из 10 тыс разрядов, в которых производится умножение "столбиком" с переносами разрядов и т. п. использованы циклы, с рекурсией было бы намного хуже.
Добавлено через 2 минуты Maxwe11, я лишь новичёк, предложишь эффективнее - буду только рад набраться опыта. А имена свойств не думаю, что имеют важного значения.
0
|
196 / 188 / 15
Регистрация: 09.02.2011
Сообщений: 457
|
||||||
26.07.2011, 15:56 | 8 | |||||
Код не смотрел, просто думал что факториал можно посчитать так:
0
|
70 / 63 / 1
Регистрация: 25.04.2011
Сообщений: 181
|
||||||
26.07.2011, 16:22 [ТС] | 9 | |||||
Bazzy, какова величина переменной Big integer?
Добавлено через 3 минуты
Bazzy, моя функция позволяет находить факториал абсолютно любого числа, вопрос лишь во времени. Если есть предложения по эффективности, с радостью приму.
0
|
70 / 63 / 1
Регистрация: 25.04.2011
Сообщений: 181
|
|
26.07.2011, 18:45 [ТС] | 13 |
Eugene22, из-за своей неопытности я не знал о такой переменной=) считай я создал собственную переменную. А наворочено всего, так как я пользовался не стандартными функциями а как бы сам придумал велосипед. Число разбивается на цифры в массив, далее на каждую цифру умножается новое число, и работает перенос разрядов, если в элементе массива число более 9. Только проблема в быстро действии. Ты не проверял свою функцию на время, сколько факториал 3000 находится?
0
|
196 / 188 / 15
Регистрация: 09.02.2011
Сообщений: 457
|
|
27.07.2011, 00:08 | 16 |
5000 вроде 40мс под рукой студии нет, завтра могу сказать поточнее
0
|
Почетный модератор
21415 / 9150 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
|
|
27.07.2011, 00:11 | 17 |
Я посоветую всем тут присутствующим не забывать о том, что далеко не у всех используется NET Framework4, и конструкция с Big integer мягко говоря, не пролазит.
Maxwe11, поубавь свой гонор. probit старается и пишет, улучшает раздел, не смотря на то, что новичок.
2
|
0 / 0 / 0
Регистрация: 13.01.2011
Сообщений: 13
|
|
28.07.2011, 02:58 | 18 |
Я тоже написал что то подобное. Моя программа просто принимает две строки и умножает их. Просто алгоритм имитирует обычную умножению. Вот:
0
|
70 / 63 / 1
Регистрация: 25.04.2011
Сообщений: 181
|
|
28.07.2011, 06:11 [ТС] | 19 |
smallvill, ты на какой переменно писал? Big integer? или как я массив? поделишься функциями, интересно.
0
|
0 / 0 / 0
Регистрация: 13.01.2011
Сообщений: 13
|
|
29.07.2011, 14:34 | 20 |
Я использовал переменных String и наверно знаете что в фреймворк 2.0 переменная String может иметь длину на 2ГБ. Но поскольку это в этой программе результат тоже присваывается на Textbox.text ( это тоже string), тогда можно только умножать чисел длинной на 1GB.
0
|
29.07.2011, 14:34 | |
29.07.2011, 14:34 | |
Помогаю со студенческими работами здесь
20
Найти сумму ряда S с точностью до члена ряда, по абсолютной величине меньшего eps Вычисления суммы ряда с точностью до члена ряда, не превышающего по абсолютной величине 0,001 Извлекаем данные из файла Извлекаем комментарии с booking.com, используя urlopen() Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |