- 1
- 2
- 3
def days(index)
((15662003>>(2*(index-1)))&3) + 28
end
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−114
def days(index)
((15662003>>(2*(index-1)))&3) + 28
end
Вычисление количества дней в месяце по индексу.
SemaReal 26.02.2018 00:06 # +1
3.14159265 26.02.2018 01:35 # +1
ЦарьПрограммист на Си может писать на любом языке как на Си.
SemaReal 26.02.2018 18:00 # 0
inho 26.02.2018 19:45 # 0
SemaReal 26.02.2018 20:21 # 0
а в чем разница? микроконтроллерщик пишет на VHDL/Verilog?
inho 26.02.2018 21:01 # 0
SemaReal 26.02.2018 21:36 # 0
roman-kashitsyn 26.02.2018 00:21 # 0
inho 26.02.2018 00:32 # 0
roman-kashitsyn 26.02.2018 00:45 # 0
3.14159265 26.02.2018 01:39 # +1
Думаю в такой записи код становится понятным и самоочевидным.
3.14159265 26.02.2018 01:56 # +1
Пока лень думать, но вот прототип, с возможностью оптимизации
3.14159265 26.02.2018 02:01 # +2
3.14159265 26.02.2018 02:10 # +1
Тернарник будет короче, но это читерство, ибо БРАНЧИНГ
bormand 26.02.2018 06:37 # +1
3.14159265 26.02.2018 15:54 # +1
:))
v4. Избавился от умножения.
Хотел сделать красивее: 32-((1<<i)&4)-...
Февраль становится проще, но троеточие сильно усложняется.
f=(1<<i)&4;
roman-kashitsyn 26.02.2018 15:58 # +1
Добавьте поддержку високосного года.
3.14159265 26.02.2018 16:16 # 0
roman-kashitsyn 26.02.2018 16:18 # +1
3.14159265 26.02.2018 16:20 # +1
Надо сначала деление на константы убрать, а то будет тупить!
3.14159265 26.02.2018 16:48 # +1
gost 26.02.2018 20:44 # +1
inho 26.02.2018 21:05 # 0
3.14159265 26.02.2018 21:53 # 0
gost 26.02.2018 22:01 # +1
Хм, интересно, можно ли существенно зожать асмовыхлоп с учётом високосного года?
3.14159265 26.02.2018 22:06 # +2
Ахаха, смотрите свищ таки в lookup-константу запихунл как и у меня в v1 http://govnokod.ru/18439#comment402263
>!!(i-2)*(2+!!(5546&(1<<i)))+28
3.14159265 26.02.2018 21:27 # +1
> jne .L3
> jne .L4
Говорю же: намеренно избегал тернарников => условных переходов. БРАНЧИНГ
SemaReal 26.02.2018 21:29 # +1
3.14159265 26.02.2018 21:36 # +1
Причём за счёт раннего выхода jmpы наверняка будут работать лучше (много инструкций скипаем).
SemaReal 26.02.2018 21:42 # +1
MRI наверняка умеет JIT, но я не знаю не перефигачит ли он ваш код
1024-- 26.02.2018 20:52 # +1
3.14159265 26.02.2018 21:31 # +1
По сути это может быть даже какой-то ранний RISC-асм со сдвигами, сложениямии и побитовыми инструкциями.
Вот пидорасить lookup-таблицы в нечитаемый формульный вид — тут вопрос, и это основная часть творчества. Но и это автоматизируется.
На последних штеудах не только умножения за 4 такта, но уже и деления довольно шустрые.
3.14159265 26.02.2018 22:20 # +2
Осторожно! Данные формулы могут быть опасны для вашего здоровья
3.14159265 26.02.2018 22:59 # +1
for (i=1;i<10;++i){console.log(i,f2(i))}
inho 26.02.2018 23:35 # 0
3.14159265 26.02.2018 23:40 # +1
Давным-давно, когда я учился в универе, нам препод рассказывал историю.
Будто в 70х или 80х был у него был какой знакомый, который по идейным соображениям начисто отвергал циклы.
То ли он считал что "они замедляют программы", то ли хз. Короче loop considered harmful.
Мы еще тогда знатно поржали с него. Но я вот подумал: можно же написать программу не только без циклов (джампов назад), но и вообще без условных переходов.
3.14159265 26.02.2018 23:48 # +1
Фактически её можно рассматривать как функцию, считывающую ооочень длинное число a и записывающее вместо него b.
RAM_state=program(RAM_state)
Потому любой конечный алгоритм (с остановом), наверянка можно превратить в длииииную формулу, которая преобразует память.
SemaReal 27.02.2018 00:14 # 0
g0_1494089135835 27.02.2018 00:47 # 0
3.14159265 27.02.2018 19:43 # 0
Хаха! Как раз и подумал что в итоге редуцирования и обфускации кода прийду к чему-то похожему на нумералы Чёрча.
Однако проблема всех этих лямбда-питухов в замене циклов на рекурсию. Y-кобенатор цикла не слаще.
inho 27.02.2018 20:32 # 0
3.14159265 27.02.2018 22:45 # 0
inho 27.02.2018 23:05 # 0
Реализуй минимизацию.
P.S. Или mul - это оно и есть?
3.14159265 27.02.2018 23:53 # 0
Мне нравится как в лямбдопитушатной теории из мельчайшей, простейшней, базовой функции и капельки рекурсии выводят всю арифметику.
И еще как шланг это хавает и превращает в оптимизированный x64.
1024-- 27.02.2018 09:15 # 0
3.14159265 27.02.2018 19:34 # +1
Ты ему цикл
Причём без эвристик и заранее заложенных случаев.
Ты ему цикл
Оно тебе формулу Бине
Ты ему факториал, оно тебе гамма-функцию.
inho 27.02.2018 19:39 # 0
3.14159265 27.02.2018 19:40 # 0
Искусственный интелект пятиклассника. вроде умеет.
3.14159265 27.02.2018 22:46 # 0
lakrVOg 25.08.2021 05:29 # 0