А откуда в центре возьмется бесконечное давление, если количество частиц конечно и их скорость конечна?
Тут вообще не совсем понятно, что такое давление. Давление подразумевает реакцию опоры в обратном направлении, а тут воздействие в обратном направлении невозможно.
“упали в сингулярность” выглядит как “магически исчезли”.
- зато давление бесконечно - Никаких создающих гравитацию частиц там нет.
Тогда и бесконечного давления там нет. Я отвечал на комментарий, где давление подразумевается.
Чёрная дыра может образоваться в месте столкновения гравитационных волн.
Если мы колебание электромагнитного поля считаем частицей, то и колебание гравитационного надо считать частицей. Они переносят энергию и могут притягиваться. А вы говорите нету.
Отрезки получаются [0 - 0,25) [0,25 - 0,5) [0,5 - 0,75) [0.75 - 1,0). Правый край не включается в любом отрезке, иначе одна точка будет принадлежать 2 отрезкам, поэтому и 1 тоже не включается.
Поэтому для N бит получается деление именно на 2^N-1
Согласен, просто надо понимать, что это подходит не для всех случаев. Поэтому неправильно говорить “Правильно делать только так”.
Почему вакуумное? Частицы там есть и создают гравитацию.
Смысл сигнулярности в том, что она подразумевает бесконечные значения, в первую очередь гравитацию. Мой вопрос был в том, почему говорят, что она в центре, когда в центре гравитация должна быть 0.
Не совсем. Тут каждому целому числу соответствует какой-то отрезок в диапазоне [0…1). 1 именно не включается, ему соответствует значение 256. Если мы включаем левый край 0, то для равномерности это правило должно соблюдаться для всех подотрезков. Иначе будет неопределенность, одна точка будет принадлежать 2 отрезкам. 0 мапится на подотрезок [0, 1/256). 128 на [128/256, 129/256). 255 на [255/256, 256/256).
могут образовывать чёрные дыры без сингулярности в центре
Откуда идея, что в центре есть сингулярность? Если мы считаем, что материя занимает ненулевой объем, то в центре черной дыры гравитация 0, так как окружающая материя тянет одинаково во все стороны.
но по вашим формулам “максимальное значение” будет не 1.0
А почему оно должно быть именно 1.0? Для двух десятичных разрядов ведь максимальное значение 99, а не 100. Почему тут должно быть по-другому?
Чтобы проверить, а максимальная ли скорость, предлагается сравнивать с тремя значениями, вместо одной единицы?
Ну у вас же на входе могут быть 3 разных значения. Прямое сравнение с float единицей вообще делать неправильно, нужно считать дельту и сравнивать что она меньше заданной. И вот как раз заданная дельта тут зависит от точности датчика, она равна 1 деленное на количество значений в датчике.
проблема “белый больше не белый”
Она идет из того, что мы добавили новые разряды, а чем их заполнять неизвестно. Тут нет одного правильного решения, заполнить можно по-разному. Представьте, что это не RGB, а другой датчик, и выходные значения могут быть значения больше 1, например от 0 до 4. Тогда 1023 / 255 = 4.012, когда должно быть 3.996. 256, 512, 768 должны переходить в 1.0, 2.0, 3.0, а они переходят в 1.004, 2.008, 3.011.
Более того, если мы считаем 255 чистым белым, то идеально серым надо считать 127.5.
Хм, тут соглашусь. Если у нас 2 разряда, 00 черный, 11 белый, то 10 будет не идеально серый, иначе бы тогда на одно значение между ними приходилась половина диапазона цвета. В общем, как я сказал ниже, для RGB это подходящий вариант, но нужно понимать, что он может подходить не для всех случаев.
Теперь попробуйте так же для строго серого 128 0x80. По логике это должно быть 0.5 = 128/256 = 32768 / 65536.
128 / 255 = 0.501961 0.501961 * 65535 = 32896 32896 - 32768 = 128 На 128 единиц съехало.
Если вы расширяете точность, то у вас одно изначальное значение соответствует 256 новым значениям. То есть все значения 65280…65535 соответствуют исходному 255. Информации о значениях этих разрядов изначально не было, поэтому нужно задать для них какое-то константное значение. Если их обнулить, то получится 65280. Если сделать 1, то черный посветлеет. В ваших расчетах получается, что они заполняются единицами постепенно, то есть 0 идет к левому краю этого диапазона из 256 новых значений, а 255 к правому, для серого соответственно получилось 128. Если цель перевести максимально белый и черный в максимально белый и черный, ну согласен, подходящий вариант. Но надо понимать, что не для всех расчетов это подходит.
а на практике чисто белый цвет (255) - это и есть “круглое” число
Нет, круглое число в двоичной системе счисления это степень двойки.
максимальное значение диапазона
Вот и 0.99 это максимальное значение диапазона. Если вы включаете 0, значит не включаете 1.
Представьте, что вы не увеличиваете точность, а уменьшаете. То есть вам нужно замапить исходные 256 значений на 2 с шагом по 1/2. С вашим подходом все значения кроме 255 превратятся в 0, когда должно быть 128 туда и 128 сюда.
Представьте, что у вас не 8 бит, а 2, то есть 4 возможных значения. Поделите отрезок 0…1 на 4 равные части. Как вы их будете обозначать на числовой прямой?
Также ваш алгоритм неустойчив к увеличению точности входных данных. Было 8 бит, стало 16. По логике надо мапить на 1 и выше значения когда старший байт ненулевой, а у вас одно значение мапится когда нулевой.
Тогда не будет цвета, который поглощает 100% падающего на него света.
В RGB значение, которое излучает максимум белого цвета это 255 из 256 возможных значений. С другим количеством значений принцип тот же самый. С 2 десятичными знаками после запятой это будет 100 значений от 0.00 до 0.99.
Потому что количество возможных значений в байте 256. Я же говорю, представьте, что у вас не 256 значений, а 10, от 0 до 9. В диапазон от 0 до 1 их нужно переводить делением на 10, будет 10 значений с шагом по 0.1. Незакрытые они чтобы показать связь - 256 значений, но значение 256 не входит в диапазон, потому что отсчет начинается от нуля, первый элемент это 0.
А диапазон [0, 255] в диапазон [0,1]
Зачем вам в результате круглая единица, если в исходных значениях круглого числа нет? Вам надо сделать так (числа в двоичной системе):
// было
min: 00000000
max: 11111111
// стало
min: 0.00000000
max: 0.11111111
0.11111111 это не 1.00000000. Делать круглую единицу конечно можно, только зачем?
Диапазон [0, 256) в диапазон [0, 1)нужно переводить делением на 256. Да, у вас в результатах не будет ровно 1, это и не нужно. Так же как 10 цифр это от 0 до 9, а не от 0 до 10.
Это я вам объясняю, что бесконечностей быть не должно.
А откуда в центре возьмется бесконечное давление, если количество частиц конечно и их скорость конечна?
Тут вообще не совсем понятно, что такое давление. Давление подразумевает реакцию опоры в обратном направлении, а тут воздействие в обратном направлении невозможно.
“упали в сингулярность” выглядит как “магически исчезли”.
Тогда и бесконечного давления там нет. Я отвечал на комментарий, где давление подразумевается.
Если мы колебание электромагнитного поля считаем частицей, то и колебание гравитационного надо считать частицей. Они переносят энергию и могут притягиваться. А вы говорите нету.
Отрезки получаются
[0 - 0,25) [0,25 - 0,5) [0,5 - 0,75) [0.75 - 1,0). Правый край не включается в любом отрезке, иначе одна точка будет принадлежать 2 отрезкам, поэтому и 1 тоже не включается.Согласен, просто надо понимать, что это подходит не для всех случаев. Поэтому неправильно говорить “Правильно делать только так”.
Куда ж они девались-то?) Была нейтронная звезда, потом она превратилась в черную дыру. Куда исчезли все ее частицы?
Почему вакуумное? Частицы там есть и создают гравитацию.
Смысл сигнулярности в том, что она подразумевает бесконечные значения, в первую очередь гравитацию. Мой вопрос был в том, почему говорят, что она в центре, когда в центре гравитация должна быть 0.
Не совсем. Тут каждому целому числу соответствует какой-то отрезок в диапазоне [0…1). 1 именно не включается, ему соответствует значение 256. Если мы включаем левый край 0, то для равномерности это правило должно соблюдаться для всех подотрезков. Иначе будет неопределенность, одна точка будет принадлежать 2 отрезкам.
0 мапится на подотрезок
[0, 1/256).128 на
[128/256, 129/256).255 на
[255/256, 256/256).Количество частиц, составляющих черную дыру, конечно, значит и давление должно быть конечно.
Откуда идея, что в центре есть сингулярность? Если мы считаем, что материя занимает ненулевой объем, то в центре черной дыры гравитация 0, так как окружающая материя тянет одинаково во все стороны.
Согласен, строго серый это неправильное название. Но математически в границах диапазона это все-таки ровно 0.5.
“Ваш” в разговоре означает тот, который вы поддерживаете, а не только тот, который вы придумали.
Да, это хороший пример. Берем половину скорости. Значения 14 и 7 для первых двух ведь показывают ровно половину от максимальной?
14 / 28 = 0.5
7 / 14 = 0.5
63 / 127 = 0.496
64 / 127 = 0.504
У вас получается:
14 / 27 = 0.519
7 / 13 = 0.538
63 / 126 = 0.5
64 / 126 = 0.508
3 разных значения, а скорость одна и та же.
А почему оно должно быть именно 1.0? Для двух десятичных разрядов ведь максимальное значение 99, а не 100. Почему тут должно быть по-другому?
Ну у вас же на входе могут быть 3 разных значения. Прямое сравнение с float единицей вообще делать неправильно, нужно считать дельту и сравнивать что она меньше заданной. И вот как раз заданная дельта тут зависит от точности датчика, она равна 1 деленное на количество значений в датчике.
Она идет из того, что мы добавили новые разряды, а чем их заполнять неизвестно. Тут нет одного правильного решения, заполнить можно по-разному. Представьте, что это не RGB, а другой датчик, и выходные значения могут быть значения больше 1, например от 0 до 4. Тогда
1023 / 255 = 4.012, когда должно быть3.996.256, 512, 768должны переходить в1.0, 2.0, 3.0, а они переходят в1.004, 2.008, 3.011.Хм, тут соглашусь. Если у нас 2 разряда, 00 черный, 11 белый, то 10 будет не идеально серый, иначе бы тогда на одно значение между ними приходилась половина диапазона цвета. В общем, как я сказал ниже, для RGB это подходящий вариант, но нужно понимать, что он может подходить не для всех случаев.
Теперь попробуйте так же для строго серого 128 0x80. По логике это должно быть 0.5 = 128/256 = 32768 / 65536.
128 / 255 = 0.501961
0.501961 * 65535 = 32896
32896 - 32768 = 128
На 128 единиц съехало.
Если вы расширяете точность, то у вас одно изначальное значение соответствует 256 новым значениям. То есть все значения 65280…65535 соответствуют исходному 255. Информации о значениях этих разрядов изначально не было, поэтому нужно задать для них какое-то константное значение. Если их обнулить, то получится 65280. Если сделать 1, то черный посветлеет. В ваших расчетах получается, что они заполняются единицами постепенно, то есть 0 идет к левому краю этого диапазона из 256 новых значений, а 255 к правому, для серого соответственно получилось 128. Если цель перевести максимально белый и черный в максимально белый и черный, ну согласен, подходящий вариант. Но надо понимать, что не для всех расчетов это подходит.
9 для счетчика из одного десятичного разряда это и есть 100% мощности канала. Так же как 255 для счетчика из 8 двоичных разрядов.
Я не говорил про диапазон 0…256.
Нет, круглое число в двоичной системе счисления это степень двойки.
Вот и 0.99 это максимальное значение диапазона. Если вы включаете 0, значит не включаете 1.
Представьте, что вы не увеличиваете точность, а уменьшаете. То есть вам нужно замапить исходные 256 значений на 2 с шагом по 1/2. С вашим подходом все значения кроме 255 превратятся в 0, когда должно быть 128 туда и 128 сюда.
Представьте, что у вас не 8 бит, а 2, то есть 4 возможных значения. Поделите отрезок 0…1 на 4 равные части. Как вы их будете обозначать на числовой прямой?
Также ваш алгоритм неустойчив к увеличению точности входных данных. Было 8 бит, стало 16. По логике надо мапить на 1 и выше значения когда старший байт ненулевой, а у вас одно значение мапится когда нулевой.
Тогда не будет цвета, который поглощает 100% падающего на него света.
В RGB значение, которое излучает максимум белого цвета это 255 из 256 возможных значений. С другим количеством значений принцип тот же самый. С 2 десятичными знаками после запятой это будет 100 значений от 0.00 до 0.99.
Потому что количество возможных значений в байте 256. Я же говорю, представьте, что у вас не 256 значений, а 10, от 0 до 9. В диапазон от 0 до 1 их нужно переводить делением на 10, будет 10 значений с шагом по 0.1. Незакрытые они чтобы показать связь - 256 значений, но значение 256 не входит в диапазон, потому что отсчет начинается от нуля, первый элемент это 0.
Зачем вам в результате круглая единица, если в исходных значениях круглого числа нет? Вам надо сделать так (числа в двоичной системе):
0.11111111 это не 1.00000000. Делать круглую единицу конечно можно, только зачем?
Диапазон
[0, 256)в диапазон[0, 1)нужно переводить делением на 256. Да, у вас в результатах не будет ровно1, это и не нужно. Так же как10цифр это от0до9, а не от0до10.Комментарии статьи:
https://habr.com/kek/v2/articles/1061238/comments/?hl=ru
Комментарии пользователя:
https://habr.com/kek/v2/users/4external/comments?fl=en%2Cru&hl=ru&page=2
Есть вот такой URL, он возвращает данные в JSON:
https://habr.com/kek/v2/articles/1061238/?fl=ru&hl=ru