Как по номеру месяца посчитать количество дней в нем?

tproger.ru — отличная статья
Новости, Разное | oneman 20:37 08.09.2018
39 комментариев | 41 за, 2 против |
#1 | 20:39 08.09.2018 | Кому: Всем
Нахера?

Лайфхак
По костяшкам пальцев удобнее!
#2 | 20:40 08.09.2018 | Кому: Всем
ПЛЯ!...
#3 | 20:41 08.09.2018 | Кому: mici
> ПЛЯ!...

Не, БЛЯяяяя!...
Crypt
Ебанько »
#4 | 20:43 08.09.2018 | Кому: Всем
[О_О]
Crypt
Ебанько »
#5 | 20:45 08.09.2018 | Кому: Tellur
> Лайфхак
> По костяшкам пальцев удобнее

Ты не можешь запомнить 12 чисел?
#6 | 20:48 08.09.2018 | Кому: Crypt
> Ты не можешь запомнить 12 чисел?

А зачем, проще посчитать по костяшкам.
Апрель, Сентябрь и октябрь не помню.
Crypt
Ебанько »
#7 | 20:51 08.09.2018 | Кому: Tellur
Не хотел бы я с тобой в голодный год на необитаемом острове очутиться!!!
#8 | 20:54 08.09.2018 | Кому: Tellur
Лично мне больше нравится решение этой задачи аппроксимацией при помощи полинома.

(-11/907200)x^11+(163/181440)x^10+(-37/1260)x^9+(13481/24192)x^8+(-2055371/302400)x^7+(240683/4320)x^6+(-28268521/90720)x^5+(85774775/72576)x^4+(-446998571/151200)x^3+(46351537/10080)x^2+(-221017/56)x+1416

Попробуй на костяшках!!!
#9 | 20:55 08.09.2018 | Кому: Tellur
> По костяшкам пальцев удобнее!

Самая простая и быстрая функция -- это выборка из массива с количеством дней в году.
#10 | 20:57 08.09.2018 | Кому: dse
>Самая быстрая функция -- это выборка из массива с количеством дней в году.

Ясен пень! Статья то не об этом.
pks_ru
шутник »
#11 | 20:59 08.09.2018 | Кому: Всем
С одной стороны - интересно с методологической точки зрения - стремление решать задачи в общем виде. Ну и просто как задачка для школы - сойдет.
С другой стороны - табличный способ задания функции никто не отменял. Более того, он будет более оптимальным по скорости вычисления, по занимаемой памяти и по вероятности допустить ошибку.

Кстати, вставить туда детектор високосного года - раз плюнуть. Почему не сделано - непонятно.
#12 | 21:05 08.09.2018 | Кому: dse
> Самая простая и быстрая функция -- это выборка из массива с количеством дней в году.

"Папа, а с кем ты сейчас разговаривал?"
#13 | 21:05 08.09.2018 | Кому: oneman
> Лично мне больше нравится решение этой задачи аппроксимацией при помощи полинома.
>
> (-11/907200)x^11+(163/181440)x^10+(-37/1260)x^9+(13481/24192)x^8+(-2055371/302400)x^7+(240683/4320)x^6+(-28268521/90720)x^5+(85774775/72576)x^4+(-446998571/151200)x^3+(46351537/10080)x^2+(-221017/56)x+1416
>

Нахера?
Если ты математик и прешься от циферок - вперед!

Мне проще по-колхозному!
#14 | 21:07 08.09.2018 | Кому: Tellur
три восклицательных знака видишь?
#15 | 21:08 08.09.2018 | Кому: Crypt
> Не хотел бы я с тобой в голодный год на необитаемом острове очутиться!!!

Это правильно - я тебя съем!
#16 | 21:24 08.09.2018 | Кому: pks_ru
> Кстати, вставить туда детектор високосного года - раз плюнуть. Почему не сделано - непонятно.

потому что в ТЗ сказано, что аргументом функции является один параметр.

зы
в целом, решение задачи демонстрирует, почему процессоры всё быстрее, а софт всё медленнее.
#17 | 21:31 08.09.2018 | Кому: Всем
unsigned dpm (unsigned m) { /* m 1..12 */ return (m==2)?28:(30+((m-1)%7)%2+1); }
#18 | 21:35 08.09.2018 | Кому: Tellur
> "Папа, а с кем ты сейчас разговаривал?"

С тобой. Я имел в виду, что человеку проще по костяшкам, а компьютеру -- по справочному массиву.
#19 | 21:39 08.09.2018 | Кому: Tellur
> Нахера?
> Если ты математик и прешься от циферок - вперед!

потому что у полинома, в отличие от, есть везде производная, и это охуенно!


> Мне проще по-колхозному!


есть басня про желудя со свиньями.
в ней сказано, что пока человеки считают по костяшкам, хер им, а не сфера дайсона!
#20 | 21:42 08.09.2018 | Кому: zero
> потому что у полинома, в отличие от, есть везде производная, и это охуенно!

Вот кстати да! Многие в наше тяжелое время об этом забывают!!!
pks_ru
шутник »
#21 | 22:00 08.09.2018 | Кому: Всем
У меня вотт такая формулка получилась f(n)=28+(((62648012>>(n<<1)) & 3)
#22 | 22:14 08.09.2018 | Кому: pks_ru
Сразу видно программиста микроконтроллеров!!!
#23 | 22:17 08.09.2018 | Кому: dse
> unsigned dpm (unsigned m) { /* m 1..12 */ return (m==2)?28:(30+((m-1)%7)%2+1); }

С тернарным оператором не арифметично!
#24 | 22:18 08.09.2018 | Кому: Tellur
> > Не хотел бы я с тобой в голодный год на необитаемом острове очутиться!!!
>
> Это правильно - я тебя съем!

Судья подсудимому: Нет, я конечно все понимаю, такой стресс, вы оказались вдвоем на необитаемом острове, но объясните - почему вы убили своего напарника и начали его есть через полчаса после крушения?!
#25 | 06:16 09.09.2018 | Кому: Всем
[censored]
#26 | 06:19 09.09.2018 | Кому: dse
> выборка из массива

Это пааамять занимает!!!
#27 | 06:22 09.09.2018 | Кому: zero
> решение задачи демонстрирует, почему процессоры всё быстрее, а софт всё медленнее

Это каким же образом?
#28 | 08:42 09.09.2018 | Кому: dse
> Самая простая и быстрая функция -- это выборка из массива с количеством дней в году.

Ещё компактнее и не сильно медленнее - хранить двухбитовые приращения к 28-ми для каждого месяца.
#29 | 10:04 09.09.2018 | Кому: oneman
> Лично мне больше нравится решение этой задачи аппроксимацией при помощи полинома.

Вот сразу видно, что человек не зря учился! А то разведут программистов, которые табличку заданную функцию нормально аппроксимировать не могут.

Пс: к сожалению, "!!!" поставить рука не поднимается (((
#30 | 11:08 09.09.2018 | Кому: Freund
> Это каким же образом?

точно не скажу, во сколько десятков(или уже сотен) раз "дюжина математических операций и пара функций " тормознее "доступа к элементу массива по индексу"

зы
второго дня что-то пилил под 6 билдером.
поначалу не мог воткнуть, почему при сборке ничего не происходит.
потом догнал, что процесс компиляции заканчивался еще до того, как я отпускал кнопку компиляции...
#31 | 11:39 09.09.2018 | Кому: господин ПЖ
да это просто вечеринка программистов микроконтроллеров!!!
#32 | 17:19 09.09.2018 | Кому: oneman
> да это просто вечеринка программистов микроконтроллеров!!!

собственно, у [pks_ru] это изящно изложено.
#33 | 18:01 09.09.2018 | Кому: господин ПЖ
> Ещё компактнее и не сильно медленнее - хранить двухбитовые приращения к 28-ми для каждого месяца.

[Восхищенно] Сенсей!!
#34 | 18:35 09.09.2018 | Кому: Всем
Моно немного флуда? Камрады, а бывает так чтобы опубликованную новость через несколько часов удалили непонятно кто и никаких предупреждений?
#35 | 19:38 09.09.2018 | Кому: Юрий Еременко
> Камрады, а бывает так чтобы опубликованную новость через несколько часов удалили непонятно кто и никаких предупреждений?

Ага. У меня так снесли картинку "бэтмен разбрасывает конфетти".
#36 | 21:15 09.09.2018 | Кому: totoshka
> Ага. У меня так снесли картинку "бэтмен разбрасывает конфетти".

У меня была новость, вышел большой спор, хоть и без мата... И удалили. Нету и всё. Я думал. хоть говорят чего - типа вот, предупреждаем... А нет.
pks_ru
шутник »
#37 | 07:43 10.09.2018 | Кому: oneman
> Сразу видно программиста микроконтроллеров!!!

Наверное мог бы быть. Но микроконтроллеры у меня в объеме не превышающем ардуину, и вообще я программизмом не занимаюсь лет 15 кроме баловства с этой же самой ардуиной. Но раньше писал на С с асмовскими вставками. Как говорится, привычка осталась. Я под полуось на рексе потом так же писал :)

А может это прикладная математика так работает, хрен его знает :-D
#38 | 11:56 10.09.2018 | Кому: pks_ru
> Наверное мог бы быть. Но микроконтроллеры у меня в объеме не превышающем ардуину, и вообще я программизмом не занимаюсь лет 15 кроме баловства с этой же самой ардуиной. Но раньше писал на С с асмовскими вставками. Как говорится, привычка осталась. Я под полуось на рексе потом так же писал :)
>
> А может это прикладная математика так работает, хрен его знает :-D

Ардуина С, Ассемблер, Полуось — это и есть Иисус Хри... программист микроконтроллеров!!!
#39 | 12:49 10.09.2018 | Кому: Юрий Еременко
> Нету и всё. Я думал. хоть говорят чего - типа вот, предупреждаем... А нет.

Намажься зеленкой и жди.
Войдите или зарегистрируйтесь чтобы писать комментарии.