LINUX.ORG.RU
ФорумTalks

Как правильно записывать умножение в форме сложения или всё равно?

 , ,


0

1

https://ru.wikipedia.org/wiki/Умножение 3*4=3+3+3+3

https://en.wikipedia.org/wiki/Multiplication 3*4=4+4+4

Что правильно, есть ли этому вменяемая аргументация? Да я знаю, что от перемены мест не меняется. Я всегда понимал это как второй вариант, и первый если надо аргументируя коммутативностью. Жил во лжи?

Ответ на: комментарий от Xenius

Ну там скаляр, стоит впереди и вектор берётся скаляр раз. То есть я правильно думал. Я просто не знаю, что на что распространяется и почему.

PI_RATE
() автор топика

Очевидно же!

Чем меньше операций - тем правильнее 3*4=4+4+4

Хотя по ходу, это тема про «индусский» код, потому правильнее больше операций 3*4=3+3+3+3 :)

Serg_HIS
()

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

sehellion ★★★★★
()
Ответ на: комментарий от sudopacman

правильный ответ тут не предлагают в принципе - дают выбор из двух не правильных.

Правильный был бы 3*4=12, но его не спрашивают :)

Serg_HIS
()
Ответ на: комментарий от Serg_HIS

Ну вообще, тут не про ответ. Про

Чем меньше операций - тем правильнее 3*4=4+4+4

У тебя как минимум одна уйдёт на сравнение и вообще тут не про репрезентацию речь идёт.

PI_RATE
() автор топика

К стати правтически во всех современных процессорах при умножении ALU выбирает большее число для сложения и складывает его меньшее количество раз (оптимизация - мать её)

Serg_HIS
()
Ответ на: комментарий от PI_RATE

У тебя как минимум одна уйдёт на сравнение

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

И да я вспомнил там даже не по тому какое число больше, а в каком меньше единиц.

например 127 - это всего 1 единица, а 7 - это 3 единицы

Serg_HIS
()
Ответ на: комментарий от Serg_HIS

сдвиг в совеменных процах делается на любое количество бит за 1 такт потому сдвинуть на 8 бит 7 гараздо выгоднее чем сложить 128 со сдвигом 3 раза.

Serg_HIS
()
Ответ на: комментарий от Serg_HIS

То есть ты хочешь сказать мне, что когда я делаю 456 * 789, то современные ALU четыреста пятьдесят шесть раз подряд прибавляют семьсот восемьдесят девять, а не вычисляет частичные произведения и всё такое?

ilammy ★★★
()

3*4 = 4 + 4 + 4

and said as «3 times 4»

И наоборот. Слева направо, т.е. «три раза по четыре». Как-то проще воспринимается что-ли, если говорить наоборот, то получится справа налево, уже не комильфо. Хотя у нас первое число, вроде как множимое, а оно по Ушакову

МНО́ЖИМОЕ, множимого, ср. (мат.). В действия умножения - число, которое помножается на множитель.

Неоднозначно вообщем-то, но лично по мне, первый вариант чтения слева направо предпочтительнее.

znenyegvkby
()
Ответ на: комментарий от ilammy

всё что я хотел сказать про умножение в процах уже сказал.

гуглите как работает умножение в двоичной системе счислений.

Serg_HIS
()
Ответ на: комментарий от Serg_HIS

Матан при том что пятница. Вопрос как отображать умножение канонично и православно в форме суммы. Да же не «как», а «почему так».

PI_RATE
() автор топика
Ответ на: комментарий от PI_RATE

Да же не «как», а «почему так».

Патамучта меньше места занимает :)

Serg_HIS
()
Ответ на: комментарий от ilammy

Хотя всё гараздо хуже. Умножение работает одинаково во всех системах счисления :)

В столбик в школе учили считать? ;)

В двоичной - тоже самое.

Serg_HIS
()
Ответ на: комментарий от Serg_HIS

Частичные произведения, это для перемножения больших чисел. Если не ошибаюсь. Повышает эффективность с 3 степени до 2.69 .

PI_RATE
() автор топика
Ответ на: комментарий от PI_RATE

Ага... почитал. Думаю процу, числа которые влазят в регистры, менее накладно посчитать в столбик :-)

Serg_HIS
()
Ответ на: комментарий от PI_RATE

ещё там пишется про какие-то приближённые ответы... с точностью что-то не то вроде.

Есть предположение, что в столбик всёравно на компе проще считать даже числа в несколько сотен килобайт.

Надо поизучать.

Serg_HIS
()

можно двояко трактовать запись 3*4: «3» четыре раза или три раза по «4»

grem ★★★★★
()
Ответ на: комментарий от PI_RATE

в описании написано, что при разбиении на большее количество групп типа повышается какая-то точность. пока полностью не въехал.

Мало выпил... :)

Serg_HIS
()
Ответ на: комментарий от PI_RATE

c n^3 до n^2.69 сползает время умножения

Прикольно. Это для 1000 бит примерно в 10 раз быстрее или n - это десятичных знаков?

Serg_HIS
()
Ответ на: комментарий от PI_RATE

В жабе тоже есть стандартная либа для работы с большими числами - но не факт что она по этому алгоритму работает.

Serg_HIS
()

Что правильно, есть ли этому вменяемая аргументация?

Может лингвистика?

По русски 3 (объект) на 4-тыре (действие)

по английски 3 times 4 (три раза четверка)

ival ★★
()
Ответ на: комментарий от ival

По русски 3 (объект, типа именительный падеж) на 4-тыре (с предлогом, типа винительный)

по английски 3 times 4 (три раза четверка). В ангийском всякие признаки ставятся перед объектом.

ival ★★
()

// Треднечитай

От языка ж зависит, по русски — «три на четыре», «три четыре раза» ⇒ 3 + 3 + 3 + 3. По-английски — «three times four», «трижды четыре» ⇒ 4 + 4 + 4. Не удивлюсь, если в японском каком-нибудь вообще будет упоминание половины восьмого тентакля и выражение (3 + 3 + 3 + 3 + 3 + 3 + 3 + 3) / 2.

byss
()
Ответ на: комментарий от Serg_HIS

К стати правтически во всех современных процессорах при умножении ALU выбирает большее число для сложения и складывает его меньшее количество раз (оптимизация - мать её)

По твоему ALU перемножают числа сложением?! facepalm.jpg

anonymous_incognito ★★★★★
()
Ответ на: комментарий от sehellion

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

Некоторое время назад в интернетах бурно обсуждалась плохая оценка, поставленная учительницей в младшем классе за «не тот» порядок умножения. Как ни странно, некоторый смысл тут есть в том, что при разной записи получается разный физический смысл.

Например, три пакета молока по 50 рублей в сумме стоят 50 руб. * 3 пакета = сумма стоимости пакетов (50 + 50 + 50) = 150 руб. и логически это совсем не тоже самое, что 3 просуммировать 50 раз. Хотя на уровне математической абстракции в данной ситуации умножение и сложение коммутативны и порядок вычисления значения не имеет.

anonymous_incognito ★★★★★
()
Ответ на: комментарий от anonymous_incognito

плохая оценка, поставленная учительницей в младшем классе за «не тот» порядок умножения

бить ее мокрым веником

sehellion ★★★★★
()
Ответ на: комментарий от anonymous_incognito

поставленная учительницей в младшем классе за «не тот» порядок умножения.

Вбиорекатор.

и логически это совсем не тоже самое, что 3 просуммировать 50 раз.

Но никто не мешает представить нечто вроде «50 раз по 3 пакеторубля».

Хотя на уровне математической абстракции в данной ситуации умножение и сложение коммутативны и порядок вычисления значения не имеет.

Вот поэтому математика и нужна.

border-radius
()
Ответ на: комментарий от ival

На самом деле это three (times four), по-нашему четырежды три. four times это только когда ты говоришь о нечеслительном после.

I have been to Nevada four times.

I want a building this high times four. Four ... times three.

PI_RATE
() автор топика
Ответ на: комментарий от anonymous_incognito

По твоему ALU перемножают числа сложением?! facepalm.jpg

А ну удиви здесь всех и расскажи, какое действие вместо сложения применяется в процессорах при умножении. :-)

Serg_HIS
()
Ответ на: комментарий от anonymous_incognito

Как ни странно, некоторый смысл тут есть в том, что при разной записи получается разный физический смысл.

Вот мне тоже в этом плане интересно.

PI_RATE
() автор топика

Если твой «ламповый» компьютер предназначен для сложения чисел < 4, то в 1 варианте для входного регистра и АЛУ достаточно 2-х бит, что экономичнее (радиоламп нужно меньше) :)

quickquest ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.