LINUX.ORG.RU

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

1/2 = 1*2^{-1}=1*2=2. но зачем ты это спросил?

потому-что половина вычета == половина вычета. Если на часах 12 часовых делений, то 6/2==3часа. Но никак не 9. Несмотря на то, что 9+9=6mod12.

фейл за фейлом. К 2 вообще не существует обратного в данном случае.

Кстати, я таки немного погорячился. поле Галуа называют просто конечным полем, а не кольцом вычетов. но сути это не меняет.

В вычетах вообще умножение не определено. Нельзя писать 9*2mod12, надо писать (9+9)mod12.

умножение в вычетах как раз определено. Как коммутативная операция в конечном поле. можно просто писать 9*2. если конечно модуль вычета допускает трактование кольца как поля.

dikiy ★★☆☆☆
()
Последнее исправление: dikiy (всего исправлений: 2)
Ответ на: комментарий от emulek

Покажи функцию.

bool isPowerOf2( int x )
{
    return (x != 0) && (((x-1) & x) == 0)
}

memchr уже запретили?

memchr - тоже не дар божий, его люди писали, такие же как и я. И внутрянняя реализация у него, кстати, тоже иногда достаточно интересная.

segfault ★★★★★
()
Последнее исправление: segfault (всего исправлений: 1)
Ответ на: комментарий от emulek

у тебя очень упрощённый подход

Ага. Прикинь, я не фундаментальный труд пишу, а пощу на форуме. Пусть даже этот форум - ЛОР.

в твоём ПТУ её ещё не проходили

В моём ПТУ вообще ничего не проходили из того что мы тут обсуждаем.

Программирование — тоже подмножество.

Разве что-то что я писал противоречит этому утверждению? Напротив, мои оппненты возражали против того что программирование подмножество математики. Точнее что программирования это прикладная часть некоторого подмножества математики, а точнее некоторых разделов дискретки, как то, теория множеств и всё что из неё вытекает так или иначе, типа теории графов, предикатов, теорката и так далее. В чем ты тут конкретно со мной не согласен?

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

рисуем любой треугольник на поверхности Земли.

Ты же сам понимаешь что это не треугольник, а поверхность земли не плоскость. Ты еще Лобачевского вспомни...

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

разве в условии теоремы был радиус кривизны пространства? Что-то я не помню такого...

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

Suntechnic ★★★★★
()
Последнее исправление: Suntechnic (всего исправлений: 1)
Ответ на: комментарий от emulek

А вот комп — как идиот считает, и не видит.

Комп считает как ему сказали. И кто тут идиот нужно долго разбираться.

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

Кстати, я таки немного погорячился. поле Галуа называют просто конечным полем, а не кольцом вычетов. но сути это не меняет.

так вот вычеты никакого отношения к данному примеру не имеют. Да и никакого «кольца вычетов» не существует. В кольце должно быть определено умножение, но для вычетов оно противоречиво. Например по модулю 6: 2*3 == 3*4 == 0. Откуда имеем 0/3 == 2 и одновременно 4. А всё потому, что кольцо можно составить лишь над полем Галуа, а поле Галуа определено только для простых чисел и их степеней. В отличие от твоих вычетов.

умножение в вычетах как раз определено.

учи матчасть.

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

return (x != 0) && (((x-1) & x) == 0)

а при чём тут теория чисел? Все знают, что скажем 1000000-1 == 999999, что тут удивительного? В двоичной системе тоже самое, только там получается 111111...

memchr - тоже не дар божий, его люди писали, такие же как и я. И внутрянняя реализация у него, кстати, тоже иногда достаточно интересная.

memchr писали те люди, которые знают, КАКОЙ ИМЕННО работает CPU. А программист этого не знает. Потому-что его код должен работать хорошо где угодно. Потому, твои игры с битами == быдлокод, который работает хорошо только на твоём локалхосте.

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

Разве что-то что я писал противоречит этому утверждению? Напротив, мои оппненты возражали против того что программирование подмножество математики. Точнее что программирования это прикладная часть некоторого подмножества математики, а точнее некоторых разделов дискретки, как то, теория множеств и всё что из неё вытекает так или иначе, типа теории графов, предикатов, теорката и так далее. В чем ты тут конкретно со мной не согласен?

с этим в целом согласен.

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

Ты же сам понимаешь что это не треугольник, а поверхность земли не плоскость.

вот в отличие от математики, в реальных задачах программирования сплошь и рядом получается так, что плоскость ВНЕЗАПНО оказывается кривой и косой. Очень редко бывает, что математическая модель неправильно реализована, за то очень часто бывает, что модель перестаёт подходить к задаче.

В этом отличие математики от программирования.

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

Ты наверное забыл про аксиому о параллельных прямых

не забыл. Но в момент постановки ТЗ аксиома была очевидна — никто и не думал, что придётся считать такие большие треугольники. Пришлось...

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

Комп считает как ему сказали. И кто тут идиот нужно долго разбираться.

дочитай до конца. Я повторю:

Задача программиста — заставить комп смотреть, что он там считает. Если программист не идиот.

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

А кто тебе запрещает?

на ноль делить мне запрещает правило умножения на ноль. Т.к. любой число умноженное на ноль, даёт ноль, то из этого следует, что обратной операции попросту не существует. Ну как не существует _цифры_, которая была-бы на 1 больше 9, и при этом была-бы десятичной цифрой. Нету такой. После числа 9, идёт число 10. Потому-что в десятичной СС десять цифр. Потому нет одиннадцатой. Её никто не запрещал. Её просто не было. Как и не было деления на ноль.

Если для тебя существует, то у тебя проблемы с логическим мышлением. Такое бывает например при шизофрении. А возможно ты просто принимал вещества. Я не знаю.

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

на ноль делить мне запрещает правило умножения на ноль. Т.к. любой число умноженное на ноль, даёт ноль, то из этого следует, что обратной операции попросту не существует. Ну как не существует _цифры_, которая была-бы на 1 больше 9, и при этом была-бы десятичной цифрой. Нету такой. После числа 9, идёт число 10. Потому-что в десятичной СС десять цифр. Потому нет одиннадцатой. Её никто не запрещал. Её просто не было. Как и не было деления на ноль.

Доказательство Математика с большой буквы. Ретируюсь.:}

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

Ты еще скажи, что из отрицательных чисел корень нельзя извлекать

да, нельзя во множестве действительных чисел. Результат не определён, как и результат деления на ноль.

Однако, множество действительных чисел можно дополнить. Тогда можно будет извлекать корень из отрицательных чисел. На практике это часто применяется. В той же электротехнике, для токов, которые не переносят энергию. Это возможно. Например я могу у тебя взять 100р, и сразу отдать 100р. Вроде как и деньги движутся, а ничего в итоге не меняется. Но если я рубль потеряю, то будет ДЕЙСТВИТЕЛЬНОЕ движение средств от тебя ко мне в размере 1 рубль.

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

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

Результат деления на ноль во множестве вещественных чисел определен — бесконечность. Только 0/0 как-то иначе работает, но я уже не помню как. Математика на втором курсе закончилась :)

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

из отрицательных чисел корень нельзя извлекать

Только корень с четным показателем.

корень с нечётным извлекать можно, но только один из многих. Т.е. вычисляя корень третей степени, ты должен вообще говоря получить 3 результата, а получаешь всего один. А есть ещё два. На 120 градусах, и на -120 градусах от этого.

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

Результат деления на ноль во множестве вещественных чисел определен — бесконечность.

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

Только 0/0 как-то иначе работает, но я уже не помню как.

если ты символом «0» обозначаешь «бесконечно малую», то «0/0» зависит от порядка малости числителя и знаменателя. Если порядок малости больше, получается бесконечность, если меньше, то «ноль», а если равны — всё что угодно(может вообще ничего не получится)

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

Вообще-то делить на ноль никто не запрещает, как и например проворачивать фарш назад. Упражняйся если хочешь. Просто на результат не рассчитывай. Твое деление на ноль ничем не отличает например от попыток из md5 восстановить файл по которой он посчитан. Найдутся желающие попробовать?

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

Да и никакого «кольца вычетов» не существует
2*3 == 3*4 == 0. Откуда имеем 0/3 == 2 и одновременно 4.
кольцо можно составить лишь над полем Галуа

Что ты несешь!? Ты же абсолютно не разбираешься в предмете, а рассуждаешь с видом знатока. Слышал звон, что называется. Странно, что тебя вообще еще кто-то слушает.

учи матчасть.

Как там этот синдром называется, когда некомпетентный считает себя гуру?

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

Странно, что тебя вообще еще кто-то слушает.

Если только на посмеяться.

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

Просто на результат не рассчитывай.

я имел ввиду «нельзя получить результат деления на ноль».

Твое деление на ноль ничем не отличает например от попыток из md5 восстановить файл по которой он посчитан. Найдутся желающие попробовать?

отличается. Имеется всего 2**(m-128) вариантов обращённой md5, если длинна файла известна, и равна m бит. Например если в файле 129 бит, то существует всего 2 файла с такой md5.

«результатов» деления на ноль МНОГО, это ВСЕ ЧИСЛА СРАЗУ.

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

Да и никакого «кольца вычетов» не существует

2*3 == 3*4 == 0. Откуда имеем 0/3 == 2 и одновременно 4. кольцо можно составить лишь над полем Галуа

Что ты несешь!? Ты же абсолютно не разбираешься в предмете, а рассуждаешь с видом знатока. Слышал звон, что называется. Странно, что тебя вообще еще кто-то слушает.

по теме есть что сказать? Нет? Свободен.

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

Посмотри хотя бы в википедии, что такое кольцо. Там нельзя делить.

по теме есть что сказать? Нет? Свободен.

По какой теме,? Когда человек говорит, что кольца вычетов не существует, он сразу становится объектом интереса определенных людей в белых халатах. И тут много тем может возникнуть.

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

если длинна файла известна

А разве она известна? Так что вариантов очень много. Я не силен в таких вещах и не знаю как показать, что нет таких вариантов md5 для которых количество исходных вариантов кодируемых данных конечно. Но вполне очевидно, что как минимум для одного варианта md5 мощность множества исходных вариантов не меньше чем алеф-нуль. Да, это все равно меньше чем количество вариантов деления на ноль, так как там очевиден континуум, но на практике это все-равно одно и то же.

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

Посмотри хотя бы в википедии, что такое кольцо. Там нельзя делить.

Выбрось свою википедию - не знал что она так низко пала. Там можно делить. Правда не всегда, не на всё и не на всём кольце, но так чтобы вообще нельзя делить - это бред.

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

чтобы вообще нельзя делить - это бред

Где я сказал, что вообще делить нельзя? Там нет операции деления, точка. То, что в некоторых случаях можно умножать на обратный, и так понятно.

Выбрось свою википедию

Вообще-то википедия довольно неплохой справочник по определениям.

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

Кстати, я таки немного погорячился. поле Галуа называют просто конечным полем, а не кольцом вычетов. но сути это не меняет.

так вот вычеты никакого отношения к данному примеру не имеют. Да и никакого «кольца вычетов» не существует. В кольце должно быть определено умножение, но для вычетов оно противоречиво. Например по модулю 6: 2*3 == 3*4 == 0.

это не противоречиво. Это значит, что данное кольцо не является полем, вот и все. Ну то есть не является группой по второй операции (по умножению).

Откуда имеем 0/3 == 2 и одновременно 4. А всё потому, что кольцо можно составить лишь над полем Галуа,

любое поле является кольцом. учи матчасть, лол.

а поле Галуа определено только для простых чисел и их степеней. В отличие от твоих вычетов.

поле - это поле. Оно может быть определено для чего угодно.

умножение в вычетах как раз определено.

учи матчасть.

да это как раз тебе подучить надо.

и прекрати называть конечное поле полем Галуа. Тебя могут не понять.

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

Да и никакого «кольца вычетов» не существует

2*3 == 3*4 == 0. Откуда имеем 0/3 == 2 и одновременно 4. кольцо можно составить лишь над полем Галуа

деление - это умножение на обратное. А обратного к 2 не существует. вот и все. поэтому F_12 не поле.

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

memchr писали те люди, которые знают, КАКОЙ ИМЕННО работает CPU. А программист этого не знает.

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

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