То есть, всё видео можно заменить фразой: потому что некоторые десятичные числа в двоичной системе - периодические дроби, которые не влезают в память =)
Поэтому для банковских приложений программисты не доверяют вычисления языку программирования. Обычно есть специальные библиотеки/модули для таких дел. Ну и используют строгую типизацию.
Ты правда красавчик. Мало того, что ты пишешь крутые и понятные видосы, так ещё и стал для меня примером целеустремленности. Никогда не сдавайся и я не буду! Спасибо
Думаю для студентов которые идут на какие-то специальности по типу программиста видосы будут очень полезны А мне для понимания видоса приходится вспоминать школьный курс информатики Кстати прикольно и понятно объясняешь
Я внимательно посмотрел на алгоритм хеширования сети BItcoin (SHA256), и мне вообще не хочется о нём рассказывать... Особенно потому, что для понимания его работы людям понадобится второе скучное сухое двадцатиминутное видео про Питон, где надо было бы объяснить массивы, циклы и классы. Которое никто не будет смотреть. Уиии...
30 лет, калькулятор был игрушкой в детстве. У тётушки даже были советские калькуляторы от розетки 220В работающие. Класса с 5-6-го букву Е всегда считал "ошибкой(error).
Привет, Виссен! Был крайне опечален тем, что более этот канал не будет связан с минуткой земли и боялся, что канал скатится во что-то унылое и неинтересное. Хотя, вероятно, для какой-то части аудитории это так. Но я крайне рад, что так сложилось, что мои интересы перекликаются с направлением канала. Спасибо большое за труд. P.S. Ты упоминаешь, что твои ролики унылые, но если брать за ЦА тех, кто +- связан с направлением, то твои ролики как глоток свежего воздуха в сравнении с 2часовыми лекциями с унылыми примерами и спящим лектором в преклонном возрасте. Чувство, что именно такого наставника я ждал всю свою жизнь. хаха P.S.S Привет из JavaScript c ` 0.1 + 0.2 !== 0.3 `
Чёрт, это гениальный вопрос. Кажется, в стандарт заложен особый случай для нуля. Когда вообще всё нули вместо крошечной степени двойки получается ноль.
Там ещё много нюансов: и мантисса не всегда начинается с единицы (т.н. _денормализованные_ числа), и нуля два (положительный и отрицательный), а также две бесконечности (со знаком) и два значения NaN (qNaN и sNaN).
@@WissenYT , как сказал мой препод по архитектуре, всё зависит от реализации в самом процессоре, что-то вроде: если ячейка не определена, как плавающее число, то в ней ноль
Предположим, мы включили поддержку float64 из numpy >>> from numpy import float64 и определили следующие переменные >>> a = float64(0) >>> b = 1/a >>> c = b**a Чему будут равны их значения >>> [a, b, c] и внутреннее представление?
Надеюсь оговорка на "вообще все" не относится ко всему каналу. Надеюсь найдешь ещё какие-нибудь интересные темы. Насчёт Биткойна тема неплохая, просто так много где уже ее объяснили, что хз (это мое мнение, кто не смотрел думаю зайдет)
@@endlessvd Даа, походу тебя кто-то сильно обидел, и ты решил выплеснуть свою злость в комментах. Я тебе так скажу, пунктуация стоит намного ниже, чем уважение, вежливость и человечность. (тем более логические запятые расставлены, читать текст не составляет проблем, а это именно то, для чего нужны запятые)
Давно задавался этим вопросом! Спасибо за объяснение! А то во время работы в Unity иногда вместо координат без запятой получались значения вроде 3.9999999999988
Вопрос. Зачем нужен "костыль" с модулем для коррекции точности, если его необходимо было встроить в язык де-факто? То-есть разработчики языка намеренно встроили в вычислительные алгоритмы ошибку чтобы что?...Если это сейчас не нужно, то необходимо исключить ошибку из языка.
для научных вычислений, например, до сих пор работают с 32-битными числами с плавающей запятой, память меньше, операция выполняется быстрее, огромная точность не нужна, ибо погрешности
@@bvpanchenko Но всё равно получается расхождение, если расчёт выполняется "в столбик" на бумажке или на компьютере. Ты округляешь 0,5 в большую сторону, а компьютер в меньшую, а потом оказывается, что эти 0,5 в его памяти содержатся, как 0,49. И это несистемно, потому что 1,5 может храниться в памяти как 1,51 и она будет округляться до 2. Получается, что перед тем, как писать алгоритмы расчётов, нужно ещё предусмотреть алгоритмы коррекции, и в результате мы теряем время и дополнительную память. То-есть мы не может взять язык программирования и использовать базовый функционал даже для созданий калькулятора, потому что он не будет выдавать верный результат.
@@АлексейХ-н3й 1.51 - может не округляется до 2х если что, зависит от типа округления. 1/3 пожалуйста запиши в виде десятичной дроби. Проблему все знают, и что ты предлагаешь делать ? Всякий Decimal - накладные расходы как на память так и на ЦПУ. То есть вы сами выбираете когда какой тип данных использовать, исходя из поставленной задачи
Напишите программу на языке Паскаль, а также постройте блок-схему алгоритма для решения следующей задачи: Вычислить среднее арифметическое всех положительных значений функции y(x) = x3 + cos4x, на промежутке [-2; 2] с шагом h = 0.2.
Виссен, касательно запрета на публикацию выпусков "минутка земли". Разрешение на перевод получили Vert Dider. Однако дайдер просили разрешение на "минутку физики", что они в итоге и переводят, но ни одного видео из минутки земли. То есть на запрос перевода одного канала они дали добро на оба. Если объяснить им это, можно всё-таки вернуть право на выпуск роликов. Копию письма с разрешением можно найти по ссылке в конце описания любого ролика дайдера.
@@WissenYT Да, вижу. На самом канале дайдеров их нет, вот и подумал, что оно так есть. Не посмотрел, что они вывели это всё на отдельный канал, а в плейлисте на основном только Минуту Физики оставили.
привет Виссен, помнишь свое видео про двоичную логику? Ну конечно да, так вот благодаря тебе у по информатике все оценки ПЯТЬ, но одно проблема меня записали на олимпияду. Спасибо тебе за твои видео и не мог бы сделать видео про решение задач из олимпиады? А так спасибо что объясняешь доступно.
«Тратить лишний бит на знак порядка никто не хотел» звучит так, словно здесь экономится бит (как это происходит с мантиссой). На самом же деле смещённый порядок ничего не экономит - на отличие отрицательных порядков от положительных всё равно нужен бит информации. Смещённый порядок лишь упрощает выполнение операций над порядками. Например, логика сравнения двух порядков становится проще. Пока у нас есть отдельный знаковый бит, нужно по-разному сравнивать отрицательные порядки и положительные (в двоичном представлении). А при смещённом порядке любой порядок можно рассматривать как положительный.
А если ещё углубиться, то обнаружится, что сэкономленный -0 не даёт дополнительной точности даже на одну единицу. Как раз одно из значений порядка в IEEE 754 (111…1) полностью отдано под две бесконечности и огромное количество вариантов представления NaN (=
У него много принципов - майнинг (нахождение подходящего блока) отдельно, связность блоков (ссылки на предыдущие блоки) и дерево транзакций в блоке отдельно, граф транзакций (стыковка входов транзакции с выходами предыдущих транзакций) отдельно, эллиптическая криптография (подпись транзакций) отдельно. Внятность зависит от того, какой именно нюанс вас интересует. Если всё сразу - в любом случае придётся самостоятельно по частям воспринимать, а это долго (чудес не бывает, увы). Впрочем, дорогу осилит идущий :)
Даже после этого перечисления стало понятнее чем после некоторых роликов. Как пример доступного объяснения для меня - статья на Мичурин.нет про RSA шифрование.
Чесгря проблема в современном виде несколько надумана - связка мантисса-экспонента и типы данных вроде BigDecimal или Currency решают эту проблему в 100% более-менее внятных программ, требующих точности и не требующих скорости. А где нужна только скорость численных методов, там вообще сплошные хаки, типа Quake III Q_sqrt
О, да - это знаменитое i = 0x5f3759df - ( i >> 1 ); // what the fuck? вычисляющее обратный квадратный корень (*интересно, пропустит ли нейросеть UA-cam этот комментарий*)
Не шарю в этих делах, но есть такой вопрос: а вообще технически возможно хранить рациональные числа не в виде десятичных (двоичных) дробей, а в виде натуральной дроби? Ну и при желании придумать отдельную операцию для иррациональных чисел? И будет ли, если возможно, такое рентабельным?
Ну дробные числа в "традиционных" float-ах вполне есть зачем хранить, если вы хотите, чтоб приложение не совсем тупило и не вешало компы пользователей (как современный клиент фейсбука например). Так что по моему опыту всякие Decimal и BigInt реже используются, (как раз когда нужна большая точность дробных чисел, а это редкие случаи). А ещё я на 4:01 увидел кусок кода на питоне интересный. Всякие стракт_анпэки, итераторы. Что это он там такое дееелает? :D Реквестирую следующее видео об этом!
struct_pack выдаёт байтовую последовательность числа number в формате числа с плавающей точкой, struct_unpack перетрактовывает эту последовательность в виде целого числа (int_pack), у результата берётся нулевой элемент ([0]; т.к. struct_unpack возвращает tuple), целое число конвертируется в строку со своим двоичным представлением (bin), от него отрезается префикс "0b" ([2:]), строка с двоичным представлением дополняется слева нулями до длины bits (rjust). По этой строке формируется итератор bin_iter. В следующей строке кода формируется возвращаемый из функции массив, в котором будут подстроки из вышесформированной двоичной строки с длинами 1, exponent_bits и mantissa_bits соответственно (bin_iter в процессе пробегания иксом значений (1, exponent_bits, mantissa_bits) и формирования очередной подстроки-элемента результирующего массива смещается каждый раз на соответствующее значение).
Я понял, вот только вопросик остался, ну с 1.15 это понятно, перидческое число и всё такое. Я однажды написал калькулятор на C# (надеюсь большой разницы нету) и даже такая более менее простая операция как 12-0.2 давало такой же результат, а конкретно неточность, но в чём проблема числа 0.2? Она тоже периодическая?
Да, в двоичной системе счисления число 0.2 = 1/5 = 3/15 = 0.(0011)₂ записывается в виде периодической дроби. Конечными будут только несократимые дроби со знаменателями, равными степеням двойки: 0.5 = 1/2 = 0.1₂, 0.25 = 1/4 = 0.01₂, и т.д.
@@СергейЗло-й7я В той, основание которой делится на 3: 1/3 = 0.1₃ (троичной) = 0.2₆ (шестеричной) = 0.3₉ (девятеричной) = 0.4₁₂ (и так далее) = 0.C₃₆ (10 цифр + 26 букв)
Методов хранения произвольных действительных чисел не существует в принципе (вне зависимости от объёмов памяти и диска), поэтому арифметика с ограниченной точностью - вынужденный компромисс. Более того, _почти все_ действительные числа _невычислимы,_ т.е. не существует алгоритма для их вычисления с произвольной точностью (хотя это уже имеет косвенное отношение к вопросу, но факт остаётся фактом: вероятность того, что мы сможем вычислить с заданной точностью произвольно выбранное действительное число, равна нулю).
На самом деле людей пытали авторы стандартов на электронную почту. Они решили, что только 7 бит из 8 могут кодировать символ. В итоге, письма можно было посылать только на английском. И до сих пор так. Чтобы отправить письмо на китайском или русском, его текст превращается в ту еще кашу из 7-ми битных знаков...
Расскажу, почему используют такие неточные числа. Потому что в науке и технике числа - представьте себе - неточные! Ведь они приходят с измерительных приборов и датчиков, и неточность в семь или пятнадцать знаков - это мелочи по сравнению, например, с тремя знаками с датчика. Если же нужен точный формат - есть та самая длинная арифметика.
Любое _действительное_ число всегда представимо в виде бесконечной дроби в любой системе счисления с целым положительным основанием b ≥ 2, причём _рациональные_ числа (т.е. дроби p/q) всегда имеют периодическую запись, а _иррациональные_ (√2, √3, e, π) - только непериодическую. Но тут есть нюансы: 1) Если в разложении знаменателя несократимой дроби q на простые множители встречаются только делители основания системы счисления b, то такую обыкновенную дробь можно записать в виде бесконечной дроби двумя способами: с периодом 0 и с периодом (b−1) - в первом случае получаем конечную запись. Например, в десятичной системе счисления это все дроби вида p/(2ᵐ⋅5ⁿ), в двоичной, восьмеричной и шестнадцатеричной - p/2ᵐ, а в двенадцатеричной - p/(2ᵐ⋅3ⁿ). 2) Некоторые иррациональные числа (а именно корни квадратных уравнений с рациональными коэффициентами) представимы в виде периодических _цепных_ дробей, например, "золотое сечение" или корень из двух: φ = [1; 1, 1, 1, ...] = [1; (1)] = 1.41421... √2 = [1; 2, 2, 2, ...] = [1; (2)] = 1.61803... а все _рациональные_ числа имеют конечную запись: 355/113 = [3; 7, 16] = 3.14159... 3) В общем случае основание системы не обязано быть целым положительным числом b ≥ 2, а может быть дробным (¹/₂, ¹/₃, ...), отрицательным (−2, −3, ...), иррациональным (√2, φ, e, π, ...) и даже комплексным (например, система счисления Дональда Кнута с мнимым основанием b = 2𝕚). Так, в системе счисления с основанием b = φ ("золотое сечение") получаем: 1 = 1ᵩ 2 = 10.01ᵩ √5 = 10.1ᵩ φ = (1+√5)/2 = 10ᵩ
Но вообще у термина "мантисса" два значения: для нормализованной записи a⋅10ᵖ она удовлетворяет условию 1 ≤ a < 10, а для таблиц десятичных логарифмов lg(a⋅10ᵖ) = p + lg(a) = p + m, где 0 ≤ m < 1 - дробная часть десятичного логарифма.
@@allozovsky , понятно, а почему мантисса нормализованного двоичного числа всегда имеет 1 в начале? Например, 5.6 = 101,10011001100=1,0110011001100×2^2
@@user-zf7gz6wm8i По той же причине: в системе счисления с основанием b стандартный вид числа имеет вид a⋅bᵖ, поэтому в двоичной системе мантисса будет удовлетворять условию 1 ≤ a < b или 1 ≤ a < 2, т.е. целая часть мантиссы всегда будет равна 1.
А теперь минутка рациональный вопрос: Почему ни кто не задумался о неправильности метода вычисления двоичного перевода числа из десятичного или о неправильности метода перевода числа из десятичного в двличное, если применяя методы в прямом и обратном направлении, получаются разные результаты. Фактически - теряются данные. Более того, метод перевода числа из десятичной в двоичную и метод перевода числа из двоичной в десятичную, должны быть взаимообратными. Однако, если применение обратного преобразования над прямым преобразованием не даёт изначального числа, следует что сами методы не взаимообратны. Так почему же всем на это плевать?
Метод правильный просто эти эффекты проявляются из-за основания системы счисления это как небезызвестный пример почему двенадцатиричная(с оснонованием 12) лучше десятичной(с основанием десять, число 1/3 в десятичной 0,333333(3) те бесконечная дробь, в двенадцатиричной просто 0,4 Вычислительная техника работает на двоичной логике потому что строить вычислительную технику да системах с другим основание можно но сложно и дорого, и все равно это будет в какомто сымысле костыль надстройка над двоичной
@@ВячеславРустамян-н2х ты "государству" за то много должен, я прям щас отдам тебе яблоки, а ты должен фантики с условными цифрами. На одной золотой монете написано "10 ЗОЛОТЫХ МОНЕТ" "БАНК РОСИ" ХА ХА
насколько я понял - из двоичной записи изза ограниченного количества символов отбрасывается "конец" - оттуда и погрешность в районе 16го разряда дробной части а во всем виноваты устаревшие технологии которые продолжают эксплуатироваться изза устаревшего ПО которое никто не хочет переписывать или предоставлять аналоги
Виноваты не устаревшие технологии, а несовершенство двоичной логики в принципе. Это можно исправить увеличивая разрядность системы, только её нельзя повышать бесконечно, иначе даже 2+2 будет вычисляться кучу времени.
там должны использоваться числа высокой точности. Копейка не сходиться это обычно округления + последовательно операций. Еще есть метод округления. Например в "банковское", где 1.5==1
Ничего не понимаю, но такие видео должны быть в топе, потому что вот как раз это - прекрасный контент!
Спасибо
То есть, всё видео можно заменить фразой: потому что некоторые десятичные числа в двоичной системе - периодические дроби, которые не влезают в память =)
спс
Так понятнее) чем на видео
Хах, а реально, всю суть ролика понял только после твоего коммента)
@@holy2785 ну, всё же без видео эта фраза будет не всем понятна!
@@futakomori кому? детям лет 4-5?
То самое видео, которые смотрят в 3 часа ночи
Не знаю не знаю, у меня 3: 22 ))))
В час ))
2:05
04:59
В два часа 🤔
Поэтому для банковских приложений программисты не доверяют вычисления языку программирования. Обычно есть специальные библиотеки/модули для таких дел. Ну и используют строгую типизацию.
Для них есть особые типы, decimal, например, которые построенны на цельночисельных типах
@@endlessvd нихера, ты токсик, удачи в жизни
Ещё бы они не продумали такое. Грамотный прогер из спортивного интереса бы скриптами обанктротил систему.
@@endlessvd а твой вообще нет, дегенерат обиженный, совершивший правонарушение
@@endlessvd в твоей маме я есть)
поздравляю с взлетевшим видосом)
и это не перевод какой то, это твой контент!
Ты правда красавчик. Мало того, что ты пишешь крутые и понятные видосы, так ещё и стал для меня примером целеустремленности. Никогда не сдавайся и я не буду!
Спасибо
Поддерживаю!!!
+
Думаю для студентов которые идут на какие-то специальности по типу программиста видосы будут очень полезны
А мне для понимания видоса приходится вспоминать школьный курс информатики
Кстати прикольно и понятно объясняешь
Блин, я немного знаю питон, но даже так мне кажется что он говорит что то на эльфийском.
Ахахах, смойся...
@@endlessvd аааа, ты байтер, ну давай иди дальше все равно аудиторию нормальную так не набрать
@@endlessvd Ты только ругаться можешь мелкий аут?
@@endlessvd ахаха, можешь пытаться ещё но сразу понял что ты недолëкий байтер...
Я внимательно посмотрел на алгоритм хеширования сети BItcoin (SHA256), и мне вообще не хочется о нём рассказывать... Особенно потому, что для понимания его работы людям понадобится второе скучное сухое двадцатиминутное видео про Питон, где надо было бы объяснить массивы, циклы и классы. Которое никто не будет смотреть. Уиии...
Я буду
И я
Я буду
👀
Пили давай! У тебя слишком хорошо получается контент такого рода
У тебя отличные видео, а идея рассказать про майнинг биткойна "с нуля" вообще офигенная. Keep up the good work!
@@the_hhhh тогда почему он не вскидывает руку в небо и не кричит слава Руси? выписываем
На 10 лет только опоздал с битком
В конце видео: "На этом всё. Вообще всё!". И мир коллапсирует.
Спасибо за видео, было интересно ゚+(人・∀・*)+。♪
Ого, как то я и не заметил как видео выстрелило
Ну чтож, поздравляю, Евген!
Да там ваще! На видео про триггер со свиньёй уже 100к просмотров.
@@WissenYT интересно, сколько гривень могло бы быть, будь монетизация включена. 2-3К?
Я СНОВА НАШЕЛ ЭТОТ КАНАЛ! ДААААА!
А так вот почему это происходит . Спасибо, теперь всё встало на свои места . Так держать ! :)
Ну вот, твои видео интересные, ничуть ни хуже минутки земли
30 лет, калькулятор был игрушкой в детстве. У тётушки даже были советские калькуляторы от розетки 220В работающие. Класса с 5-6-го букву Е всегда считал "ошибкой(error).
До этого видео. Вывод: век живи - век учись.
На самом деле, очень удобно и полезно мне, как ученику физ.инф. класса! Делай больше Видосов, они крутые!
Залпом просмотрел весь цикл роликов. Ждём дальше:)
Привет, Виссен! Был крайне опечален тем, что более этот канал не будет связан с минуткой земли и боялся, что канал скатится во что-то унылое и неинтересное. Хотя, вероятно, для какой-то части аудитории это так. Но я крайне рад, что так сложилось, что мои интересы перекликаются с направлением канала. Спасибо большое за труд.
P.S. Ты упоминаешь, что твои ролики унылые, но если брать за ЦА тех, кто +- связан с направлением, то твои ролики как глоток свежего воздуха в сравнении с 2часовыми лекциями с унылыми примерами и спящим лектором в преклонном возрасте. Чувство, что именно такого наставника я ждал всю свою жизнь. хаха
P.S.S Привет из JavaScript c ` 0.1 + 0.2 !== 0.3 `
Не-не, всё в порядке, я скатился
Мне стало интересно, а как представлен 0? Если мантисса начинается с единицы
Чёрт, это гениальный вопрос. Кажется, в стандарт заложен особый случай для нуля. Когда вообще всё нули вместо крошечной степени двойки получается ноль.
Там ещё много нюансов: и мантисса не всегда начинается с единицы (т.н. _денормализованные_ числа), и нуля два (положительный и отрицательный), а также две бесконечности (со знаком) и два значения NaN (qNaN и sNaN).
@@WissenYT , как сказал мой препод по архитектуре, всё зависит от реализации в самом процессоре, что-то вроде: если ячейка не определена, как плавающее число, то в ней ноль
@@soviertheman5392 кажется, вы проходили архитектуру бассейнов в банковских отделениях
Это суперкруто! Спасибо огромное за эти потрясающие видео об алгоритмах и программировании. Я очень жду твоих следующих видео на эту тематику!
Предположим, мы включили поддержку float64 из numpy
>>> from numpy import float64
и определили следующие переменные
>>> a = float64(0)
>>> b = 1/a
>>> c = b**a
Чему будут равны их значения
>>> [a, b, c]
и внутреннее представление?
Я ничерта не смыслю в математике и почти столько же в программировании. Так что я ничего не понял, но мне было очень интересно
Надеюсь оговорка на "вообще все" не относится ко всему каналу.
Надеюсь найдешь ещё какие-нибудь интересные темы. Насчёт Биткойна тема неплохая, просто так много где уже ее объяснили, что хз (это мое мнение, кто не смотрел думаю зайдет)
@@endlessvd Даа, походу тебя кто-то сильно обидел, и ты решил выплеснуть свою злость в комментах. Я тебе так скажу, пунктуация стоит намного ниже, чем уважение, вежливость и человечность.
(тем более логические запятые расставлены, читать текст не составляет проблем, а это именно то, для чего нужны запятые)
@@ziral0 давай я его забаню просто
Давно задавался этим вопросом! Спасибо за объяснение! А то во время работы в Unity иногда вместо координат без запятой получались значения вроде 3.9999999999988
Когда взял в кредит 1.1 биткоина и 2.2 биткоина получил 3.3000000003 биткоина и и стал миллиардером
И нада аддавать кридит и с працэнтами ты должэн 4 биткоина
@@neckrontir и произошла ошибка в системе, и ты должен отдать 40btc
@@neckrontir кредит без процентов при возвращении до определенного момента
@@neckrontir И надо отдавать Кредит и с процентами ты должен 4 биткоина*
(КУЧА ОШИБОК)
@@υηκηοωη2467 я не руский
Вопрос. Зачем нужен "костыль" с модулем для коррекции точности, если его необходимо было встроить в язык де-факто? То-есть разработчики языка намеренно встроили в вычислительные алгоритмы ошибку чтобы что?...Если это сейчас не нужно, то необходимо исключить ошибку из языка.
Да заткнись ты
для научных вычислений, например, до сих пор работают с 32-битными числами с плавающей запятой, память меньше, операция выполняется быстрее, огромная точность не нужна, ибо погрешности
@@bvpanchenko Но всё равно получается расхождение, если расчёт выполняется "в столбик" на бумажке или на компьютере. Ты округляешь 0,5 в большую сторону, а компьютер в меньшую, а потом оказывается, что эти 0,5 в его памяти содержатся, как 0,49. И это несистемно, потому что 1,5 может храниться в памяти как 1,51 и она будет округляться до 2.
Получается, что перед тем, как писать алгоритмы расчётов, нужно ещё предусмотреть алгоритмы коррекции, и в результате мы теряем время и дополнительную память. То-есть мы не может взять язык программирования и использовать базовый функционал даже для созданий калькулятора, потому что он не будет выдавать верный результат.
@@АлексейХ-н3й 1.51 - может не округляется до 2х если что, зависит от типа округления. 1/3 пожалуйста запиши в виде десятичной дроби.
Проблему все знают, и что ты предлагаешь делать ? Всякий Decimal - накладные расходы как на память так и на ЦПУ. То есть вы сами выбираете когда какой тип данных использовать, исходя из поставленной задачи
@@АлексейХ-н3й По поводу "пишут коррекции", не уверен что из пишут, только при сравнении берут диапазон
200 тысяч просмотров поздравляю
Напишите программу на языке Паскаль, а также постройте блок-схему алгоритма для решения следующей задачи:
Вычислить среднее арифметическое всех положительных значений функции
y(x) = x3 + cos4x, на промежутке [-2; 2] с шагом h = 0.2.
Виссен, касательно запрета на публикацию выпусков "минутка земли". Разрешение на перевод получили Vert Dider. Однако дайдер просили разрешение на "минутку физики", что они в итоге и переводят, но ни одного видео из минутки земли. То есть на запрос перевода одного канала они дали добро на оба. Если объяснить им это, можно всё-таки вернуть право на выпуск роликов.
Копию письма с разрешением можно найти по ссылке в конце описания любого ролика дайдера.
Что? Я общался с ними, и они вроде бы переводят Минутку Земли спокойно.
@@WissenYT Да, вижу. На самом канале дайдеров их нет, вот и подумал, что оно так есть. Не посмотрел, что они вывели это всё на отдельный канал, а в плейлисте на основном только Минуту Физики оставили.
Интересное видео, мне понравилось
Круто! Ждём курс по Python от тебя 😀
Я никоим образом не программист, но технарь.
Однако, было интересно.
приятный блин видос. клево
привет Виссен, помнишь свое видео про двоичную логику? Ну конечно да, так вот благодаря тебе у по информатике все оценки ПЯТЬ, но одно проблема меня записали на олимпияду. Спасибо тебе за твои видео и не мог бы сделать видео про решение задач из олимпиады? А так спасибо что объясняешь доступно.
print("F")
7:51 оу мэн я чуть не кончил от такого произношения ))
Вот не думал, что в двоичной системе тоже есть дроби с периодичным ответом. Не зря пол видео останавливал себя чтобы не выключить его.
случайно наткнулся на это видео, оно меня сразу заинтересовало. Видео очень понравилось, я сразу подписался
Для меня питон это змея, но так как пора спать и завтра рано вставать, обязательно посмотрю видос и вникну в тему.
после этого видео надо смотреть как лечить удава)
Очень интерестно слушать
«Тратить лишний бит на знак порядка никто не хотел» звучит так, словно здесь экономится бит (как это происходит с мантиссой). На самом же деле смещённый порядок ничего не экономит - на отличие отрицательных порядков от положительных всё равно нужен бит информации.
Смещённый порядок лишь упрощает выполнение операций над порядками. Например, логика сравнения двух порядков становится проще. Пока у нас есть отдельный знаковый бит, нужно по-разному сравнивать отрицательные порядки и положительные (в двоичном представлении). А при смещённом порядке любой порядок можно рассматривать как положительный.
А если ещё углубиться, то обнаружится, что сэкономленный -0 не даёт дополнительной точности даже на одну единицу. Как раз одно из значений порядка в IEEE 754 (111…1) полностью отдано под две бесконечности и огромное количество вариантов представления NaN (=
Комментарий для поддержания автора ааа ааа ааа ааа ааа ааа
Тут писали, что де в сети уже есть полно видео про биткоин.
На мой взгляд, нет ни одного, внятно объясняющего принцип работы.
У него много принципов - майнинг (нахождение подходящего блока) отдельно, связность блоков (ссылки на предыдущие блоки) и дерево транзакций в блоке отдельно, граф транзакций (стыковка входов транзакции с выходами предыдущих транзакций) отдельно, эллиптическая криптография (подпись транзакций) отдельно. Внятность зависит от того, какой именно нюанс вас интересует. Если всё сразу - в любом случае придётся самостоятельно по частям воспринимать, а это долго (чудес не бывает, увы). Впрочем, дорогу осилит идущий :)
Даже после этого перечисления стало понятнее чем после некоторых роликов.
Как пример доступного объяснения для меня - статья на Мичурин.нет про RSA шифрование.
Спасибо! Ничего не понял но очень интересно
Чесгря проблема в современном виде несколько надумана - связка мантисса-экспонента и типы данных вроде BigDecimal или Currency решают эту проблему в 100% более-менее внятных программ, требующих точности и не требующих скорости. А где нужна только скорость численных методов, там вообще сплошные хаки, типа Quake III Q_sqrt
О, да - это знаменитое
i = 0x5f3759df - ( i >> 1 ); // what the fuck?
вычисляющее обратный квадратный корень
(*интересно, пропустит ли нейросеть UA-cam этот комментарий*)
Не шарю в этих делах, но есть такой вопрос: а вообще технически возможно хранить рациональные числа не в виде десятичных (двоичных) дробей, а в виде натуральной дроби? Ну и при желании придумать отдельную операцию для иррациональных чисел? И будет ли, если возможно, такое рентабельным?
Хранят как два целых числа, я как раз в конце упомянул as integer ratio
можно, но такие операцию будут медленнее обычных.
Куча инфы которая мне вряд ли понадобится
Ну дробные числа в "традиционных" float-ах вполне есть зачем хранить, если вы хотите, чтоб приложение не совсем тупило и не вешало компы пользователей (как современный клиент фейсбука например). Так что по моему опыту всякие Decimal и BigInt реже используются, (как раз когда нужна большая точность дробных чисел, а это редкие случаи). А ещё я на 4:01 увидел кусок кода на питоне интересный. Всякие стракт_анпэки, итераторы. Что это он там такое дееелает? :D Реквестирую следующее видео об этом!
Понятия не имею, что он делает.
@@Jamato-sUn С чего ты решил, что вопрос был тебе?
struct_pack выдаёт байтовую последовательность числа number в формате числа с плавающей точкой, struct_unpack перетрактовывает эту последовательность в виде целого числа (int_pack), у результата берётся нулевой элемент ([0]; т.к. struct_unpack возвращает tuple), целое число конвертируется в строку со своим двоичным представлением (bin), от него отрезается префикс "0b" ([2:]), строка с двоичным представлением дополняется слева нулями до длины bits (rjust). По этой строке формируется итератор bin_iter. В следующей строке кода формируется возвращаемый из функции массив, в котором будут подстроки из вышесформированной двоичной строки с длинами 1, exponent_bits и mantissa_bits соответственно (bin_iter в процессе пробегания иксом значений (1, exponent_bits, mantissa_bits) и формирования очередной подстроки-элемента результирующего массива смещается каждый раз на соответствующее значение).
Я понял, вот только вопросик остался, ну с 1.15 это понятно, перидческое число и всё такое. Я однажды написал калькулятор на C# (надеюсь большой разницы нету) и даже такая более менее простая операция как 12-0.2 давало такой же результат, а конкретно неточность, но в чём проблема числа 0.2? Она тоже периодическая?
Да, в двоичной системе счисления число 0.2 = 1/5 = 3/15 = 0.(0011)₂ записывается в виде периодической дроби. Конечными будут только несократимые дроби со знаменателями, равными степеням двойки: 0.5 = 1/2 = 0.1₂, 0.25 = 1/4 = 0.01₂, и т.д.
@@allozovsky Спасибо большое за информацию!
@@allozovsky Интересно, а 1/3 в какой системе не будут бесконечной дробью?
@@СергейЗло-й7я В той, основание которой делится на 3:
1/3
= 0.1₃ (троичной)
= 0.2₆ (шестеричной)
= 0.3₉ (девятеричной)
= 0.4₁₂ (и так далее)
= 0.C₃₆ (10 цифр + 26 букв)
@@allozovsky круто, получается можно такие дроби просто записывать в другой системе и никакой бесконечности
Красава!!!
Всё очень понятно. Дело ясное, что дело тёмное... 😁
Самый лучший экранный диктор для учебника 56 класса
Эхх,давно я на тебя не заходил.с тех времен когда ты ещё делал перевод одного канала
Точно, а я сейчас наткнулся на этот видос, увидел знакомый канал и никак не мог вспомнить, откуда я его знаю
Потому что переменные должны быть типизированы и обрабатываться нормальными библиотеками. Особенно в эру терабайтов памяти и диска.
Методов хранения произвольных действительных чисел не существует в принципе (вне зависимости от объёмов памяти и диска), поэтому арифметика с ограниченной точностью - вынужденный компромисс. Более того, _почти все_ действительные числа _невычислимы,_ т.е. не существует алгоритма для их вычисления с произвольной точностью (хотя это уже имеет косвенное отношение к вопросу, но факт остаётся фактом: вероятность того, что мы сможем вычислить с заданной точностью произвольно выбранное действительное число, равна нулю).
Было бы интереснее, если бы показала деление с восстановлением остатка и без него
Спасибо за труд. Успехов вам. Ура реклама.
Учусь сейчас на промэлектронике, очень помогают эти видео. Афтар пили исщо
Непонятно но интересно, надо бы как то понять
Гораздо интереснее вопрос - откуда в компьютере сопроцессор !
Джаваскриптерам привет. пхпшникам соболезную
Крутое видео
У вас очень хороший голос. Вспоминаю, как вы переводили минутку земли.
Когда решил посмотреть ролики про программирование, но не шаришь за программирование
Мне нравится.
Просто ахренеть как всё запутанно. Тот кто изобрёл эту хрень- раньше людей пытал,- неужели нельзя как то проще выдумать чонить.
На самом деле людей пытали авторы стандартов на электронную почту. Они решили, что только 7 бит из 8 могут кодировать символ. В итоге, письма можно было посылать только на английском. И до сих пор так. Чтобы отправить письмо на китайском или русском, его текст превращается в ту еще кашу из 7-ми битных знаков...
Я НАШЁЛ ТЕБЯ!
Я уж думал ты канал удалил, теперь я тебя не потеряю
Расскажу, почему используют такие неточные числа. Потому что в науке и технике числа - представьте себе - неточные! Ведь они приходят с измерительных приборов и датчиков, и неточность в семь или пятнадцать знаков - это мелочи по сравнению, например, с тремя знаками с датчика. Если же нужен точный формат - есть та самая длинная арифметика.
Вау, первое видео у тебя, в котором я нихрена не понял. Так держать!
Чел если ты что-то не понял посмотри видео о которых говорил автор , а потом пересмотри это
О о о видос
Специально так делают по заказу всемирного банка...что бы с каждой операции забирать эти лишние циферки...вот на них они и делают миллиарды...
Немного не по теме вопрос. В других система счисления бесконечные дроби вполне себе конечные?
Любое _действительное_ число всегда представимо в виде бесконечной дроби в любой системе счисления с целым положительным основанием b ≥ 2, причём _рациональные_ числа (т.е. дроби p/q) всегда имеют периодическую запись, а _иррациональные_ (√2, √3, e, π) - только непериодическую. Но тут есть нюансы:
1) Если в разложении знаменателя несократимой дроби q на простые множители встречаются только делители основания системы счисления b, то такую обыкновенную дробь можно записать в виде бесконечной дроби двумя способами: с периодом 0 и с периодом (b−1) - в первом случае получаем конечную запись. Например, в десятичной системе счисления это все дроби вида p/(2ᵐ⋅5ⁿ), в двоичной, восьмеричной и шестнадцатеричной - p/2ᵐ, а в двенадцатеричной - p/(2ᵐ⋅3ⁿ).
2) Некоторые иррациональные числа (а именно корни квадратных уравнений с рациональными коэффициентами) представимы в виде периодических _цепных_ дробей, например, "золотое сечение" или корень из двух:
φ = [1; 1, 1, 1, ...] = [1; (1)] = 1.41421...
√2 = [1; 2, 2, 2, ...] = [1; (2)] = 1.61803...
а все _рациональные_ числа имеют конечную запись:
355/113 = [3; 7, 16] = 3.14159...
3) В общем случае основание системы не обязано быть целым положительным числом b ≥ 2, а может быть дробным (¹/₂, ¹/₃, ...), отрицательным (−2, −3, ...), иррациональным (√2, φ, e, π, ...) и даже комплексным (например, система счисления Дональда Кнута с мнимым основанием b = 2𝕚). Так, в системе счисления с основанием b = φ ("золотое сечение") получаем:
1 = 1ᵩ
2 = 10.01ᵩ
√5 = 10.1ᵩ
φ = (1+√5)/2 = 10ᵩ
А можно повторить?
Объясняешь вроде понятно, и подробно, и голос классный, и дикция хорошая, нооо... я всё равно ничего не понял(
Ну прости
@@WissenYT твоей вины нет, я не дошёл до такого уровня еще, чтобы уловить всю нить)
Посмотрел видео, но ничего не понял, но понял, как питон не правильно вычисляет
Топ
Открытие галактики свершилось...А если серьезно просто нужно пойти и почитать стандарт IEEE 754
За 3 курса в вузе нам никто не ответил почему в float 1.499999999999999999991, а не 1.5
Это кстати С
@@KBAc56 смотря какой вуз. А вообще даже в моем я не припомню такой информации сам читал.
1000 лет не видел людей которые используют метод format() вместо fстрок
я новичок и про этот метод вообще не слышал, даже гуглить пошёл, всегда пользовался f-строками.
формат позволяет вывести красивый вывод -) Не более
мб ввести . после числа, которая предполагает 99.99999999999 точность?
Это получаеться, что в пятерочке на кассе не кассир наябывает?
На кассах гораздо удобнее числа хранить в целочисленном виде, как количество копеек (т.к. копейка неделима)
Почему мантисса имеет целую часть в примере с 0.075? Разве нормальзованное число не равно 0.75*10^(-1)?
В стандартном виде число всегда имеет ненулевую первую цифру - именно для неё указывается порядок, т.е. 0.075 = 7.5⋅10⁻² - порядок величины равен -2.
Но вообще у термина "мантисса" два значения: для нормализованной записи a⋅10ᵖ она удовлетворяет условию 1 ≤ a < 10, а для таблиц десятичных логарифмов lg(a⋅10ᵖ) = p + lg(a) = p + m, где 0 ≤ m < 1 - дробная часть десятичного логарифма.
@@allozovsky , понятно, а почему мантисса нормализованного двоичного числа всегда имеет 1 в начале? Например, 5.6 = 101,10011001100=1,0110011001100×2^2
@@user-zf7gz6wm8i По той же причине: в системе счисления с основанием b стандартный вид числа имеет вид a⋅bᵖ, поэтому в двоичной системе мантисса будет удовлетворять условию 1 ≤ a < b или 1 ≤ a < 2, т.е. целая часть мантиссы всегда будет равна 1.
@@allozovsky я поражена тем, что чел с ютуба помог мне ответить на вопрос быстрее и понятнее, нежели чем 2 преподавателя в университете, герою слава!
Я то помню старые времена про минутку земли ...
А теперь минутка рациональный вопрос:
Почему ни кто не задумался о неправильности метода вычисления двоичного перевода числа из десятичного или о неправильности метода перевода числа из десятичного в двличное, если применяя методы в прямом и обратном направлении, получаются разные результаты. Фактически - теряются данные. Более того, метод перевода числа из десятичной в двоичную и метод перевода числа из двоичной в десятичную, должны быть взаимообратными. Однако, если применение обратного преобразования над прямым преобразованием не даёт изначального числа, следует что сами методы не взаимообратны.
Так почему же всем на это плевать?
Метод правильный просто эти эффекты проявляются из-за основания системы счисления это как небезызвестный пример почему двенадцатиричная(с оснонованием 12) лучше десятичной(с основанием десять, число 1/3 в десятичной 0,333333(3) те бесконечная дробь, в двенадцатиричной просто 0,4
Вычислительная техника работает на двоичной логике потому что строить вычислительную технику да системах с другим основание можно но сложно и дорого, и все равно это будет в какомто сымысле костыль надстройка над двоичной
А что мы здесь счЕтали (счёт)?
Числа это условные символы, которых не существует в природе.
3 яблока минус 6 яблок = ? яблок.
ты должен мне 3 яблока
чЕт и чИт(а) чередующиеся корни. Если после корня есть "а", в корне пишется "и"
@@ВячеславРустамян-н2х ты "государству" за то много должен, я прям щас отдам тебе яблоки, а ты должен фантики с условными цифрами.
На одной золотой монете написано
"10 ЗОЛОТЫХ МОНЕТ"
"БАНК РОСИ"
ХА ХА
@@semgachannel6282 а что счИтали то?
Вы не искали это видео оно само вас нашло
Пересмотрел 3 раза, и всё равно не понял :/
Пересматриваю уже 4 раз 😅
Мой крошечный мозг не может переварить это...
чувствую себя стримершой из мема
-сложна! сложна!
🎉
насколько я понял - из двоичной записи изза ограниченного количества символов отбрасывается "конец" - оттуда и погрешность в районе 16го разряда дробной части
а во всем виноваты устаревшие технологии
которые продолжают эксплуатироваться изза устаревшего ПО которое никто не хочет переписывать или предоставлять аналоги
Виноваты не устаревшие технологии, а несовершенство двоичной логики в принципе. Это можно исправить увеличивая разрядность системы, только её нельзя повышать бесконечно, иначе даже 2+2 будет вычисляться кучу времени.
а можно побольше видео??🤤🤤
Не обязан
@@Manzz2 оффнись тело
2:20 не так уж сильно я хотел видео посмотреть
-Это ошибка унесла жизни-
Я имел эту проблему ещё 2 года назад.... Где ты был 😂 😂 😂 😂
Я сразу понял что ошибка в умножении на 1,15
мне одному напоминает это версии игр
в порядке возрастания
Вся суть расхождений в бухгалтерских программах разных фирм...вечно 1 копейка не идёт
там должны использоваться числа высокой точности. Копейка не сходиться это обычно округления + последовательно операций. Еще есть метод округления. Например в "банковское", где 1.5==1
5:35 единицу*
Э.... нет?
никуя не понял но интересно,лайк подпись
как это всё?
русский TED, наконец то
Не плохо, не плохо