День теоремы Пифагора
Сегодня, 16.12.2020, отмечается день теоремы Пифагора. Он отмечается лишь тогда, когда сумма квадратов даты и месяца равна квадрату года. 16² + 12² = 20²
Праздник бывает не каждый год. Предыдущий день был 15.08.2017, а следующий будет 24.07.2025.
16/12/20
24/07/25
24/10/26
04/03/05
03/04/05
08/06/10
06/08/10
12/05/13
05/12/13
12/09/15
09/12/15
15/08/17
for ($i=0; $i<=365*100; $i++)
{
$d=date('d',time()+3600*24*$i);
$m=date('m',time()+3600*24*$i);
$y=date('y',time()+3600*24*$i);
if (($d*$d+$m*$m)==$y*$y) echo $d.'/'.$m.'/'.$y.'<br>';
}
Искал этот комментарий
Скорее программист пытается сказать, что заработки непостоянные. Потому что знаком "$" в нескольких языках объявляют переменную.
З.Ы. Не погромист, могу ошибаться
это php, на нём сайты пишут
Пикабу вроде тоже на php написан
А вот здесь его код проверить можно
https://paiza.io/projects/JF0JOupIG2uzfqI-ulNaaQ
Так фейсбук можно скопировать
А вот и идея для стартапа!
ПФ, был такой клиент,
Фамилия не Дуров?
Это как копировать ярлыки на дискету)
P. S. Не проверял работает ли с этими ключами, тупо скопипастил, но однажды так один лэндос копировал ради интереса.
Нет, это только фронтенд, в котором нет ничего секретного
Причем уже скомпилированный, а местами и минифицированный :)
Только фронт, бекенд вам никто не покажет
За монитор заглянуть надо
Нет, просто он php-шник
Этому пдатят мало, потому как он пишет хрень )
Ээ, блин, это выходит, что после 2026 года следующий раз праздник будет только в 2105 году? :(
А вы оптимист, еще до 2021 не дожили, а уже на 2105 засматриваетесь.
и с чего бы ему не дожить до 2021?
Питон в обсуждении выше на пару сообщений и есть наследник Бэйсика и Паскаля, простой народный язык для любых ОС, интуитивно понятный.
Паскаль и сейчас жив в составе Delphi и бесплатен, если вы с него не зарабатываете более 100 000$ в год ))
Наследник и нынешний обладатель технологии Embarcadero ломит адский ценник за то, что едва трепыхается и развивается почти никак.
Альтернативный Lazarus... Ну, open source частенько развивается крайне медленно, если нет коммерческого интереса. Также и тут вышло.
Сейчас ещё и Microsoft активно вливает бабло в свой .Net, который является прямым конкурентом Deplhi. Плюс, активное сообщество, которое развивает и поддерживает экосистему библиотек. У Delphi всего этого нет.
Так, что, увы и ах, но если вышеперечисленное не случится и здесь, то технология просто сгинет в анналах истории.
Даже 0.1% проектов это сотни тысяч программистов
1. С 2019 бесплатен, если не зарабатываете на Delphi более 100 000$ в год. А если зарабатываете 2000$ не сделают вас беднее, всё логично.
2. Цена не большая, сраный Инвентор рисовать детальки 2500$ в год подписка, для всех. Некоторые покупают даже для хобби проектов.
По сути это и есть Delphi, они купили разработчиков и по внешнему виду даже видно что по сути одно и то же. Только .Net требует, а Дельфи компилируется в быстрый код. Один exe файл и больше ничего не требует.
Даже динозавры Фортран, Ада, Кобол еще используются.
А так да, Питон кажется более универсальным, все на него думаю перейдут как на стандарт программирования.
В перечисленных тобой языках строки и число разные типы переменных, у меня получаются строки 02, 03, 04, перемножают с собой до 4, 9, 16 и успешно складываются для сравнения формулы. на выходе дата с нулями. delphi у меня стоит, но:
- его надо запускать
- я на нем не работал год, а коммерческой разработки лет 5 точно не было, но даже сейчас помню что дата там объект, вы предлагаете для такой простой задачи использовать ООП?
в целом согласен, надо было javascript использовать, чтобы любой мог в консоли пикабу проверить.
Delphi не обязательно как ООП использовать, 3 вложенных цикла FOR и всё.
Зачем вам столько переменных? Неуж-то "стабильность" наскучила?
Корявая версия на Python (после 2026 праздников не будет!)
https://codepen.io/akeinhell/pen/QWKvaOq?editors=0010
Вот вам на JS с учетом високосных :-)
А чего она корявая? Лучше и не придумать.
Согласен – вполне себе рабочий код:
#python 3.7.1
for y in range (1,100):
for m in range (1,13):
for d in range (1,32):
if d**2 + m**2 == y**2:
print (f'{d:02}.{m:02}.{y:02}')
Корявая потому, что количество дней в месяце всегда 31
Такой будет валидным с теми же результатами:
for y in range (3,33):
for m in range (3,13):
for d in range (3,31):
if d**2 + m**2 == y**2:
print (f'{d:02}.{m:02}.{y:02}')
Только непонятно, почему у @x4ile, перебор не до 2099 года. Но с математической точки зрения действительно достаточно перебирать только до 34-го.
ну, вывод некрасивый ) а так рабочая, да
for (y=0; y<=34; y++)
for (d=1; d<=31; d++)
for (m=1; m<=12; m++)
if ((d*d+m*m)==y*y) console.log(d+'/'+m+'/'+y);
в консоле на пикабу
Надо учесть 30-дневные и февраль отдельно
Как уже ниже ктото написал раз их нет в результате вывода, значит и нет смысл проверять, была бы хоть одна дата с 31 числом, можно было бы обсудить.
Уговорил
В функциональном стиле (WL, доступен на lab.wolframcloud.com):
Select[Tuples[
Range/@{31, 12, 99}
], {1, 1, -1}.#^2 == 0&]
Вывести можно списком дат:
Sun 3 Apr 2005
Fri 4 Mar 2005
Thu 5 Dec 2013
Fri 6 Aug 2010
Tue 8 Jun 2010
Wed 9 Dec 2015
Sun 12 May 2013
Sat 12 Sep 2015
Tue 15 Aug 2017
Wed 16 Dec 2020
Thu 24 Jul 2025
Sat 24 Oct 2026
Педант бы сказал, что надо проверить ещё 24 дня: количество дней в 100 годах от и до сегодняшней даты i = 365*100+ количество високосных лет
Так у ТС сказано что предыдущий был 15.08.17 , он у меня последний.
365.25 надо было
Если программу запустить завтра, то сегодняшний день она не найдёт. Мы же проверяем ТС и не можем брать его данные как исходные.
Да, нужно 25 добавлять, а не 24. А то вдруг её запустят например 13.16.2320 (2400 - високосный), ну или в любой день после подходящего в 23хх-м годах, тоже не сработает.
Да потому что я быстро состряпал, а если подумать то:
31^2+12^2= 1105, поэтому там максимум 33 год. Но с другой стороны 33 год пришлось бы отсчитывать от 2000 да еще учитывать високосные даты, а так 100 лет от сегодняшнего дня.
29 февраля любого года подходить не будет. Високосный год или нет - никак не влияет
И даже 29 числа любого месяца: т.к. 29 – число простое, то разложить 29² на множители можно только как 29² = 1×841. Тогда если d² + m² = y² и d = 29, то y² – m² = (y – m)×(y + m) = 1×841, откуда y = (841 + 1)/2 = 421, m = (841 – 1)/2 = 420 и единственная пифагорова тройка: 29² + 420² = 421².
"И вообще сделать тройной цикл и в дату не переводить"
для этого надо заранее знать что среди дат нет високосных.
в твоем случае 29.02 = 2021 если бы дало верный результат то такой даты не существует.
При чем тут поделить на 4?
Если ты собрался писать три цикла, один из которых перебирает все дни от 1 до 31, то как минимум 5 раз в год, это не верно, не всегда в месяце 31 день, даже без 28/29 февраля. т.е. ты будешь массив сохранят с количеством дней в каждом из 12 месяцев. Нее, мой код раз в 5 проще, и не требует проверки существования даты, так как проходит по циклу по всем датам от сегодня, за 100 лет.
For (month=1;month <= 12; month++) {
For(day=1;day <= 31; day++){
If(day*day + month*month === year * year && checkdate (month, day, year)){
echo "{day}.{month}.{year}";
}
}
}
}
так понятнее? Пишу с телефона так что кривовато. И без значков бакса
он пишет, что ваш цикл может выдать 31 ноября какого-нибудь года в качестве правильного ответа, когда такой даты не существует, а первоначальный цикл в принципе не переберет эту дату
другое дело, что начиная с 29 числа любого месяца даты Пифагора в принципе отсутствуют, что легко проверяется на коленке:
год всегда больше дня (иначе тупо правило невыполнимо при любом месяце)
29.mm.30 не подходит (нет целого числа)
29.mm.31 не подходит (нет целого числа)
29.mm.32 и дальше не подходит, т.к. mm должен быть уже больше 12
то же самое и с 30 и с 31 числом, поэтому ваш цикл имеет право на жизнь
вопрос только, какая разница, какой из этих кодов использовать?)
И поэтому мой код:
04/03/05
03/04/05
08/06/10
06/08/10
12/05/13
А твой:
4/3/5
3/4/5
/8/6/10
6/8/10
12/5/13
Еще в моем коде есть смысл в 100 годах,так как я с текущей даты проверяю, определяю ближайшие события, а в твоем нет. повторяюсь 34 в квадрате это больше чем 31*31+12*12. Нет смысла проверять больше 34 year
Да я в целом согласен, нет в моем выводе ни одной даты ни с 31, ни 30, ни с 28. Максимум 24, поэтому и нет смысла проверять эти даты на существования, вот были бы там 29 или 31, то решение без определение високосный или нет, бы было спорным а так пофигу :)
31 февраля не существует
зачем ты его проверяешь?
а если вдруг найдётся дата?
она будет несуществующая
Так в любом веке даты одни и те же будут, в которые выполнятся условие про сумму квадратов. Ну типа 03/04/05 подходит вне зависимости от того, был ли это 2005, 1905 или просто 5 год.
поэтому сегодня день Пифагора, которое четко не подходит под условие, ведь год у нас не 20, а 2020?
Ну хз. Думаю на всякий случай надо отметить.
Так лучше, но в действительности в этом нет реальной необходимости, т.к. пифагоровых троек вида d² + 1² = y² и d² + 2² = y² не существует, поэтому range для месяца можно начинать с 3. Для d = 31 такой календарной тройки тоже не существует (и вообще для любого простого d > 5), поэтому range для дня можно сделать одинаковым для всех месяцев. А если есть желание перебрать все даты, то лучше использовать встроенные функции для работы с датами (вариант для Mathematica):
Select[
DateValue[
DayRange[
{1, 1, 1}, {99, 12, 31}
],{"Year","Month","Day"}
], {-1, 1, 1}.#^2==0&]
за исключением пары рифм)
уже накидали ребята выше
https://paiza.io/projects/JF0JOupIG2uzfqI-ulNaaQ
а есть ещё другие онлайн пхп отладчики
С php это будет немного через жопу. Надо поставить локальный сервер, сделать файл скрипта, обратиться к нему через браузер. Но если сильно хочется - гуглим "php online compiler" и копируем код туда. Ну, и я б не стал такой хуйней заниматься - можно и нужно для этого брать скриптовые языки. Какой-нибудь JS - выполнение на стороне клиента, сервер не нужен. Я предпочитаю Perl 😈🤓
Что-то вы слишком усложняете. Сервер для скрипта, который результат в консоль может вывести, нехер не нужен. Заменить '<br>' на PHP_EOL только в выводе.
php -a интерактивный режим а-ля javascript консоль в браузере. Скопировать - вставить несложно, никакие файлы создавать не надо.
Единственное, php поставить надо локально.
Вот таких советчиков как ты, которые сами ничего не понимают, но другим рассказывают, как нужно, очень много, и это действительно проблема.
Это в первую очередь серверный скриптовый язык. Есть решения в 100 раз удобнее и проще - bash, python, perl, js. Заметь, их даже ставить не надо.
А то, что в пхп что-то можно делать через командную строку не меняет того факта, что он предназначен для других целей.
Если ты знаешь только этот язык и везде его пихаешь - это, отнюдь, не моя проблема.
В линухах perl и python идут из коробки. На них написаны многие системные компоненты. Короче, они жизненно необходимы. Для винды все, конечно, по-другому. Но так, справедливости ради, есть всякие PowerShell.
@
bash, perl
Ну ты и обосрался, конечно. Даже спорить с тобой не буду, личинка программиста.
Нежный пхп-адепт набижал - обидели его любимый язык. Я ж не виноват, что ты не смог ни во что, кроме пхп. О чем ты можешь спорить-то, ты ни в чем не шаришь)
https://paiza.io/projects/JF0JOupIG2uzfqI-ulNaaQ или так, уже накидали ребята выше :)
Онлайн-компилятор. Я об этом и написал.
Такие вычисления пишутся на Питоне
#comment_187527535
php маразм от веб дизайнеров, даже разработчик языка сказал что не любит программировать, набор скриптов кривых по сути
Я программирую с 2003 понемногу, сначала Дельфи, потом SAP и немного Питон для мелких утилит. Коллеги есть Питонщики (аж фанаты, классический Питон, Джанго), есть Java Script (React JS), C++ (этот правда на Питон перешел, хотя и был фанат С++ но не практично). Но ни одного PHP нет, это самое дно, сайты визитки клепать. Синтаксис что-то среднее между .bat файлами и Фортраном ))
Не сравнить с Питоном как выше по ссылке привели, язык 1991 года, а лаконичный и интуитивно понятный
ну-ну
очень видно, насколько ты в теме, раз тебе для сайта-визитки php понадобился
Кроме того, что твои друзяшки не хотят/не могут в пхп, аргументы по поводу убогости пхп будут?
1С еще больше требуется, но это же скукота, это весьма условное программирование. Не сравнить с С++, обычно низкоуровневое программирование, весьма сложная тема, тут и ПХП и питонисты нервно курят в сторонке ))
В принципе я одно время хотел на микроконтроллеры перейти, сейчас уже не знаю, привык байтики между Excel и SQL Oracle гонять на радость бухгалтеров ))
А где высокосные года?
там высоко... нет никого!
Это песня Limp Bizkit Behind Blue Eyes, которая на самом деле The Who?
Ах да, это же просто Ария ее сперла и адаптировала
Это называется слух и знание нот
Ну это не обьяснить, если не хочется понять) есть не только названия нот, но и гармонии, последовательности, интервалы. Сочетание этих факторов на протяжении длительной части композиции и является плагиатом.
Ничо не понятно))
Кстати, в 2067 прилетит. Скажите детям и внукам, чтобы кушали тогда хорошо.
Ты из тех кто обращает внимание на синтаксис вперед архитектуры? Ты ещё в самом начале пути, дружочек, я тебе даже завидую
Абелевку
Пробовать бессмысленно. Для кубов и более высоких степеней найти подходящую тройку целых чисел невозможно ввиду теоремы Ферма
Предлагаю в таком случае учредить день теоремы Ферма. Отмечать будем тогда, когда сумма степеней N даты и месяца не равна году в степени N для N > 2. Можно будет бухать каждый день.
01.01.02
01.02.03
02.03.05
...
Есть в мире хоть один человек, который празднует такие праздники? И как это блядь выглядит?
С ними без 100 грамм не разберешься, особенно троичная система на троих хорошо идет.
К слову о троичной системе, давно стырил в ВК:
Советская «Сетунь» — единственная в мире ЭВМ на основе троичного кода.
Советские инженеры нередко ходили другими путями. В 1959-м году учёные из Московского государственного университета под руководством Николая Брусенцева разработали первую и единственную ЭВМ на основе троичной логики. Называлась она «Сетунь». Других компьютеров на основе троичного кода нет и не было.
Идею использовать для вычислений троичную систему высказал ещё в 13-м веке итальянский математик Фибоначчи. Он сформулировал и решил «задачу о гирях», более известную под названием Баше-Менделеева: если можно класть гири только на одну чашу весов, то удобнее, быстрее и экономичнее делать подсчёты в двоичной системе, а если можно класть гири на обе чаши, то целесообразнее прибегнуть к троичной системе.
Особенность троичной системы счисления в том, что цельночисленное основание в ней равно трём. Это значит, что всё множество целых чисел можно записать с помощью всего трёх цифр, например 0, 1, 2, 10, 11, 12 и так далее. 10 в данном случае соответствует цифре 3 из привычной нам десятичной системы.
Большинство современных компьютеров используют двоичную систему, где разряд равен степени двойки. Брусенцев и его группа пошли по иному пути — в их машине разряд был равен степени тройки. При работе машина использовала двухбитный троичный код. Единицами измерения были не биты, а триты (то есть не 0 и 1, а 0, 1 и 2). Минимальной единицей, с которой работала непосредственно память «Сетуни», был трайт, равный шести тритам (соответствует примерно 9,5 битам в современном двоичном представлении). Для «Сетуни» даже разработали собственный язык программирования — DSSP.
По современным меркам «Сетунь» не был мощным компьютером: тактовая частота процессора у него была всего 200 кГц. Но в 1959-м году, когда создавались только первые прототипы ЭВМ и учёные ещё даже не договорились, сколько разрядов будет в байте, такая машина была выдающимся достижением. Ей было нужно обработать примерно в 1,5 раза меньше суммарных сложений, чем компьютеру с двоичной системой для той же задачи и за то же время. Так что и работать она могла в 1,5 раза быстрее. Закодировать тоже можно было больше.
Но в Советском Союзе было сделано всего 46 таких машин, 30 из которых отдали институтам по всей стране для решения научно-технических задач средней сложности. Затем выпуск машин прекратился, несмотря на то, что у рабочего прототипа недостатков почти не было. Сам создатель машины Брусенцев говорил потом:
«Сетунь» мешала людям с косным мышлением, которые занимали высокие руководящие посты».
По всей видимости, чиновники посчитали, что на обслуживание машины уйдут огромные деньги. Но машина была до того простой, что обслуживать её не требовалось. Тем не менее, «те, кто душил „Сетунь“, раскидали её по всей стране». Итак, уникальный компьютер задавили бюрократы.
По словам Брусенцева, сейчас многие страны пытаются создать свой троичный компьютер, но все попытки безуспешны: люди так привыкли к двоичной логике, что им сложно освоить троичную. Однако это вопрос спорный: вряд ли за все эти годы никто больше не додумался до того, как сделать аппаратную часть такого компьютера. И если во всём мире в компьютерной индустрии пользуются двоичной системой, а на троичную до сих пор никто не перешёл, то, возможно, необходимости в этом и нет.
Похоже что потом двоичные компы настолько выросли в мощности, что сейчас по сути логика не двоичная, а 64-битная. Минимальная операция за 1 такт процессора 64 бита, разрядность с запасом, поэтому и не важно что там в глубине лежит.
Это похоже на нейронные сети, там выход системы может быть от -1 до +1, типа -0.33 (не знаю, но скорее нет).
Да, на двоичных компьютерах можно реализовать всё что угодно – в том числе троичную логику. Разве что в троичных компьютерах она реализована на уровне минимальной единицы информации – трита. IBM в последнее время периодически что-то публикует по троичным компьютерам (правда, не очень активно). Сейчас ещё потихоньку копают в сторону кутритов.
@SupportTech, а то, что в приложении при редактировании комментария с цитатой после неё каждый раз автоматически добавляется дополнительный перевод строки – это баг или фича? Т.е. если редактировать комментарий n раз, переводов строки будет n + 1.
Приветствую! Это фича, так сделали специально. Без дополнительного абзаца ломается вёрстка на длинном комментарии с цитатой, следовательно поэтому решили оставить так
Возможно, после рефакторинга исправим этот момент :с
И смысл? Разница в несколько процентов в быстродействии будет. В 1960х может актуально было, сейчас оптимизация мелкая по сути. Для конечного пользователя это всё замаскируют компиляторы и интерпретаторы и будет всё так же выглядеть.
Любезнейший, да так ведь и спиться недолго...
05.05.2021 дата смерти Пикабу? ))
Единственная теорема из всего школьного курса геометрии, которую я помню до сих пор (мне 38), и единственная, кою доказывал у доски... 22 года прошло, итить-колотить...
На столько простая, что, когда мне на вступительных в универ попался вопрос "следствие из теоремы Пифагора" я подвисла))
Прямо вывод формулы помнишь?
©
Даже если не выходной.
...и пьёте всё такое вкусное, и всё на букву "ш" - шампанское, шпирт, шамогон... (♡°▽°♡)
В смысле сегодня не день недели? Сегодня же среда. Среда - день недели.
Сегодня же среда. Лес - это среда.
А с юмором у вас так себе..
Смором у него нормально. А у вас с логикой плохо. Изговнякали шутку.
Что такое смор или смором?
Это называется
С юмором, но ю находится рядом со стиранием буквы. Ну а дальше догадайтесь сами.
Устами зануды гундосит истина
- Сарочка, золотце мое, супружеский долг я буду выполнять в те дни недели, в названии которых есть буква "Р": понедрельник, вторник...
недели, в которых есть буква ``р``. Приходит как-то муж с работы
усталый, а жена давай к нему домогаться. Он и спрашивает ее:
- Милая, а какой сегодня день?
- Понедрельник! - отвечает она.
©
16*16 = 2^4*2^4 = 2^8 = 256
12*12 = 144
Всё верно
Придираться будем.
Ок.
Было всего шесть дней празднования дня теоремы Пифагора:
4 марта 5 года
3 апреля 5 года
12 мая 13 года
5 декабря 13 года
15 августа 17 года
24 июля 25 года
12 дней, если днэ считать отрицательными.
Ну или пересчитывать для каждого календаря.
Так у вас 20 во второй степени - это 2020? ;D Альтернативная математика? :D
Попробуй в мозг еще раз
Да уж сколько лет пробую, всё отлично. А вот у вас, похоже, проблемы с элементарной математикой. Сдайте все свои дипломы и аттестаты и вперед обратно в школу!
Ахах, не, ну это клиника
Давай я попробую. Если год писать полностью, а не сокращенно, тогда получаем 16^2+12^2 и 2020^2. И между двумя результатами этих квадратов ну никак не ставится знак равно.
Так понятнее?
Вы бы повнимательней. Имелось же в виду что "не бери две последних цифры года, а бери их все".
Тряпочку найдете, чтоб желчь убрать. Или пусть дальше растекается?
О боже, какие в этой ветке тупые комментаторы. Никто не удосужился разобраться в вопросе, все дружно мимо глаз пропустили условие, что берутся последние 2 цифры года, но все дружно, как и полагается стаду, заминусили меня за поддержку очевидного доказательства проверки. Потрясающе. Ща еще посчитаем на этом комменте минусы, посмотрим, кто еще присоединится поблеять про мою "ошибку".