ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Как считать числа точнее
  #1  
Старый 20.02.2010, 03:40
BastardFromHell
Познающий
Регистрация: 05.02.2010
Сообщений: 59
Провел на форуме:
360122

Репутация: 41
По умолчанию Как считать числа точнее

На сях флоаты и даблы нехватат.
Там до 5 знаков после зпт и всё, а мне надо штук 15 хотябы, как сделать?
 
Ответить с цитированием

  #2  
Старый 20.02.2010, 05:54
lukmus
Постоянный
Регистрация: 18.11.2009
Сообщений: 709
Провел на форуме:
1410429

Репутация: 214


По умолчанию

на руби разрядность чисел ограничиваеться лишь оперативкой и свопом т.е. фактически не чем.
а если на C то придеться самому писать класс со всеми втекающими туда операциями.
P.S. если тебе посчитать какие-то конкретные числа, то скинь мне в ПМ я на руби посчитаю
 
Ответить с цитированием

  #3  
Старый 20.02.2010, 06:19
Fuckel
Участник форума
Регистрация: 17.01.2008
Сообщений: 170
Провел на форуме:
1608606

Репутация: 105
Отправить сообщение для Fuckel с помощью ICQ
По умолчанию

http://ru.wikipedia.org/wiki/Длинная_арифметика
пример, вычисления числа Пи http://algolist.manual.ru/maths/count_fast/pi.php
 
Ответить с цитированием

  #4  
Старый 20.02.2010, 14:08
Protorus
Новичок
Регистрация: 17.01.2010
Сообщений: 23
Провел на форуме:
118852

Репутация: 0
По умолчанию

Цитата:
на руби разрядность чисел ограничиваеться лишь оперативкой и свопом т.е. фактически не чем
что-то я в этом сомневаюсь, число в формате с плавающей запятой занимает в памяти компьютера 4 (число обычной точности) и 8 байтов (число двойной точности), ну или 10 байтов повышенной (родной для сопроцессора)
Или в ruby все действия делаются столбиком?

Последний раз редактировалось Protorus; 20.02.2010 в 14:16..
 
Ответить с цитированием

  #5  
Старый 20.02.2010, 14:23
NetSter
студент
Регистрация: 30.07.2007
Сообщений: 800
Провел на форуме:
4275992

Репутация: 1188


По умолчанию

DECIMAL

http://msdn.microsoft.com/ru-ru/library/system.decimal.aspx

числа в диапазоне от 79228162514264337593543950335 до -79228162514264337593543950335
можно считать с точностью до 0,9999999999999999999999999999
 
Ответить с цитированием

  #6  
Старый 20.02.2010, 14:37
Forcer
Постоянный
Регистрация: 12.04.2007
Сообщений: 413
Провел на форуме:
3578578

Репутация: 275
Отправить сообщение для Forcer с помощью ICQ
По умолчанию

Цитата:
Сообщение от NetSter  
DECIMAL

http://msdn.microsoft.com/ru-ru/library/system.decimal.aspx

числа в диапазоне от 79228162514264337593543950335 до -79228162514264337593543950335
можно считать с точностью до 0,9999999999999999999999999999
Это .net . Речь шла о Си.

Цитата:
Сообщение от BastardFromHell  
На сях флоаты и даблы нехватат.
Там до 5 знаков после зпт и всё, а мне надо штук 15 хотябы, как сделать?
Есть специальные библиотеки для работы с большими числами. Например, NTL
 
Ответить с цитированием

  #7  
Старый 20.02.2010, 16:14
Aag
Познающий
Регистрация: 26.07.2005
Сообщений: 54
Провел на форуме:
47901

Репутация: 46
По умолчанию

Цитата:
Сообщение от BastardFromHell  
На сях флоаты и даблы нехватат.
Там до 5 знаков после зпт и всё, а мне надо штук 15 хотябы, как сделать?
Почему ты решил, что double только 5 знаков после запятой?

Педставление чисел double обеспечиват относительную точность порядка 16 знаков после запятой.
_http://ru.wikipedia.org/wiki/Число_двойной_точности

Возможно, что у тебя проблемы с выводом нужного числа знаков после запятой?
Код:
#include <iostream>
int main(){
	double a=1.234567890123456;
	std::cout<<a<<std::endl;

	std::cout.precision(15);

	std::cout<<a<<std::endl;

	printf("%.14f \n",a);
return 0;
}
 
Ответить с цитированием

  #8  
Старый 20.02.2010, 16:20
Olegros911
Участник форума
Регистрация: 07.04.2008
Сообщений: 166
Провел на форуме:
1116075

Репутация: 68
Отправить сообщение для Olegros911 с помощью ICQ
По умолчанию

Цитата:
Сообщение от Aag  
Почему ты решил, что double только 5 знаков после запятой?

Педставление чисел double обеспечиват относительную точность порядка 16 знаков после запятой.
_http://ru.wikipedia.org/wiki/Число_двойной_точности

Возможно, что у тебя проблемы с выводом нужного числа знаков после запятой?
Код:
#include <iostream>
int main(){
	double a=1.234567890123456;
	std::cout<<a<<std::endl;

	std::cout.precision(15);

	std::cout<<a<<std::endl;

	printf("%.14f \n",a);
return 0;
}

printf("%.14f \n",a); он прав

в паскале можно при выводе

writeln('chislo',S:4:14) ,будет выводить 14 знаков после комы
 
Ответить с цитированием

  #9  
Старый 20.02.2010, 16:27
BastardFromHell
Познающий
Регистрация: 05.02.2010
Сообщений: 59
Провел на форуме:
360122

Репутация: 41
По умолчанию

угу, да, но при подсчёте и флоат и дабл округляется. Например если вот что-то типа такого считать:
Код:
#include <iostream>
	using namespace std;
	int main( int argc, char *argv[])
{
	double x,x1 = 0;
	cout << "int to start: " << endl;
	cin >> x;
	//f(x) = x^2 - 3
	for(int i=1; i < 101; i++)
	{
		x1 = x - ((x*x-3)/(2*x));
		x=x1;
		cout << "approximation " << i << " x = " << x1 << endl;
	}
	return 0;
}
 
Ответить с цитированием

  #10  
Старый 20.02.2010, 18:31
lukmus
Постоянный
Регистрация: 18.11.2009
Сообщений: 709
Провел на форуме:
1410429

Репутация: 214


По умолчанию

Цитата:
Сообщение от Protorus  
что-то я в этом сомневаюсь, число в формате с плавающей запятой занимает в памяти компьютера 4 (число обычной точности) и 8 байтов (число двойной точности), ну или 10 байтов повышенной (родной для сопроцессора)
Или в ruby все действия делаются столбиком?
Про целые числа в Ruby:
Цитата:
Конечно, они (класс Bignum) потребляют больше памяти и выполняються несколько медленнее, тем не менее операции над очень большими целыми (тысячи знаков) реальны.
Дроби в Ruby:
Цитата:
Стандартная библиотека bigdecimal позволяет работать с дробями, имеющими много значащих цифр. Число храниться как массив цифр, а не преобразуеться в двоичное представление. Тем самым достижима произвольная точность, естественно, ценой замедления работы.
Цитаты из книги "Путь Ruby" Хэл Фултон, стр. 164
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Большой архив статей по раскрутке и оптимизации сайтов _-Ramos-_ Статьи 12 13.06.2010 23:56
Как вы повышаете свое настроение? Cthulchu Болталка 44 10.04.2010 00:13
FAQ по выделенным серверам †Romi4† Авторские статьи 4 31.08.2009 16:19
Как сделать чтоб имя ника было постоянным ,а числа после него переменными ? Чаты 2 03.07.2002 02:44



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ