Форум программистов, компьютерный форум CyberForum.ru

Деление длинного числа на длинное - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ присвоить стрке двумерного масива значение http://www.cyberforum.ru/cpp-beginners/thread729915.html
у меня есть масив - mas; и вот кусок кода где надо присвоить второй строке масива значение 5.. вроде правильно написал не понимаю почему не работает.... for(i=1; i<2; i++) { for(j=0; j<5; j++) mas=5; } а ето для вывода уже измененого масива:
C++ c++ перегрузка функций и еще пара просьб Доброй ночи! вот имеется код с классом объектом которого является комплексное число. класс нужно дополнить динамическим массивом, например, названием комплексного числа(такое уж дурацкое задание) и перегруженными функциями сравнения и преобразования числа в вещественное. Помогите пожалуйста, буду очень благодарен! просто очень срочно нужно #include "stdafx.h" #include <iostream> #include... http://www.cyberforum.ru/cpp-beginners/thread729913.html
Фиксированный квант времени в алгоритме планирования FCFS C++
Здравствуйте. Вот код программы, планировщика, который работает по алгоритму FCFS. В нем реализованы два состояния: готовность и выполнение. Как дополнить код, чтоб было состояние ОЖИДАНИЯ и использовался КВАНТ ВРЕМЕНИ???? #include "stdafx.h" #include "conio.h" #include "iostream" #include "stdlib.h" #include "locale.h" using namespace std; void main()
Создать класс файл с методом top50 по расширению C++
Создать класс File. Добавить метод, который считает сколько файлов на определённом диске. Создать метод Competition. Он показывает файлов какого типа больше всего, а также их кол-во. Метод Top50. Распечатывает таблицу наиболее популярных расширений. Помогите пожалуйста сделать это или какую-то часть. Буду очень благодарен.
C++ Удалить среднею букву в нечетных словах текста http://www.cyberforum.ru/cpp-beginners/thread729905.html
Нужно удалить в каждом нечетном слове среднею букву, я смог дойти только до такого: удаляет онли в первом слове, дальше уж не знаю, как составить алгоритм, нужна Ваша помощь. #include <iostream> #include <conio.h> using namespace std; void main () {
C++ Преобразуйте КА к детерминированному виду и минимизируйте полученный КА Помогите с решением задачки: Задан КА: M({S,R,Z}, {a,b}, δ, S, {Z}), δ(S,a) = {S.R}, δ(R,b) = {R}. δ(R,a) = {Z}. Преобразуйте его к детерминированному виду и минимизируйте полученный КА. Добавлено через 20 часов 17 минут КА - Конечный автомат подробнее

Показать сообщение отдельно
HrundelB
0 / 0 / 0
Регистрация: 20.11.2011
Сообщений: 13
14.12.2012, 00:03  [ТС]     Деление длинного числа на длинное
NEbO, спасибо! Это конечно интересное предложение, но мне, во-первых, хотелось бы все таки доделать ту реализацию, которую я уже на половину сделал, а во-вторых, на ассемблере писать не вариант) А делать сдвиги и вычитания, когда каждая цифра в отдельном элементе массива или вообще односвязного списка - не очень то удобно)

Я почему-то больше чем уверен, что должен быть какой-то способ обойти эту проблему с миллиардом вычитаний. Может быть все-таки есть какие-то алгоритмы деления отличные от столбика? Кроме двоичных.


taras atavin, большое основание (а точнее не просто большое, а являющееся "машинным словом", т.е. оперируем интами, которые аккурат влезают в разрядность процессора) позволяет очень быстро производить умножение, с помощью которого тысяча факториал (1000!) вычисляется за 0,23 сек, при том, что те же методы но с основанием 10 считают его 25 секунд. И это я еще молчу, что умножение - простой столбик, а факториал - обыкновенная и медленная рекурсия.

Так вот при условии, что нам нужно остаться в рамках десятичной системы счисления(чтобы число просто рубилось на отрезки при вводе, а не переводилось в какую-нибудь двоичную, троичную, семеричную и так далее системы тем же делением) основание миллиард дает минимальное количество потерь памяти - теряется лишь два бита из 32х на каждой цифре.

Добавлено через 7 часов 47 минут
NEbO, разобрался с двоичным делением и возник вопрос - и как же это можно масштабировать такое деление на 4 байта допустим? В оригинальном алгоритме считается, что цифра может быть только 0м или 1цей, что позволяет после одного вычитания сразу сказать - надо добавить единицу в частное или нет. Если масштабировать алгоритм на 4 байта, то каждая цифра (именно цифра, не число) будет принимать значение от 0 до 11111111111111111111111111111111 (32 бита). Теперь представь, что мы делим однозначное число 11111111111111111111111111111111 (ну грубо говоря максимально возможную цифру) на число 101. Сколько ж вычитаний сделать придется?)

Здесь та же самая беда, нет разницы, десятичная система счисления или двоичная. Если основание системы очень большое, то вычитаний будет много. В примере выше естессно предполагается, что это только старшие разряды, а за ними еще огромные хвосты цифр. Поэтому разделить инт на инт конечно не можем.
 
Текущее время: 01:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru