Рубрика «умножение»

Как 23-летний студент опроверг давнюю гипотезу об одной из простейших математических операций

Читать полностью »

В этом тексте рассматривается метод преобразование двоичного числа в строку без использования операций деления и остатка.

Обычно для преобразования целого числа в строку используется метод последовательного деления данного числа на основание требуемой системы исчисления и сбор остатков, которые соответствуют цифрам в десятичной системе.

char* utoa_div(uint32_t value, char* buffer) {

	size_t index = 0;
	
	// преобразование в строку
	do {
		buffer[index++] = (value % 10) + '0'; 
		value /= 10;
	}while (value > 0);

	buffer[index] = '';
	
	// разворачивание строки
	int start = 0;
	int end = index - 1;
	while (start < end) {
		char temp = buffer[start];
		buffer[start] = buffer[end];
		buffer[end] = temp;
		start++;
		end--;
	}
	return buffer;
}

Читать полностью »

Обзор интересных особенностей переворачивающихся при умножении чисел - 1

В продолжение статьи Переворачивающиеся при умножении числа, которую я написал в 2024 году, представляю небольшую статью-обновление.

Читать полностью »

Вот как его попробовать

Американцы: русский способ умножения намного круче нашего - 1

Математические гении из канала NumberphileЧитать полностью »

Код фильтра и теста

Вначале представим то, что можно быстро скопировать и вставить. Структура и функция расчёта одной итерации фильтра:

typedef struct FirFrac15 {
  int16_t x, x_1, y, y_1;
} FirFrac15;

#define N 3 //задание полосы пропускания (целое число)
void FirFrac15Calc(FirFrac15 *Filter) {
  register int32_t Acc;
  register int16_t xAcc = Filter->x + Filter->x_1;
  Acc = (((int32_t)Filter->y_1 << (N + 1)) - ((int32_t)Filter->y_1 << 1) + (int32_t)xAcc) >> (N + 1);
  Filter->y = (int16_t)Acc;
  Filter->x_1 = Filter->x; // входной отсчёт и запаздывающий на один
  Filter->y_1 = Filter->y; // выходной отсчёт и запаздывающий на один
}

Скетч для тестирования:

Читать полностью »

Практика показывает, что многие лучше понимают математические концепции криптографии на максимально конкретных примерах, приводимых в числах непосредственно. Цель данной статьи - выстроить таким способом некоторую «интуицию» для одной из базовых в современной криптографии операций - сложения точек эллиптической кривой. Мы посмотрим, что за арифметика стоит за алгоритмическими, компьютерными реализациями этой операции.

Читать полностью »

Переворачивающиеся при умножении числа - 1

Здравствуйте!

Расскажу о серии задач, которая случайно возникла в процессе решения другой задачи. Мне на глаза попалось равенство:

81 * 27 = 2187

– Интересно, – подумал я. – А бывают ли ещё такие числа, чтобы цифры слева и справа повторялись?

Всего нашлось 7 двузначных пар, включая одну с теми же цифрами:

15 * 93 = 1395
21 * 60 = 1260
21 * 87 = 1827
27 * 81 = 2187
30 * 51 = 1530
Читать полностью »

Начиная с процессора 80286 компания Intel поддерживала полную совместимость «снизу-вверх» в системе команд. То есть если какая-то из команд процессора дает такой-то результат на 8086, то и на более поздних процессорах результат будет точно таким же (сейчас не будем рассматривать ошибки типа неправильного деления в Pentium I).

Читать полностью »

Разбивая крупные числа на мелкие, исследователи превысили фундаментальное математическое ограничение скорости

Математики обнаружили идеальный способ перемножения чисел - 1

Четыре тысячи лет назад жители Вавилонии изобрели умножение. А в марте этого года математики усовершенствовали его.

18 марта 2019 два исследователя описали самый быстрый из известных методов перемножения двух очень больших чисел. Работа отмечает кульминацию давнишнего поиска наиболее эффективной процедуры выполнения одной из базовых операций математики.

«Все думают, что метод умножения, который они учили в школе, наилучший, но на самом деле в этой области идут активные исследования», — говорит Йорис ван дер Хувен, математик из Французского национального центра научных исследований, один из соавторов работы.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js