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

Быстро возвести в квадрат число заданной длины (<16 байт) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ почему не добавляет элемент? http://www.cyberforum.ru/cpp-beginners/thread886965.html
insert() должен добавить один элемент,но он неправильно работает,где ошибка? #include "stdafx.h" #include <iostream> using namespace std; void Insert(const int index,const int value,int *...
C++ Запись и чтение с файла Здравствуйте,помогите пожалуйста ..есть две структуры, но каждая записывается и считывается с разных файлов, не посоветует как можно объединить,чтоб все записывалось и считывалось в один файл? ... http://www.cyberforum.ru/cpp-beginners/thread886947.html
Структуры (cведения об абонентах АТС: ФИО владельца телефона, год установки телефона, номер телефона, тип установки телефона, льгота) C++
Сведения об абонентах АТС. Структура должна содержать следующую информацию: фамилию, имя, отчество владельца телефона, год установки телефона, номер телефона, тип установки телефона (спаренный или...
C++ Упростить задачу (Таблица футбольного чемпионата задана квадратной матрицей - определить номера команд, прошедших чемпионат без поражений)
помогите пожалуйста с с++ здесь дана задача и весь код от нее но мне нужно только б) кому не сложно выделите именно нужное Таблица футбольного чемпионата задана квадратной матрицей порядка n,...
C++ Как глобальную переменную засунуть в структуру? http://www.cyberforum.ru/cpp-beginners/thread886913.html
#include<stdio.h> #include<malloc.h> #include<string.h> typedef struct Item { char *info; struct Item *next; }Item;
C++ Найти пару точек расстояние между которыми максимально(Исправить программу ) В трехмерном пространстве заданы координаты n точек составить программу определяющую пару точек расстояние между которыми максимально Сама программа есть но нужно ее изменить под dev-c++ и сделать... подробнее

Показать сообщение отдельно
vlad_light
4 / 4 / 0
Регистрация: 24.09.2012
Сообщений: 178

Быстро возвести в квадрат число заданной длины (<16 байт) - C++

01.06.2013, 01:37. Просмотров 891. Ответов 9
Метки (Все метки)

Нужно быстро возвести в квадрат число заданной длины (<16 байт). Лучшее, что я пока придумал -- это делить число на 2 маленьких по формуле: http://www.cyberforum.ru/cgi-bin/latex.cgi?(a+bx)^2=2(\frac 12a^2+abx+\frac 12b^2x^2), где умножение, деление на 2 -- просто сдвиг на 1. Я сначала делю, а потом умножаю, чтоб в месте http://www.cyberforum.ru/cgi-bin/latex.cgi?abx не было переполнения. Тут http://www.cyberforum.ru/cgi-bin/latex.cgi?x=2^{32}. После этого я числа http://www.cyberforum.ru/cgi-bin/latex.cgi?a^2, b^2 считаю по такой же формуле (рекуррентно), а числа http://www.cyberforum.ru/cgi-bin/latex.cgi?ab считаю просто в столбик. Для чисел больше 16 байт я использую алгоритм Карацубы. Есть ли более эффективный алгоритм возведения в квадрат?
Заранее спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru