Re: Как увеличить точность на С\С++???
Можно воспользоваться библиотекой gnu mp, например.
А если не секрет, зачем такая точность?
если не секрет, зачем такая точность?нет не секрет
у меня есть ряд из трансцендентных значений который сходится к рациональному число. Чтобы вычислить рациональное число надо найти его период, за 25 знаков это сделать не удается =(
Python спасет тебя.
Тогда имеет смысл рассмотреть вариант с языком Ada, хоть это и противоречит формулировке вопроса.
Ну и чушь, ботай представления чисел.
зачем сразу питон? выше же посоветовали С библиотеку для работы с длинными числами 
если отходить от С/С++, то почему тогда уж не какой-нибудь Maple?
2: "язык ада"
//на правах флуда, не удержался

если отходить от С/С++, то почему тогда уж не какой-нибудь Maple?
2: "язык ада"

//на правах флуда, не удержался2:
Спасибо, можешь выложить примерчик?
Спасибо, можешь выложить примерчик?
2:
В чем чушь?
В чем чушь?
Примерчик прямо сейчас не достану, но есть отлично написанная документация, которую я когда-то читал.
upd: Там должно хватить глав GMP Basics и Floating-point Functions.
upd: Там должно хватить глав GMP Basics и Floating-point Functions.
Если уж задавал вопрос по C/C++, то надо было спрашивать про библиотеки для этой цели, а не про языковые средства.
2:
Не знаешь как возводить mpf_t в степень mpf_t?
Не знаешь как возводить mpf_t в степень mpf_t?
Чтобы вычислить рациональное число надо найти его период, за 25 знаков это сделать не удается =(Могу тебя огорчить - и за 250 знаков не удастся.
Даже больше того, если ты знаешь, что твоё число равно n/10^k (а это гораздо уже просто рациональных) - всё равно никакое количество известных знаков не позволит тебе узнать это число.
Могу тебя огорчить - и за 250 знаков не удастся.2:
Даже больше того, если ты знаешь, что твоё число равно n/10^k (а это гораздо уже просто рациональных) - всё равно никакое количество известных знаков не позволит тебе узнать это число.
да период может быть и очень большим. Но всетаки надежда есть
Короче, это нужно делать нормальными математическими методами, выдающими по цифре за действие (например, алгоритмом деления в столбик). А не "возьмём от балды число с 250 знаками после запятой, разделим и, посмотрим, нет ли там периода".
наверное имеется в виду, что если цифры повторяются, то это не значит, что ты нашел период
смотри: 0,12312312341231231234....
смотри: 0,12312312341231231234....
Рациональность числа надо проверять не поиском периода, а разложением в цепную дробь (то бишь проводим процесс $x_{n+1}=\{x_n^{-1}\}$ до тех пор, пока не получим число очень близкое к нулю, а потом идем назад восстанавливая дробь)! Если знаменатель меньше 10^7, то 17 знаков хватит с головой.
Рациональность числа надо проверять не поиском периода, а разложением в цепную дробь (то бишь проводим процесс $x_{n+1}=\{x_n^{-1}\}$ до тех пор, пока не получим число очень близкое к нулю, а потом идем назад восстанавливая дробь)! Если знаменатель меньше 10^7, то 17 знаков хватит с головой.Можно по подробнее. Я сначала считаю сумму, а потом хочу установить сходится ли эта сумма к рациональному. Что предлагаешь ты, устанавливать является ли полученное число рациональным? Так оно заведомо будет рациональным!
все числа в компьютере рациональные
Могу тебя огорчить - и за 250 знаков не удастся.более того, даже если все знаки (точнее, каждый знак) известны, то за конечное время все равно не удастся
я думаю, здесь у автора что-то вроде догадок - мб, полученное значение как-то поможет ему в мат. доказательстве; в противном случае его затея действительно бессмысленна
Этот метод не только установит, что число рациональное, но и позволит восстановить дробь. Для этого нужно запоминать на каждом шаге отбрасываемые целые части (то есть [x_n^{-1}]). После чего проводим обратный процесс: x_n=1/(a_n+x_{n+1} где a_n - запомненная целая часть. В общем, запости число с 17 знаками - может мне быстрее будет к нему применить этот алгоритм, чем объяснять его.
PS Так же о непрерывных дробях можно почитать здесь: http://ru.wikipedia.org/wiki/Непрерывная_дробь
PS Так же о непрерывных дробях можно почитать здесь: http://ru.wikipedia.org/wiki/Непрерывная_дробь
Цепные дроби хорошо приближают - оценка на погрешность оценки числа \alfa цепной дробью P/Q такая:
|\alfa - P/Q| < 1/(Q^2)
Цепные (непрерывные) дроби удобны для приближения иррациональных чисел и рациональных чисел с очень большими знаменателями.
Кстати, в старинных часах передаточное число соприкасающихся шестерён делали в виде цепной дроби, приближающей числа вроде "сколько в году недель" и тому подобные.
|\alfa - P/Q| < 1/(Q^2)
Цепные (непрерывные) дроби удобны для приближения иррациональных чисел и рациональных чисел с очень большими знаменателями.
Кстати, в старинных часах передаточное число соприкасающихся шестерён делали в виде цепной дроби, приближающей числа вроде "сколько в году недель" и тому подобные.
я думаю, здесь у автора что-то вроде догадок - мб, полученное значение как-то поможет ему в мат. доказательстве; в противном случае его затея действительно бессмысленИменно так, мне нужно проверить гипотизу. Правда ли то, что получилось (что число рационально) и соответственно проверять рассуждения или искать мат. способы получения его.
А как по-твоему, у дробей вида n/10^k какой период?
Хочешь, обрадую? То число, которое у тебя получилось, уже рациональное, и имеет именно такой (n/10^k) вид
Хочешь, обрадую? То число, которое у тебя получилось, уже рациональное, и имеет именно такой (n/10^k) вид

Период у нее длиной 1, вида "0".
Не обсуждая вопросов осмысленности, не вижу запретов, для применения алгоримтов ищущих период.
Не обсуждая вопросов осмысленности, не вижу запретов, для применения алгоримтов ищущих период.
Период у нее длиной 1, вида "0".Ну и чем эта дробь тебя не устраивает?
невычислимые задачи - единственный запрет, но он равносилен осмысленности
невычислимые задачи - единственный запрет, но он равносилен осмысленностиНеверно.
Вычислить самое большое простое число - задача невычислимая даже теоретически. Тем не менее многие занимаются, и в этом даже есть смысл, тк большие простые числа используются в криптографии.
То, что решение своей задачи автор считает осмысленным, значит это так и есть (для него)
Никто и не ищет самое большое простое число.
в гугл в гугл товарищи 
например http://www.google.ru/search?hl=ru&q=%D0%BD%D0%B0%D0%B9%D..., http://www.mersenne.org/
Да и вообще примеров много теоретически в общем случае точно не вычислимых задач, которыми люди занимаются или в надежде получить какието частные решения, или в надежде нейти приближенные решения или еще в каких своих целях, которые они считают осмысленными.

например http://www.google.ru/search?hl=ru&q=%D0%BD%D0%B0%D0%B9%D..., http://www.mersenne.org/
Да и вообще примеров много теоретически в общем случае точно не вычислимых задач, которыми люди занимаются или в надежде получить какието частные решения, или в надежде нейти приближенные решения или еще в каких своих целях, которые они считают осмысленными.
Различай не вычислимые и не разумные. Никто разумный не станет искать "самое большое простое число", так как его не существует.
что не мешает искать простое число большее самого большого, известного на данный момент
Ага
но только поиск самых больших простых чисел, это, прошу прощения, интеллектуальный онанизм какой-то, так как пользы от этого никакой, ни для науки, ни для чего-то прикладного вроде криптографии. Здесь самоцель - посоревноваться, найти какую-нибудь сложную и понятную при этом вычислительную задачу, и потом дружно бить рекорды друг друга
Just for fun...
Just for fun...Ты, конечно, можешь мне не поверить, но я недавно в компьютерре читал, что именно большие простые числа дают шанс криптографам шифровать что-либо весьма надежно.
хватит стебаться. Для криптографии простые числа большие, чем несколько тысяч бит, не нужны. Ищут же числа в несколько миллионов бит, которые, к тому же, после того, как найдены, становятся всем известны. А где нет секрета, там нет криптографии 

опять даёшь ссылку на википедию, которую сам не прочитал? 

Различай не вычислимые и не разумные. Никто разумный не станет искать "самое большое простое число", так как его не существует.Было сделано утверждение - раз задача принципиально невычислимая это равносильно бессмысленности.
Я с этим не согласен.
Против утверждения о бессмысленности неразумных задач я ничего не говорил. И не надо хитрить и перескакивать приписывая мне это.
Так зачем ты писал про самое большое число? Выражай свои мысли яснее.
про самое большое числоНикогда я такого не говорил, выражайтесь точнее.
Я выражался относительно посика простых чисел совершенно точно и конкретно. Если проблемы с чтением это не ко мне.
Не только прочитал, но и использовал описываемый RNG в своём депломбе. Нафига флудишь, одмин?
Вычислить самое большое простое число - задача невычислимая даже теоретически. Тем не менее многие занимаются и в этом даже есть смысл, тк большие простые числа используются в криптографии.А это что?
Надеюсь, что ты юзал boost::mt19937, а не изобретал велосипед 

Если б прочитал, то увидел бы, что там написано о непригодности данного генератора для криптографии. (А если хеш добавить, то всё упрётся в стойкость хеша, и афигенно большие простые числа не помогут).
Я фигею.
Криптография - не единственная область применения RNG. Более того, она даже никаким боком не основная область применения RNG.
Криптография - не единственная область применения RNG. Более того, она даже никаким боком не основная область применения RNG.
Ты считаешь, что это самый лучший генератор?
---
...Я работаю антинаучным аферистом...
---
...Я работаю антинаучным аферистом...
Оставить комментарий
karavan
Мой си при вычисления с double и long double дает после запятой 17 знаков, как увеличить точноть до 50-100 знаков?