Я знаю, что для этого можно просто умножить делимое на обратную дробь, созданную из самого примера на деление. Предположим, что мы хотим 25 разделить на 5. 25 * 5/25 даст нужный результ в виде простой дроби.

Но так как мне нужна десятичная дробь, то придется делить простую дробь, чтобы ее получить. Замкнутый круг. А я хочу как раз избежать операции деления. Существует ли достаточно простой и универсальный способ перевода простой дроби в десятичную без деления?

Или как вариант, какой может быть другой, достаточно простой и универсальный способ замены деления на умножение?

задан 28 Окт '12 19:21

изменен 29 Окт '12 19:15

Deleted's gravatar image


126

1

мы хотим 25 разделить на 5. 25 * 5/25

Эээ, тут два вопроса, что такое 5. 25 и эта звездочка?

(15 Мар 2:26) mihailm
10|600 символов нужно символов осталось
1

А зачем делить на 5/25? В данном случае это верно, но не всегда. Например, чтобы поделить 36 на 4, надо умножить 36 на 1/4 =9/36, а не на 4/36.
Чтобы поделить на 5, надо умножить на 1/5 = 0,2.

Поставьте задачу точнее: что делать, если деление не заканчивается за конечное число шагов? Взять приближенное значение (с какой точностью?) Найти период дроби?

Если Вы делите только на степени двойки и пятерки (чтобы деление закончилось), можно воспользоваться тем, что 1/2 = 0,5 и 1/5 = 0,2, т.е. заменить деление на 5 умножением на 2 с последующим передвижением десятичной запятой. Правда, последнее действие по сути тоже деление, но без него не обойтись.

ссылка

отвечен 28 Окт '12 22:15

Поставьте задачу точнее

Уточняю: найти относительно простой и универсальный способ выполнить деление без самого деления. Считайте, что деление теперь является тяжким преступлением, которое карается расстрелом.

(28 Окт '12 22:24) german398

Вы не поняли. Что и на что делится? С какой точностью? Например, только числа в пределах от 1 до 10000. Или любые числа. Приближенно? Или точно? В последнем случае нужно найти период дроби?

Что считать результатом деления 5/3? 1,66666... или 1,7 или 1,67, или 1,667, ... или 1,(6) ?

Если бы такой способ знали, его бы изучали в школе.

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

(28 Окт '12 22:29) DocentI
10|600 символов нужно символов осталось
0

Можно привести к знаменателю 10, 100, 1000... А затем написать как десятичную

ссылка

отвечен 15 Июн '15 13:41

10|600 символов нужно символов осталось
0

Если деление запрещено, то ответ можно найти методом подбора: 100 / 5 = ? Какое число нужно умножить на 5, что бы получилось 100? Методом подбора получаем 20. Можно воспользоваться "словарём" - заранее иметь словарь значений от деления единицы на разные числа, которые могут потребоваться, и затем умножать второе число на значение из словаря. Например, для 1/5 имеем без деления заранее известный (может быть методом подбора) ответ: 0.2 Тогда заменяем 100/5 = 100*0.2 = 20 Ну и, наконец, можно в некоторых случаях, выйти из положения с помощью хитрых правил. Например, деление на 10 не обязательно вычислять, нужно просто передвигать "запятую", разделяющую целую и дробную часть. При этом если в пустую дробь попадает 0, то её не записываем, так, 2230/10 = 223 без выполнения операции деления. Аналогично можно поступить с другими случаями: что бы 2230 разделить на 2, нужно сначала перевести это число в двоичную систему счисления, а затем перенести запятую и вернуть обратно в десятичную. Для данного случая 2230(10) = 100010110110(2) / 2(10) = 10001011011(2) = 1115(10). Ответ получен без операции деления - только перемещением запятой в нужной системе счисления.

ссылка

отвечен 1 Дек '16 10:47

Чтобы перевести число в двоичную (десятичную, …) систему счисления, нужно поделить его на два (десять, …). Причём не однажды. Я думаю, что исходная задача всё-таки нереалистична. Что значит: за деление — расстрел? Надо дойти с жалобой до ЕСПЧ! Наверняка была какая-то осмысленная задача, которая привела к этой бессмысленной формулировке…

(1 Дек '16 11:35) abracadabra2
10|600 символов нужно символов осталось
0

Читайте мою статью "Вместо деления умножение" в интернете

ссылка

отвечен 29 Янв '19 20:24

10|600 символов нужно символов осталось
0

Сам искал ответ на этот вопрос. Умножение - это последовательное сложение. Например 3*4 это 3+3+3+3. То есть технически умножение легко реализуется циклом с постоянным прибавлением одного и того же числа. Нам известно число 3 и сколько итераций мы должны выполнить - 4.

Получается деление - это обратный процесс, который решается через вычитание. Чем мы в школе и занимались, решая в столбик. Сколько раз можно вычесть одно число из другого? Чтобы разделить 12 на 3, надо вычесть из 12 три ровно четыре раза. То есть по сути мы ищем число итераций.

Преобразовать a/(b+c) в какой-то вариант без знаменателя не выйдет, поэтому и решить деление через умножение не получится.

ссылка

отвечен 14 Мар 21:16

1

Вопрос очень давно ставился, и сформулирован был "коряво", но суть его ясна. Я бы добавил к сказанному следующее. Разделить число b на число a означает решить уравнение ax=b. Числа a, b можно считать натуральными, хотя это не важно. Частное может находиться точно или приближённо.

Такие уравнения, как и почти любые другие типа x^2=A, x^3=A, ... решаются методом половинного деления. Корень уравнения ax=b принадлежит отрезку [1,b]. Делим отрезок пополам, берём его середину, и далее выбираем одну из половинок отрезка. Это достаточно универсальный способ.

(14 Мар 21:38) falcao
10|600 символов нужно символов осталось
-1

Будем говорить честно, в школах у нас паршиво учат: 49 / 7 = 49 * (7 ^ -1)

ссылка

отвечен 24 Июл '14 4:51

изменен 24 Июл '14 4:51

10|600 символов нужно символов осталось
Ваш ответ

Если вы не нашли ответ, задайте вопрос.

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

Математика - это совместно редактируемый форум вопросов и ответов для начинающих и опытных математиков, с особенным акцентом на компьютерные науки.

Присоединяйтесь!

отмечен:

×33
×24

задан
28 Окт '12 19:21

показан
26716 раз

обновлен
15 Мар 2:26

Отслеживать вопрос

по почте:

Зарегистрировавшись, вы сможете подписаться на любые обновления

по RSS:

Ответы

Ответы и Комментарии

Дизайн сайта/логотип © «Сеть Знаний». Контент распространяется под лицензией cc by-sa 3.0 с обязательным указанием авторства.
Рейтинг@Mail.ru