LINUX.ORG.RU

Метапрограммирование - проблемы и пути их решения.

 , ,


12

6

Пичал я тут на днях токенайзел для C++-кода, но всё это меня добило я решил поделится.

Проблема - мне надо было вычислять сложные значения для таблицы в компилтайме, да можно на сишке сделать через жопу(енумы) и макросы, но мне стало лень. Да можно сгинерить, но мне тоже лень.

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

Чтобы не быть голословным пишем что-то типа

constexpr uint64_t f(uint64_t a, uint64_t b) {
  return a + b; 
}
Всё ок, но пишем что-то сложнее, аля:

uint64_t m[] = {0, 1, 2, 3, 4};
constexpr uint64_t f(uint64_t a, uint64_t b) {
  return m[a] + m[b]; 
}

Бида( или это моё неосиляторство плюсов?), дак зачем они запилили эту фичу, если она может лишь галимую примитивщину? Шаблоны ещё ущербней. В чем приемущество? Зачем?

А теперь у меня вопрос к вам, уважаемы батьки и отцы - что мне делать? Я хочу запонять массивы написав генератор, причем и в компилтайме тоже. Я хочу юзать libc, я хочу всё, а у меня нет ничего, почему?

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

У меня есть 3 пути: терпеть, пилить свой язык и конпелятор самому( что долго и нудно) и ваш совет.

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

Да Вы ж весь тред криком кричали, что на это у Вас уйдет макс 15 мнут!!!111

Таки попытайтесь. Инет большой, есть объяснения и на пальцах. Вона PolarFox выше дал определение без единой формулы.

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

15минут у меня займёт не это, ну ладно. Сейчас ненадо придераться ко мне - мы пытаемся понять друг друга и забыть о треде.

Да я прочитал весь инет - я всю ночь гуглил про вашу производную и дфу, и вчера гуглил и щас гуглю, но не фортануло.

Моя голова работает так - если я не понимаю в чем смысл - я не запоминаю этого.

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

Ну предположим я нарисовал эту байду между точкой и нулём - как мне вычислить её угол?

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

Почему я такой тупой?, я вот пытаюсь понять какой профит нам принесёт этот угол, его тангенс.

Я пролистал пару учебников, вики - они там говорят про это, но кроме того, что написал выше polarfox и этой картинки - там ничего небыло.

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

а больше ничего и не надо. Только ноль тут непричем. Теперь надо посмотреть что есть касательная и что есть тангенс.

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

тангенс

угол

Это из геометрии в общем-то. Куда уж ближе к реальному миру?

Примеры применения производной? Если возьмём функцию зависимости координаты от времени, то первой производной будет скорость, второй ускорение.

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

А можно подробней? Геометрию я знаю на уровне - это круг, а это квадрат.

Скорость чего и ускорение чего?

Вот у нас есть t & x, как записать это в дфу?

1 2 3 4 5 6// это значение х.

Ну скорость у нас постоянна, находится x+1 - x;

Ускорение я не знаю - тут его нет, если оно есть - вычисляется не сложнее скорости.

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

Ну что есть касательная я понял. Что есть тангенс не очень.

Ну мы не может провести линию откуда угодно - нам нужна вторая точка.

На картиночке нарисованно, что она типа в х=0/

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

Ну скорость у нас постоянна, находится x+1 - x;

Забыл поделить на время между соседними измерениями. А если это время устремить к нулю (соответственно эти измерения будут проводиться очень часто), то ты получишь определение производной как оно даётся в учебниках по матану.

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

Ну мы не может провести линию откуда угодно - нам нужна вторая точка.

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

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

Я вроде думал, что сделал приписку, что в попугаях, а не сделал.

Т.е. это максимально приблеженное к идеальному значение функции?

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

Ну это надо бесконечно малую линию, и то я себе не представляю возможно ли, что она всегда будет одна для линии, которая не прямая.

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

Ну мы не может провести линию откуда угодно - нам нужна вторая точка.

Или одна точка и направление. Направление задается направлением графика функции в данной точке.

На картиночке нарисованно, что она типа в х=0/

Это совершенно необязательно.

http://ru.wikipedia.org/wiki/%D2%F0%E8%E3%EE%ED%EE%EC%E5%F2%F0%E8%F7%E5%F1%EA... - см. рис. 3.

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

Насчет попугаев - мерять можно в чем угодно, но длина всегда измеряется в единицах длины/расстояния (длина попугая, длина спички, длина клеверного листа, длина ногтя), время всегда измеряется в интервалах времени (время одного сердцебиения, период обращения марса вокруг солнца и пр), а скорость всегда измеряется в единицах длины/единицу времени.

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

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

Это совершенно необязательно.

Я прозрел и понял тригонофункции.

Производная - это значение функции с предельно высокой дискретезацией?

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

Я это понимаю. Но это уже детали. Попугаи, они и в африке попугаи, а какие это попугаи - это понятно из контекста.

Я это тоже понимаю.

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

Правда я один фиг нихрена не понял.

         2
d u     d u
--- = D ----
d t        2
        d t

Вот как понять эту надпись? это типа отношение u к т равно чему-то. Ну д понятно, а что там за двоечки?

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

это типа отношение u к т равно чему-то

нет

а что там за двоечки?

это вторая производная (дэ квадрат у по дэ x квадрат). У меня там права и правда t что ли стояло??? Блин, значит описался;-(

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

Вот оно сложно с царями, которые нихрена не понимают.

нет

А что? Там в википедии есть об этом синтаксисе лейбница, но я так и не осилил понять.

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

Куда уж ближе к реальному миру?

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

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

Это производная u по t. Такая запись означает отношение дифференциалов (приращений), что с-но и есть производная. Но вообще то в у-е теплопроводности речь идет о частных производных, это чуть более специфичная вещь.

Давайте сначала с обычной производной разберемся.

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

Ну как я понял касательная там С, а пачему ваша картинка темнит и там угол между какой-то чёрточной линией и чёрточной линией, а не С.

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

Задорнов когда-то МАИ закончил, он технарь. Может, и помнит еще что-нибудь.
Да и природа его нынешнего безумия вполне характерна для технарей. кстати.

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

Ну горизонтальная черточная линия - от нее с-но угол всегда и меряют. А вот наклонная черточная линия AB стремится к С при Delta x стремящейся к нулю. С-но это определение производной через предел.

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

Производная в точке А. Точка B - это значение в точке x+Delta x. Дальше Delta x устремляем к нулю, и опа!

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

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

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

Я понял, то вот википедии угол взят уже от устремлённой к нулю, а на твоей картинке нет?

Потом, как точно посчитать угол между митическим устремлением?

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

википедии угол взят уже от устремлённой к нулю, а на твоей картинке нет?

И в вики так же: http://upload.wikimedia.org/wikipedia/commons/thumb/e/ee/Derivative_of_a_func...

Потом, как точно посчитать угол между митическим устремлением?

Если ф-я задана аналитически есть правила дифференцирования. Если численно - точно никак, только приближенно в конечных разностях.

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

На твоей картинке устремление к нулю - это ц, и от него должен был браться угол, на вики это самая светлая полоска. Самая тёмная устремлённая, кторая на твоей картинки есть ц.

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

Т.е. производная это невыводимая числинными методами абстрактная штука? Которая типа показывает нам изгиб твоей функции после искомой точки.

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

Забейте пока на устремление. Что такое касательная же понятно? Производная это тангенс угла касательной. Вопрос, что она характеризует?

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

Почти правильно. Темп (скорость) роста/убывания функции в данной точке.

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

Все таки производная не угол а ТАНГЕНС угла. Это существенно. Таки в примере который я давал чему производная равна?

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

Это слишком сложно для меня - у меня никакое пространственное мышление и проекции - я даже предположить не могу. Ещё твой кривой график с прямоугольниками. Ну на глазок в районе 30градусов.

Я понимаю, что там тангенс - просто это уже детали. Это просто перевод, не относящийся к вычислениям.

tan(30*pi/180) =0.57735026919

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

Там масштабы по осям разные. Тангенс это отношение катетов треугольника. Треугольник построить могете?

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

Линейку приложите к экрану и постройте прямойгольный треугольник (в уме). ЧТо бы у него одна сторона скажем была единица.

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

Ну да, я пока найшел линейку. Всё это слишком сложно для меня.

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

Мерять надо не линейкой а глазами. Линейка только что бы касательную проще было провести. Линейки там на графике по осям уже есть. Пока ответ неправильный.

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

Ну я взял примертно отпопа нарисовал касательную до краёв - она где-то в районе однёрки не по иксу. И до предела провёл непоиксу от х1 до х2. Ну длинна у неё тоже 1. И поделил смотрящую вверх часть 90крадусного угла на его горизонтальну часть - получилось 0. Ну авосьт ам будет не 0, а почти 0. Ну в общем да за почти нулевое время она возростёт почти на ноль, что какбэ логично.

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

Так дело не пойдет. Я там же провел зелененьким касательную. Какой тангенс угла ее наклона?

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

Где? У меня только ваш первый крассный график и больше ничего. На котором я нарисовал свою жёлтенькую касательную стремящуюся к нулю.

Знаит я что-то упустил.

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

Ну у вас тоже самое, что и у меня. Судя по линейке ваш треугольник - это f;x = { O = 0;1, B = 1;2, A = 0;2 }; Т.е.

Тангенсом угла \alpha называется отношение \frac{AB}{OA} (отношение противолежащего катета к прилежащему).

Длинна АВ = 1, ОА = 1, а 1/1 = 0

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

А ну да, 1. Ну я уже давал результат 1 - вы его назвали не правильным, поэтому что-то да я зафейлил. Но заодно научусь делить.

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

Да, но 1 от Вас тогда как то невнятно прозвучало. Чудненько. А чему равняется производная в точке x=0.5?

Ну как, Вы еще ощущаете себя царем и «вот это вот все»?

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

И по той же ссылке лежит новый график. Опять производную в точке x=1, если Вас не затруднит.

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

Если я ничего не напутал, то 2

Чуть-чуть напутали.

А 0.5 похоже равен днищу.

Если Вы имели ввиду ноль, то да, это правильно. Но я бы очень попросил изъяснятся все таки по русски. Нет такого числа как «днище».

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

Чуть-чуть напутали.

А в чем конкретно? минус или ещё что-то? Как различаются производные нисходящих и восходящих графиков?

Если Вы имели ввиду ноль, то да, это правильно. Но я бы очень попросил изъяснятся все таки по русски. Нет такого числа как «днище».

Сленг царей - ничего не поделаешь, но я пытаюсь говорить на языке смертных. Да, ноль.

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

я пытаюсь говорить на языке смертных.

Думаю, что весь ЛОР гордится Вашими царскими усилиями!

Как различаются производные нисходящих и восходящих графиков?

Да, минусом. Delta f же отрицательный для нисходящего графика.

Ок. Допустим, f измеряется в попугаях, а х в зубочистках. В каких единицах измеряется производная?

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

просто в числах (бeзразмерная величина) было бы если бы и f и x было в попугаях. А так да, в попугаях на зубочистку.

Для дифференицрования (расчета производных) существуют простые правила, они приведены в википедии. Например что d sin(x)/d x = cos(x)

Допустим мы знаем зависимоть координаты от времени x(t). Скорость по определению v(t)=d x/d t (темп изменения координаты), ускорение a(t) = d v/d t = d^2 x / d t^2 (темп изменения скорости, или вторая производная от коррдинаты по времени). Найдите v(t) и a(t), если x(t)=10-t*t/2.

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

Скорость чего? Скорость( в точке наверное) - это (x(t + 1) - x(t -1)), мы получим кол-во попугаев между точками за 1t.

Ускорение - это насколько ускорилась точка по вравниню с предидущей точкой. Находит по вышеуказанной штукенции скорость 2-х точек и делим 2-ю на первую. Получаем укорение в разах.

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

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

И пора привыкнуть что бывают числа по модулю меньше единицы;-)

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

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

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

И пора привыкнуть что бывают числа по модулю меньше единицы;-)

Это не имеет смысла. Еденица - минимальное кол-во времени в нашем случае, юзать что-то меньше единицы дебилизм - используй другие попугаи. Хочешь почней - юзай милисекунды, ещё такочне микро, нано и т.п.

Что конкретно я говорю не так?

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

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

Слово «точка» имеет много значений. Точка как знак препинания. ТОчка на графике. ТОчка в отношениях. Точка принятия решения. В данном случае точка (материальная!!!) - это гайка в каком то устройстве. Точка движется. У точки есть координата зависящая от времени, следовательно есть скорость и ускорение.

Еденица - минимальное кол-во времени в нашем случае

Нет.

юзать что-то меньше единицы дебилизм

Опять царство в попе заиграло?;-) И как же Вы будете единицу устремлять к нулю при расчете производной по определению? Поверьте, что уменьшать попугаев гораздо более трудоемкая операция, чем уменьшать Delta x.

Что конкретно я говорю не так?

Предложенный Вами вариант вычисления скорости как мин требует деления на 2 (интервал времени в Вашей формуле 2 а не 1). Так делают, когда ф-я задана численно, а у нас ф-я аналитическая. Дифференцировать аналитическую функцию численно, да еще столь тривиальную - это даже не дебилизм, это верх кретинизма, даже для царя. Пока Вы не научитесь аналитически дифференцировать такие функции мы дальше не пойдем.

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

Вчера Вы мне нравились гораздо больше. Если Вы опять начнете спорить, мы опять застрянем.

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

Я пока не решил. Вчера так поциент был вообще лапочка, а сегодня видать обострение.

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

Слово «точка» имеет много значений. Точка как знак препинания. ТОчка на графике. ТОчка в отношениях. Точка принятия решения. В данном случае точка (материальная!!!) - это гайка в каком то устройстве. Точка движется. У точки есть координата зависящая от времени, следовательно есть скорость и ускорение.

Даже материальная точка не может иметь скорость. Если это устойчивая гайка, то она будет иметь ту же скорость и ускорение. Если тебе надо знать положение в пространстве твоей гайки - это делает оффсетами.

Опять царство в попе заиграло?;-) И как же Вы будете единицу устремлять к нулю при расчете производной по определению? Поверьте, что уменьшать попугаев гораздо более трудоемкая операция, чем уменьшать Delta x.

Устремление - это попытка сделать граффик таким, каким бы он был если рос равномерно с той же скорость, с которой он подрос в этой точке. Это графический кастыль относительно граффика.

Естественно друдоёмка, но суть не в трудоёмкости, а в красивости. Принятие за еденицу измерения какую-то трудновычислимую штуку - это практекуется даже в детсаде.

Предложенный Вами вариант вычисления скорости как мин требует деления на 2 (интервал времени в Вашей формуле 2 а не 1). Так делают, когда ф-я задана численно, а у нас ф-я аналитическая. Дифференцировать аналитическую функцию численно, да еще столь тривиальную - это даже не дебилизм, это верх кретинизма, даже для царя. Пока Вы не научитесь аналитически дифференцировать такие функции мы дальше не пойдем.

Ну тут есть мой фейл, ибо я не знал относительно какой точки считать и не заметил как написал от обоих.

Ну хорошо, я отстронюсь от реального мира и буду как вчера считать абстракции - я не против. Меня попросили посчитать - я посчитал.

Хорошо, царь будет качать абстрактную аналитику.

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

Постораюсь понять.

Вчера Вы мне нравились гораздо больше. Если Вы опять начнете спорить, мы опять застрянем.

Я не спорю, просто на мои абсалютно верные вычесления сказали, что они не верны. Если бы вы не начали говорить «ты не прав», а сказали бы «мы считаем абстрактно, как вчера», «так неудобно работать» и т.п. - я бы не стал спорить.

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

про материальную точку не могущую иметь скорость это в квотезы!!!!111111

Дорогой царь, я Вам настоятельно рекомендую книги Я.Перельман «Занимательная физика» и «Словарь юного физика» (авторов не помню, но он вроде один такой). ЕМНИП была еще занимательная математика.

Насчет красивости вычисления в целых числах - это даллеко не всегда так. Впрочем, Ваше неприятие дробных чисел видимо связано с тем что Вы не умеете с ними работать (или были проблемы с их освоением)?

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

Не-не, у нас тут сериал «приемный покой (ускоренная помощь)». Я за этого... как его... актер омериканский... ну короче за доктора. А ТС за поциента, который вползает в кабинет и прикидывается одмином, тянущим витую пару, но вечно палится из за крокодильчиков.

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

про материальную точку не могущую иметь скорость это в квотезы!!!!111111

Скорость всегда мериется относительно чего-то. Да, вы попытались съехать на точку, как объект. Я же говорил про точку, как часть часть вашей дифернцируемой последовательности.

Дорогой царь, я Вам настоятельно рекомендую книги Я.Перельман «Занимательная физика» и «Словарь юного физика» (авторов не помню, но он вроде один такой). ЕМНИП была еще занимательная математика.

Они иногда интересные, но в основном слишком скучные.

Насчет красивости вычисления в целых числах - это даллеко не всегда так. Впрочем, Ваше неприятие дробных чисел видимо связано с тем что Вы не умеете с ними работать (или были проблемы с их освоением)?

Не всегда, но в 90+% так.

А что с ними работать? Осилил пару кастылей необходимых для их вреняемой работы - это не проблема. Проблема в том, что нужны эти кастыли, а твой флоат в 97%+ случаев не нужен.

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

Вобщем моя идеология такова - не видишь профитов - не юзай. Профиты стоят слишком дорого( в предсказуемости, простоте, красивости) - не юзай. Можно сделать ещё проще? - делай и забей на остальное.

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

Если кратко, то да тут батл. Заключается он в том, что подход человека с крысой на аватарке слишком избыточен и излишне сложен.

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

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

Потом пошло обвинение меня в том, что я не осилил абстрактный матаппарат и я лох.

Чувак с крысой решил сделать из меня человека и обучить меня вузовскому матаппарату.

Ну вот вчера мы начали что-то изучать, изучаем и сейчас.

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

Там Выше по треду, есть вопрос от анонимуса как будет выглядеть в интах 1e-30*1e+30, на который Вы так и не ответили.

Касательно флотов - я могу только повторить в 100501й раз, что Вы неправы. Можно Вашу неправоту разбирать подробно, но уж очень лень - Вы просто не имеете никакого представления (тред это очень четко показывает, ЛОР мне свидетель), о том как и где флоты используются.

А что с ними работать? Осилил пару кастылей необходимых для их вреняемой работы - это не проблема.

Ну когда Вы так говорите, значит Вы их не асилили.

Дорогой царь, хочу отметить, что когда Вы не дуете щек, с Вами можно почти нормально общаться. Когда Вы понимаете свою ограниченность (а не кричите что дескать это все просто и можно асилить за 15 минут) - Вы двигаетесь вперед. Для третьеклассника Вы неплохо таки поняли что есть производная (правда Ваши сверстники этот вопрос изучили куда глубже, а некоторые из них еще и программируют гораздо лучше Вас, и это не наезд а сухая констатация факта, я знаю таких людей). Но «дорогу осилит идущий» - хотелось бы, что бы Вы шли, а не сидели на воображаемом троне. Мы все когда то чему то учились, нормальный человек учится всю жизнь - это очень увлекательный процесс.

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

Все тела состоят из атомов. Атомы не находятся в покое, а совершают хаотические движения, интенсивность этих движений пропорциональна температуре. При температуре -273 градуса по Цельсию все замирает (это т.н. абсолютный ноль, не бывает температуры меньше, абс. ноль недостижим). Чем температура выше, тем активнее атомы совершают хаотические движения (в кристалле - около положений равновесия), за счет этого при повышении температуры большинство тел расширяется. Количество теплоты это и есть энергия, связанная с хаотическими колебаниями атомов.

Рассмотрим два тонких диска (скажем диск 1 и диск 2) с разными температурами, прижатые друг к другу. Атомы диска 1 хаотично дергаются, и передают энергию диску 2. Но существует и обратный процесс - атомы диска 2 дергаются, и передают энергию атомам диска 1. Если температуры дисков одинаковы, то количество тепла передающее от диска 1 к диску 2 равняется количеству тепла передающегося от диска 2 к диску 1, система находится в положении равновесия, и тепловой поток через границу между дисками равен нулю. Иначе, тепловой поток (разница между количеством теплоты которое диск 1 отдал диску 2 и количеством теплоты которое диск 2 отдал диску 1) в единицу времени равен (T2-T1)*alpha, где alpha какой то коэффициент зависящий от материалов диска, площади поверхности раздела дисков, качества поверхности раздела и др. Рассмотрим стопку тонких дисков, имеющих разную температуру.

Рассмотрим теперь стопку дисков, имеющих разную температуру. Для понимания нам достаточно будет рассмотреть один диск (скажем диск 2) и двух его соседей (диск 1 и диск 3). В единицу времени у нас происходит одновременно обмен теплом между дисками 1->2 и между дисками 2->3 (Вы не можете выключить теплообмен между какой то парой дисков, диск 3 ничего не знает о диске 1 и наоборот). При этом в диск 2 тепловой поток 1->2 принесет тепло из диска 1, и из диска 2 тепловой поток 2->3 унесет тепло в диск 3. Ну а изменение количества тепла в диске 2 в единицу времени будет равно разнице между этими потоками. Результат Вы можете получить сами, только не запутайтесь со знаками.

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

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

Чувак с крысой решил сделать из меня человека и обучить меня вузовскому матаппарату.

Я отчаялся. Вы не безнадежны, но такое обучение слишком неэффективно (хотя ЛОР в восторге). «Учить имеет смысл только тех кто сам хочет учится, но они и сами могут все выучить»(c).

Я, как мог, показал дорогу... идти по ней, или нет - это уже Ваш выбор и Ваша жизнь.

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

ЛОР в восторге

Я был дал ЛОРоскара.

Я, как мог, показал дорогу... идти по ней, или нет - это уже Ваш выбор и Ваша жизнь.

И весь ЛОР, всплакнув, нажал кнопку выключения телевизора.

Прошу сделать «Метапрограммирование - проблемы и пути их решения 2: Судный день»! Первая часть была шедевром.

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

Вы не безнадежны

Он безнадежен. Даже если его возможно научить с применением насилия (что не факт), никто не станет тратить время, а он слишком уверен в своей гениальности, чтобы учиться самому.

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

Там Выше по треду, есть вопрос от анонимуса как будет выглядеть в интах 1e-30*1e+30, на который Вы так и не ответили.

Я конкретно разобрал этот вопрос. Как? А так же, как во флоате.

Я там 3-4 поста объяснял, что ваши омегачисла бесполезны, ибо они иллюзорны.

Касательно флотов - я могу только повторить в 100501й раз, что Вы неправы. Можно Вашу неправоту разбирать подробно, но уж очень лень - Вы просто не имеете никакого представления (тред это очень четко показывает, ЛОР мне свидетель), о том как и где флоты используются.

В этом и фейл. Мне не надо показывать ГДЕ они используются мне надо показать ГДЕ БЕЗ НИХ НЕ ОБОЙТИСЬ. Вы путаете два этих понятия.

Дорогой царь, хочу отметить, что когда Вы не дуете щек, с Вами можно почти нормально общаться. Когда Вы понимаете свою ограниченность (а не кричите что дескать это все просто и можно асилить за 15 минут) - Вы двигаетесь вперед. Для третьеклассника Вы неплохо таки поняли что есть производная (правда Ваши сверстники этот вопрос изучили куда глубже, а некоторые из них еще и программируют гораздо лучше Вас, и это не наезд а сухая констатация факта, я знаю таких людей). Но «дорогу осилит идущий» - хотелось бы, что бы Вы шли, а не сидели на воображаемом троне. Мы все когда то чему то учились, нормальный человек учится всю жизнь - это очень увлекательный процесс.

Вы до сих пор не поняли причины моих споров, авось когда-то поймёте, как я пойму ваш матаппарат.

У меня НЕТ( с шансом 99.7%) сверсников, которые программируют лучше меня - это объективный факт. Возможно они смогут что-то запилить быстрее из тех 3-4вещей, что они талдычили в вузе, не более. Если ваше лучше - это значит это, то да. Если взять незнакомую область и дать нам её вкуривать шанс на то, что кто-то из тех кого вы видели запилит лучше и быстрее меня равен менее 4-3 десятых процента.

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

Лалочка, он( после анонимаса) хоть и не совсем удачно, но пытался как-то отстаивать свою ТЗ и отчасти в основном не сливался как дитё.

Вы же, товарищь лалочка, слились как детё. Шанса пронести свою ТЗ сквозь этот тред у вас нет. Вот и остаётся, что балаболить.

Вообще-то я там в соседней и в этой теме писал, что такое Царь. Да и себя я царём не называл.

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

Епилог

У меня НЕТ( с шансом 99.7%) сверсников, которые программируют лучше меня - это объективный факт.

Любой ваш сверстник, из хотя бы из сборных школьной олимпиады по программированию (Москвы, СПб, Новосибирска, и пр.), порвет Вас в клочья на любой задаче с вероятностью 99.(9)%. Просто за счет того, что у него ЧСВ меньше, хотя думаю там ребята есть ну очень задиристые;-)))

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

Рассмотрим два тонких диска (скажем диск 1 и диск 2) с разными температурами, прижатые друг к другу. Атомы диска 1 хаотично дергаются, и передают энергию диску 2. Но существует и обратный процесс - атомы диска 2 дергаются, и передают энергию атомам диска 1. Если температуры дисков одинаковы, то количество тепла передающее от диска 1 к диску 2 равняется количеству тепла передающегося от диска 2 к диску 1, система находится в положении равновесия, и тепловой поток через границу между дисками равен нулю. Иначе, тепловой поток (разница между количеством теплоты которое диск 1 отдал диску 2 и количеством теплоты которое диск 2 отдал диску 1) в единицу времени равен (T2-T1)*alpha, где alpha какой то коэффициент зависящий от материалов диска, площади поверхности раздела дисков, качества поверхности раздела и др. Рассмотрим стопку тонких дисков, имеющих разную температуру.

Это понятно, но это 2 отдельных тела, которых разделяет среда. Интересено именно распределение тепла в одном теле.

Рассмотрим теперь стопку дисков, имеющих разную температуру. Для понимания нам достаточно будет рассмотреть один диск (скажем диск 2) и двух его соседей (диск 1 и диск 3). В единицу времени у нас происходит одновременно обмен теплом между дисками 1->2 и между дисками 2->3 (Вы не можете выключить теплообмен между какой то парой дисков, диск 3 ничего не знает о диске 1 и наоборот). При этом в диск 2 тепловой поток 1->2 принесет тепло из диска 1, и из диска 2 тепловой поток 2->3 унесет тепло в диск 3. Ну а изменение количества тепла в диске 2 в единицу времени будет равно разнице между этими потоками. Результат Вы можете получить сами, только не запутайтесь со знаками.

Это тоже елементарно и ясно.

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

А чем это обусловленно?

Вот мой пример - у нас есть отрезочек - мы нагрели его с одно стороны до 10покугаев и берём на нём 10равноудалённых точек.

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

Т.е. точка 2 нагреется до 1попугая ровно через то же время, что нагрелась точка 1 до 1 попугая. Это так?

Судя по вашему каждая удалённая точка будет нагреваться всё медленнее и медленне, но я не представляю почему. Единственное этому объяснение - это среда, но у нас полная теплоизовляция и тепло не уходит.

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

Интересено именно распределение тепла в одном теле.

разрежем мысленно стержень на тонкие диски и далее по тексту.

А чем это обусловленно?

Тем, что разница температур между соседними участками будет все меньше и меньше.

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

Вы же, товарищь лалочка, слились как детё.

Я не собирался тебя чему-то учить. Я не Alv, у меня слишком мало терпимости к заносчивым невеждам.

Шанса пронести свою ТЗ сквозь этот тред у вас нет.

ТЗ? Тебе? Ты трудом понимаешь печатный текст, куда тебе ТЗ давать.

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

Ахаха, алимпиадник? Эти личности, который максимум, что видили в своей жизни это паскаль, читают файлики реадлайном и считают указатели нинужным мифом? - ты меня просто убил.

Про алимпиады - я такую статейку для хаблы написал - 3дня писал, разбирая школьников и их олимпиады, но НЛО её не приняло - пичалька.

Там была стайтека от 9-тиклассника, который гордо рассказывал как его 11классники пилил хеш для ascii строк сложением. Не напоминай мне - у меня стены шатает от смеха.

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

разрежем мысленно стержень на тонкие диски и далее по тексту.

Вы не описали почему. Атомы, пластиночки, друг от друга - это всё было понятно во времена царя гароха.

Непонятно было лишь одно: А что даёт эта разница темпиратур?

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

Ты мне показывай код - я объясню почему он фигня. А так, чего код тебе показывать?

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

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

Непонятно было лишь одно: А что даёт эта разница темпиратур?

Перенос тепла. Чем разница выше, тем тепловой поток больше. С-но тепловой поток пропорционален производной от температуры.

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

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

да, да.

Перенос тепла. Чем разница выше, тем тепловой поток больше. С-но тепловой поток пропорционален производной от температуры.

Т.е. между 10 и 0 попугаев у меня будет тепловой поток в х10, а между 1 и нулём х1?

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

разрежем мысленно стержень на тонкие диски

Короче, так. Чувак во всем прав, задача решается тупым клеточным автоматом, скорость теплообмена в зависимости от дельты температур берется из экспериментально полученных таблиц, для больших точностей сменяем размерность величин, выбираем уменьшенную область объекта и ранее полученные значения интерполируем кусочно-линейной функцией. Четыре арифметических действия, все на интах.
Все кругом осознают себя лохами, плачут и расходятся.

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

Четыре арифметических действия, все на интах.

Самое забавное, что так оно и есть. Кроме интов, само собой.

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

Т.е. между 10 и 0 попугаев у меня будет тепловой поток в х10, а между 1 и нулём х1?

Да.

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

Но материалЪ же имеет свою теплопроводность, выше которое он не проводит? Т.е. даже если там тепловой поток будет 100 и 0 грудусов, то проведёт он максимум свою теплопроводность? или я зафейлли?

Т.е. я беру разность темпиратур множу их на магию и прибавляю к точке?

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

А чем тебе это решение не нравится? Покажи самое крутое и чем оно лучше.

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

Вот именно на коэффициент теплопроводности производная и умножается - получается тепловой поток.

А чем тебе это решение не нравится?

Там есть множество численных артефактов.

Покажи самое крутое и чем оно лучше.

Зависит от конкретной задачи. Где то используются неявные схемы, где то схемы более высокого порядка по пр-ву и времени. Каюсь, Вам я этого объяснить не смогу.

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

Числа с плавающей точкой же, лалка. Относительные погрешности на них значительно предсказуемей и быстрее твоих костылей на интах.

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

Там есть множество численных артефактов.

Что ты понимаешь под этим словосочем?

Зависит от конкретной задачи. Где то используются неявные схемы, где то схемы более высокого порядка по пр-ву и времени. Каюсь, Вам я этого объяснить не смогу.

Объяснять надо не абстрактные решения, а конкретно что даст тебе реализация иного решения. Оно будет а) быстрее, б) точнее, в) красивей, с) удобней?

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

что даст тебе реализация иного решения.

а), б), в), c) (офигенная нумерация), консервативность, монотонность, дополнительные законы сохранения, увеличенное разрешение в особо интересных областях и еще огромное море свойств, лалка.

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

Что ты понимаешь под этим словосочем?

Косяки в решении, которые обусловлены не физикой а числ схемой. Например немонотонность - появляются новые (не физичные) максимумы и минимумы.

конкретно что даст тебе реализация иного решения

а) быстрее, б) точнее

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

Что может быть быстрее последовательной обработки елементов + 3-4инстркции( из которых всего одна дорогая - умножение) на елемент, для задачи со сложность O(n). Вы можете там для каких-то частных случаев получить что-то чуть быстрее, но в целом я не понимаю как.

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

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

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

Ну ты стал нормальный языком говорить, а не «тынепоймёшь». Ой как я люблю этот гендальфстайл.

Ну тебе надо съэмулировать 100шагов по времени, с шагом t. Ты хочешь уменьшить кол-во шагов? Я не совсем понял.

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

Мне надо почитать на время T. Я могу считать по простой схеме которую тут писал с шагом T/1000 или по сложной схеме с шагом T/100. Сложная схема требует вдвое больше операций, в итоге профит по темпу счета в 5 раз.

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

Посчитайте мне на своих интах 1e-30*1e+30 - отвечу. По другому Вы очевидно не понимаете...

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

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

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

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