#prog #rust #math #article
How hard can generating 1024-bit primes really be?
Автор последовательно усложняет код, начиная с генерации случайных простых u16 и заканчивая обозначенной в заголовке целью, попутно создавая и оптимизируя собственную длинную арифметику
How hard can generating 1024-bit primes really be?
Автор последовательно усложняет код, начиная с генерации случайных простых u16 и заканчивая обозначенной в заголовке целью, попутно создавая и оптимизируя собственную длинную арифметику
Glitchcomet
How hard can generating 1024-bit primes really be? | glitchcomet
❤7
#prog #math #gamedev
How I Found A 55 Year Old Bug In The First Lunar Lander Game
(thanks @itpgchannel)
How I Found A 55 Year Old Bug In The First Lunar Lander Game
(thanks @itpgchannel)
Martin C. Martin
How I Found A 55 Year Old Bug In The First Lunar Lander Game
Update: This kinda blew up! Featured in Hacker News, Ars Technica and PC Gamer, among others. Just months after Neil Armstrong’s historic moonwalk, Jim Storer, a Lexington High School student…
👍2
optorepost
Шикарное видео про обучение нейронки балансированию двойного маятника. Обучается через генетический алгоритм. Вроде бы простая задача, простое решение, но очень глубоко. А в какой-то момент автор придумал гениальное решение, когда его система перестала обучаться.…
#prog #math #video
Больше всего меня удивило следующее:
Первые решения автора использовали скорость перемещения каретки в качестве выходного параметра (ещё для первой части с уравновешиванием одинарного маятника). В качестве fitness function использовалась очень простая вещь: единица счёта начислялась за каждую секунду симулированного времени, во время которой конец маятника находился достаточно высоко. С таким подходом ему удалось сконструировать решение, но для получения эстетически удовлетворительных результатов — без лишней дёрганности — ему пришлось модифицировать fitness function, чтобы она штрафовала решения за ненулевую угловую скорость маятника и за отклонение от серединного положения.
В комментариях к первому видео автора справедливо заметили, что использование скорости в качестве выходного параметра фактически означает бесконечное ускорение и потому нефизично и нереалистично. В конце второго видео автор попробовал подход, при котором в качестве выходного параметра используется ускорение каретки вместо скорости — разумеется, скорость каретки пришлось добавить в качестве входного параметра для нейросети. В итоге получилось рабочее и при этом не дёрганное решение — и для его достижения было достаточно первой, самой простой формы fitness function.
Больше всего меня удивило следующее:
Первые решения автора использовали скорость перемещения каретки в качестве выходного параметра (ещё для первой части с уравновешиванием одинарного маятника). В качестве fitness function использовалась очень простая вещь: единица счёта начислялась за каждую секунду симулированного времени, во время которой конец маятника находился достаточно высоко. С таким подходом ему удалось сконструировать решение, но для получения эстетически удовлетворительных результатов — без лишней дёрганности — ему пришлось модифицировать fitness function, чтобы она штрафовала решения за ненулевую угловую скорость маятника и за отклонение от серединного положения.
В комментариях к первому видео автора справедливо заметили, что использование скорости в качестве выходного параметра фактически означает бесконечное ускорение и потому нефизично и нереалистично. В конце второго видео автор попробовал подход, при котором в качестве выходного параметра используется ускорение каретки вместо скорости — разумеется, скорость каретки пришлось добавить в качестве входного параметра для нейросети. В итоге получилось рабочее и при этом не дёрганное решение — и для его достижения было достаточно первой, самой простой формы fitness function.
❤🔥1👍1
#algo #math #video
О том, как вывести формулу, описывающую распределение ещё не отсортированной части массива при сортировке пузырьком.
youtu.be/Gm8v_MR7TGk
О том, как вывести формулу, описывающую распределение ещё не отсортированной части массива при сортировке пузырьком.
youtu.be/Gm8v_MR7TGk
YouTube
The Bubble Sort Curve
A derivation of the curve that is approximated by a common visualization of the bubble sort diagram.
Read the full proof on my site: https://linesthatconnect.github.io/blog/a-rigorous-derivation-of-the-bubble-sort-curve/
After uploading, I learned that…
Read the full proof on my site: https://linesthatconnect.github.io/blog/a-rigorous-derivation-of-the-bubble-sort-curve/
After uploading, I learned that…
🔥8🤔2👍1
#math #video
How good is advantage in D&D?
Видео, которое со всех сторон рассматривает статистические эффекты преимущества и помехи на броски в Dungeons&Dragons — в частности, пытается прикинуть, каким модификатором их можно заменить. Если вам непонятны термины выше — спокойно, у видео есть вводная, которая это всё объясняет.
How good is advantage in D&D?
Видео, которое со всех сторон рассматривает статистические эффекты преимущества и помехи на броски в Dungeons&Dragons — в частности, пытается прикинуть, каким модификатором их можно заменить. Если вам непонятны термины выше — спокойно, у видео есть вводная, которая это всё объясняет.
YouTube
How good is Advantage in D&D?
Can we equate rolling with advantage in Dungeons and Dragons to a flat modifier? Let's ask this kenku we pulled off the street. Oh no, they're going on a long-winded tangent on probability...
(Note for commenters: I am aware that rolling a 1 is automatically…
(Note for commenters: I am aware that rolling a 1 is automatically…
🔥3
Forwarded from Разработка ждёт балета
Тут, оказывается, биг дил случился. Доказали, что BB(5) = 47,176,870. Практического смысла в Busy Beaver не очень много, прямо скажем, но всё равно интересно.
- Тут можно почитать хорошую статью с деталями, историей и т.п.
- Тут само объявление об успехе
- А тут хорошие посты про это же, но кратко и прямо в телеге
#cs #math #science
- Тут можно почитать хорошую статью с деталями, историей и т.п.
- Тут само объявление об успехе
- А тут хорошие посты про это же, но кратко и прямо в телеге
#cs #math #science
👍9
Блог*
#prog #suckassstory про невообразимо глупую ошибку: https://t.iss.one/avvablog/2317
Напомнило, кстати, про #prog #math #article Turns are Better than Radians, которая аргументирует, что использование радианов для тригонометрических функций не особо осмысленно. В качестве одного из аргументов автор приводит тот факт, что одна из реализаций синуса для AVX (как и "pretty much every fast trig library", но тут уже предлагается верить автору на слово) первым шагом в вычислениях фактически делит аргумент на π, что зачастую является немедленной отменой умножения на π на вызывающей стороне.
Computer, Enhance!
Turns are Better than Radians
Switching away from radians makes code simpler, faster, and more precise.
❤7👍2
#math #article
Breaking CityHash64, MurmurHash2/3, wyhash, and more...
<...>
As a teaser, this article explains how you can generate strings such as these, thousands per second:
I also show how you can create some really funky pairs of strings that can be concatenated arbitrarily such that when concatenating k strings together any of the 2^k combinations all have the same hash output, regardless of the seed used for the hash function:
(thanks @daily_ponv)
Breaking CityHash64, MurmurHash2/3, wyhash, and more...
<...>
As a teaser, this article explains how you can generate strings such as these, thousands per second:
cityhash64("orlp-cityhash64-D-:K5yx*zkgaaaaa") == 1337
murmurhash2("orlp-murmurhash64-bkiaaa&JInaNcZ") == 1337
murmurhash3("orlp-murmurhash3_x86_32-haaaPa*+") == 1337
farmhash64("orlp-farmhash64-/v^CqdPvziuheaaa") == 1337I also show how you can create some really funky pairs of strings that can be concatenated arbitrarily such that when concatenating k strings together any of the 2^k combinations all have the same hash output, regardless of the seed used for the hash function:
a = "xx0rlpx!xxsXъВ"
b = "xxsXъВxx0rlpx!"
murmurhash2(a + a, seed) == murmurhash2(a + b, seed)
murmurhash2(a + a, seed) == murmurhash2(b + a, seed)
murmurhash2(a + a, seed) == murmurhash2(b + b, seed)
a = "!&orlpՓ"
b = "yǏglp$X"
murmurhash3(a + a, seed) == murmurhash3(a + b, seed)
murmurhash3(a + a, seed) == murmurhash3(b + a, seed)
murmurhash3(a + a, seed) == murmurhash3(b + b, seed)(thanks @daily_ponv)
🤔7🔥4👎1