![]()  | 
	
 | 
	
| 
			
			 | 
		#1 | 
| 
            
			 Gold Member 
			
			
			
			Регистрация: 25.06.2005 
				Адрес: F000:FFF0 
				
				
					Сообщений: 1,830
				 
				
				
				
				
				 | 
	
	
	
		
		
			
			 
			
			Коллеги! Прошу помочь потестировать мою программную реализацию 
		
		
		
			вычислений с целочисленным типом неограниченной разрядности. В программе реализовано сложение, вычитание, умножение, деление (частное и остаток), наибольший общий делитель, преобразование строки в ultralong число, и наоборот преобразование числа в строку. Погоняйте и напишите о выявленных случаях неверных результатов. Там многое реализовано на ассемблере для максимальной скорости, много манипуляций с динамическим выделением памяти под числа, и насколько мог отладил вычислитель, но возможно что-то не заметил. P.S. Планирую использовать ее в своих расчетных программах, в том числе для повышения точности вычислений при расчете надежности.  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| Реклама | |
| 
 | |
| 
			
			 | 
		#2 | 
| 
            
			 Platinum Member 
			
			
			
				
			
			Регистрация: 22.07.2010 
				Адрес: Санкт-Петербург 
				
				
					Сообщений: 3,304
				 
				
				
				
				
				 | 
	
	
	
		
		
			
			 
			
			Paul Kellerman, коллега, позвольте спросить, Вы это к кому тут обращаетесь? К экономистам или педагогам? 
		
		
		
		
		
		
	Не, моя лично уважуха к Вам высока, но, честно, сейчас не до серьезного тестирования. Раньше следующего года никак. Прошу понять. И простить.  | 
| 
        
        
             --------- 
            DNF is not an option 
             | 
|
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#3 | 
| 
            
			 Gold Member 
			
			
			
			Регистрация: 25.06.2005 
				Адрес: F000:FFF0 
				
				
					Сообщений: 1,830
				 
				
				
				
				
				 | 
	
	
	
		
		
			
			 
			
			Hogfather, да в принципе ни к кому конкретно. Любой может наугад вбить пару 
		
		
		
		
		
		
	сверхдлинных целых числа в верхние два поля и нажать на любую из операций и посмотреть на результат, и если он окажется неверным - написать об этом тут.  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#4 | 
| 
            
			 Gold Member 
			
			
			
			Регистрация: 25.06.2005 
				Адрес: F000:FFF0 
				
				
					Сообщений: 1,830
				 
				
				
				
				
				 | 
	
	
	
		
		
			
			 
			
			Выявил пару глубоко скрытых ошибок в модуле деления (проявляющиеся  
		
		
		
			при определенных редких операндах). Выкладываю исправленную версию. Кому не лень просьба погонять операцию деления, больно уж проблемная.  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#5 | 
| 
            
			 Gold Member 
			
			
			
			Регистрация: 25.06.2005 
				Адрес: F000:FFF0 
				
				
					Сообщений: 1,830
				 
				
				
				
				
				 | 
	
	
	
		
		
			
			 
			
			И снова коварная ошибка в модуле деления (проявлялась только при  
		
		
		
			очень больших операндах вида 2^(64*t), t >= 1). Исправил, надеюсь, что по крайней мере с делением разобрался. Выкладываю исправлен- ный вариант. Также выкладываю вторую программку - рациональный калькулятор на базе сверхбольших целых. Вводите операнды в виде P/Q , где P и Q целые числитель и знаменатель дроби, без пробелов, и нажимаете на желаемую операцию. Ответ тоже выводится дробью.  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#6 | 
| 
            
			 Gold Member 
			
			
			
			Регистрация: 25.06.2005 
				Адрес: F000:FFF0 
				
				
					Сообщений: 1,830
				 
				
				
				
				
				 | 
	
	
	
		
		
			
			 
			
			Игры разума продолжаются... И опять деление, была обнаружена 
		
		
		
			потеря старших 32-битов частного, если оно расширяется в ходе деления и занимает больше 320 битов. Исправил глючную строчку.  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#7 | 
| 
            
			 Gold Member 
			
			
			
			Регистрация: 25.06.2005 
				Адрес: F000:FFF0 
				
				
					Сообщений: 1,830
				 
				
				
				
				
				 | 
	
	
	
		
		
			
			 
			
			Вроде все... Дзен похоже достигнут.  
		
		
		
			Выкладываю итоговые демо-версии. Разрядность целых чисел: 32000 бит Минимальное целое (абсолютное значение): 0 Максимальное целое (абсолютное значение): 2^32000 - 1. Точность для любого целого числа: 1. Максимальный размер в памяти: 4009 байтов. Минимальное ненулевое дробное число (абсолютное значение): 1 / (2^32000 - 1) ~ 1,0968E-9633 Максимальное ненулевое дробное число (абсолютное значение): (2^32000 - 1) / 1 ~ 9,1172E+9632 Точность для дробного числа: 1 / (2^32000 - 1) ~ 1,0968E-9633. Максимальный размер в памяти: 8018 байтов. Себе сделал отдельную Pro-версию: Разрядность целых чисел: 2097024 бит Минимальное целое (абсолютное значение): 0 Максимальное целое (абсолютное значение): 2^2097024 - 1. Точность для любого целого числа: 1. Максимальный размер в памяти: 262137 байтов. Минимальное ненулевое дробное число (абсолютное значение): 1 / (2^2097024 - 1) ~ 7.4881E-631268 Максимальное ненулевое дробное число (абсолютное значение): (2^2097024 - 1) / 1 ~ 1.3354E+631267 Точность для дробного числа: 1 / (2^2097024 - 1) ~ 7.4881E-631268 Максимальный размер в памяти: 524274 байтов. Особенности реализации: числа хранится не в виде массива десятичных цифр (как это часто делают), где под каждую десятичную цифру отводится по 4-бита, а в привычном для компьютера двоичном виде, это на 20% экономит память, упрощает обработку чисел и облегчает оптимизацию на языке ассемблер. Ниже демо-версии программ для операций с целыми и дробными числами: Последний раз редактировалось Paul Kellerman; 05.11.2014 в 18:30.  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 |