diff --git a/archives.html b/archives.html index 50d8371..2c1aa3e 100644 --- a/archives.html +++ b/archives.html @@ -1,5 +1,4 @@ - - Блог 529 Блог 529

Archives for Блог 529

Пн 17 Июль 2017
Экспорт партий с Lichess
Вс 30 Октябрь 2016
Моё решение задачи 134
Пт 21 Октябрь 2016
Моё решение задачи 146
Пт 22 Июль 2016
Нахождение суммы k-ых степеней
Чт 17 Март 2016
Wallabag и реальная жизнь
Вс 10 Январь 2016
Как я шахматного бота писал
Вс 02 Август 2015
CrossGen v1.0
Пт 17 Июль 2015
Моё решение задачи 60
Пт 03 Июль 2015
Ещё одно вычисление выражений
Пт 17 Апрель 2015
Мой первый пост или зачем этот блог?
\ No newline at end of file diff --git a/archives.html.gz b/archives.html.gz index 929227d..0d802ef 100644 Binary files a/archives.html.gz and b/archives.html.gz differ diff --git a/author/aleksei-lobanov.html b/author/aleksei-lobanov.html index d9193a3..e716d41 100644 --- a/author/aleksei-lobanov.html +++ b/author/aleksei-lobanov.html @@ -1,5 +1,4 @@ - - Блог 529 - Алексей Лобанов Блог 529 - Алексей Лобанов
  1. Экспорт партий с Lichess

    Сохраняем себе шахматные партии с Lichess.org. Рабочий скрипт на Python прилагается.


  2. Моё решение задачи 134

    Краткое условие: назовём порождающим для двух последовательных простых \(p_1 < p_2\) наименьшее натуральное число, что оно закачивается на \(p_1\) и при этом делится на \(p_2\). Необходимо найти сумму порождающих для всех \(p_1 \in \left[ 5; 10^6 \right]\)

    \ No newline at end of file diff --git a/author/aleksei-lobanov.html.gz b/author/aleksei-lobanov.html.gz index 4f0eca1..e088c11 100644 Binary files a/author/aleksei-lobanov.html.gz and b/author/aleksei-lobanov.html.gz differ diff --git a/authors.html b/authors.html index 85f65d4..c6034e7 100644 --- a/authors.html +++ b/authors.html @@ -1,5 +1,4 @@ - - Блог 529 - Authors Блог 529 - Authors

    Authors on Блог 529

    \ No newline at end of file diff --git a/authors.html.gz b/authors.html.gz index d5e36b0..a681c36 100644 Binary files a/authors.html.gz and b/authors.html.gz differ diff --git a/categories.html b/categories.html index 600a869..9bd6d87 100644 --- a/categories.html +++ b/categories.html @@ -1,5 +1,4 @@ - - Блог 529 Блог 529 \ No newline at end of file diff --git a/categories.html.gz b/categories.html.gz index baa5f39..ce670ab 100644 Binary files a/categories.html.gz and b/categories.html.gz differ diff --git a/category/misc.html b/category/misc.html index 7252066..6576a98 100644 --- a/category/misc.html +++ b/category/misc.html @@ -1,5 +1,4 @@ - - Блог 529 - misc Блог 529 - misc
    1. Нахождение суммы k-ых степеней

      Как придумать формулу для суммы \(1^5 + 2^5 + 3^5 + \ldots + n^5\) и есть ли она вообще?

      \ No newline at end of file diff --git a/category/misc.html.gz b/category/misc.html.gz index 218a960..a2185b5 100644 Binary files a/category/misc.html.gz and b/category/misc.html.gz differ diff --git a/category/proekty.html b/category/proekty.html index 1ba1a21..4be5f34 100644 --- a/category/proekty.html +++ b/category/proekty.html @@ -1,5 +1,4 @@ - - Блог 529 - Проекты Блог 529 - Проекты
      1. Экспорт партий с Lichess

        Сохраняем себе шахматные партии с Lichess.org. Рабочий скрипт на Python прилагается.



      2. CrossGen v1.0

        Читая хабр, случайно натолкнулся на идею сделать программу, которая по заданной кроссвордной сетке находит способ её заполнить. В этом посте вкратце напишу про моё решение и первую версию приложения.


      3. Ещё одно вычисление выражений

        На хабре когда-то увидел статью про то, что в Яндексе двум сотрудникам дали задачу на написание приложения, для вычисления выражений. Менеджер справился за 4 часа, а программист за два. Я решил попробовать свои силы.


      Page 1 / 1
      \ No newline at end of file diff --git a/category/proekty.html.gz b/category/proekty.html.gz index 11d8497..cf28569 100644 Binary files a/category/proekty.html.gz and b/category/proekty.html.gz differ diff --git a/category/project-euler.html b/category/project-euler.html index cabf7cc..17cfd33 100644 --- a/category/project-euler.html +++ b/category/project-euler.html @@ -1,5 +1,4 @@ - - Блог 529 - Project Euler Блог 529 - Project Euler
      1. Моё решение задачи 134

        Краткое условие: назовём порождающим для двух последовательных простых \(p_1 < p_2\) наименьшее натуральное число, что оно закачивается на \(p_1\) и при этом делится на \(p_2\). Необходимо найти сумму порождающих для всех \(p_1 \in \left[ 5; 10^6 \right]\)

        \ No newline at end of file diff --git a/category/project-euler.html.gz b/category/project-euler.html.gz index 2eafcab..6d68402 100644 Binary files a/category/project-euler.html.gz and b/category/project-euler.html.gz differ diff --git a/feeds/all.atom.xml b/feeds/all.atom.xml index 27b5157..89a17a9 100644 --- a/feeds/all.atom.xml +++ b/feeds/all.atom.xml @@ -1,5 +1,5 @@ -Блог 529http://likemath.ru/2017-07-17T13:35:00+03:00Экспорт партий с Lichess2017-07-17T13:35:00+03:002017-07-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2017-07-17:posts/eksport-partii-s-lichess/<p>Сохраняем себе шахматные партии с Lichess.org. Рабочий скрипт на Python&nbsp;прилагается.</p>Моё решение задачи 1342016-10-30T17:40:00+03:002016-10-30T17:40:00+03:00Алексей Лобановtag:likemath.ru,2016-10-30:posts/moio-reshenie-zadachi-134/<p>Краткое условие: назовём <em>порождающим</em> для двух последовательных простых <span class="math">\(p_1 &lt; p_2\)</span> наименьшее натуральное число, что оно закачивается на <span class="math">\(p_1\)</span> и при этом делится на <span class="math">\(p_2\)</span>. Необходимо найти сумму порождающих для всех <span class="math">\(p_1 \in \left[ 5; 10^6&nbsp;\right]\)</span></p> +Блог 529http://likemath.ru/2017-07-17T13:35:00+03:00Экспорт партий с Lichess2017-07-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2017-07-17:posts/eksport-partii-s-lichess/<p>Сохраняем себе шахматные партии с Lichess.org. Рабочий скрипт на Python&nbsp;прилагается.</p>Моё решение задачи 1342016-10-30T17:40:00+03:00Алексей Лобановtag:likemath.ru,2016-10-30:posts/moio-reshenie-zadachi-134/<p>Краткое условие: назовём <em>порождающим</em> для двух последовательных простых <span class="math">\(p_1 &lt; p_2\)</span> наименьшее натуральное число, что оно закачивается на <span class="math">\(p_1\)</span> и при этом делится на <span class="math">\(p_2\)</span>. Необходимо найти сумму порождающих для всех <span class="math">\(p_1 \in \left[ 5; 10^6&nbsp;\right]\)</span></p> <script type="text/javascript">if (!document.getElementById('mathjaxscript_pelican_#%@#$@#')) { var align = "center", indent = "0em", @@ -108,7 +108,7 @@ "}"; (document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript); } -</script>Моё решение задачи 1462016-10-21T17:40:00+03:002016-10-21T17:40:00+03:00Алексей Лобановtag:likemath.ru,2016-10-21:posts/moio-reshenie-zadachi-146/<p>Краткое условие: необходимо найти сумму всех натуральных <span class="math">\(n\)</span>, что <span class="math">\(n^2+1\)</span>, <span class="math">\(n^2+3\)</span>, <span class="math">\(n^2+7\)</span>, <span class="math">\(n^2+9\)</span>, <span class="math">\(n^2+13\)</span>, и <span class="math">\(n^2+27\)</span> будут последовательными простыми&nbsp;числами.</p> +</script>Моё решение задачи 1462016-10-21T17:40:00+03:00Алексей Лобановtag:likemath.ru,2016-10-21:posts/moio-reshenie-zadachi-146/<p>Краткое условие: необходимо найти сумму всех натуральных <span class="math">\(n\)</span>, что <span class="math">\(n^2+1\)</span>, <span class="math">\(n^2+3\)</span>, <span class="math">\(n^2+7\)</span>, <span class="math">\(n^2+9\)</span>, <span class="math">\(n^2+13\)</span>, и <span class="math">\(n^2+27\)</span> будут последовательными простыми&nbsp;числами.</p> <script type="text/javascript">if (!document.getElementById('mathjaxscript_pelican_#%@#$@#')) { var align = "center", indent = "0em", @@ -217,7 +217,7 @@ "}"; (document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript); } -</script>Нахождение суммы k-ых степеней2016-07-22T13:35:00+03:002016-07-22T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-07-22:posts/nakhozhdenie-summy-k-ykh-stepenei/<p>Как придумать формулу для суммы <span class="math">\(1^5 + 2^5 + 3^5 + \ldots + n^5\)</span> и есть ли она&nbsp;вообще?</p> +</script>Нахождение суммы k-ых степеней2016-07-22T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-07-22:posts/nakhozhdenie-summy-k-ykh-stepenei/<p>Как придумать формулу для суммы <span class="math">\(1^5 + 2^5 + 3^5 + \ldots + n^5\)</span> и есть ли она&nbsp;вообще?</p> <script type="text/javascript">if (!document.getElementById('mathjaxscript_pelican_#%@#$@#')) { var align = "center", indent = "0em", @@ -326,4 +326,4 @@ "}"; (document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript); } -</script>Wallabag и реальная жизнь2016-03-17T13:35:00+03:002016-03-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-03-17:posts/wallabag-i-realnaia-zhizn/<p>Как я устанавливал известнейшее свободное решение для отложенного чтения, и что из этого&nbsp;получилось.</p>Как я шахматного бота писал2016-01-10T13:35:00+03:002016-01-10T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-01-10:posts/kak-ia-shakhmatnogo-bota-pisal/<p>Как я проверял шахматное приложение на&nbsp;&#8220;ботоустойчивость&#8221;.</p>CrossGen v1.02015-08-04T17:40:00+03:002015-08-04T17:40:00+03:00Алексей Лобановtag:likemath.ru,2015-08-02:posts/crossgen-v10/<p>Читая хабр, случайно натолкнулся на идею сделать программу, которая по заданной кроссвордной сетке находит способ её заполнить. В этом посте вкратце напишу про моё решение и первую версию&nbsp;приложения.</p>Моё решение задачи 602015-11-22T23:41:00+03:002015-11-22T23:41:00+03:00Алексей Лобановtag:likemath.ru,2015-07-17:posts/moio-reshenie-zadachi-60/<p>Краткое условие: необходимо найти множество из пяти простых чисел с минимальной суммой такое, что после &#8220;склеивания&#8221; в любом порядке любых двух чисел из него тоже будет простое&nbsp;число.</p>Ещё одно вычисление выражений2015-07-03T17:40:00+03:002015-07-03T17:40:00+03:00Алексей Лобановtag:likemath.ru,2015-07-03:posts/eshchio-odno-vychislenie-vyrazhenii/<p>На хабре когда-то увидел статью про то, что в Яндексе двум сотрудникам дали задачу на написание приложения, для вычисления выражений. Менеджер справился за 4 часа, а программист за два. Я решил попробовать свои&nbsp;силы.</p>Мой первый пост или зачем этот блог?2015-04-17T13:35:00+03:002015-04-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2015-04-17:posts/moi-pervyi-post-ili-zachem-etot-blog/<p>Кратко о том, почему я сделал&nbsp;блог.</p> \ No newline at end of file +</script>Wallabag и реальная жизнь2016-03-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-03-17:posts/wallabag-i-realnaia-zhizn/<p>Как я устанавливал известнейшее свободное решение для отложенного чтения, и что из этого&nbsp;получилось.</p>Как я шахматного бота писал2016-01-10T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-01-10:posts/kak-ia-shakhmatnogo-bota-pisal/<p>Как я проверял шахматное приложение на&nbsp;&#8220;ботоустойчивость&#8221;.</p>CrossGen v1.02015-08-04T17:40:00+03:00Алексей Лобановtag:likemath.ru,2015-08-02:posts/crossgen-v10/<p>Читая хабр, случайно натолкнулся на идею сделать программу, которая по заданной кроссвордной сетке находит способ её заполнить. В этом посте вкратце напишу про моё решение и первую версию&nbsp;приложения.</p>Моё решение задачи 602015-11-22T23:41:00+03:00Алексей Лобановtag:likemath.ru,2015-07-17:posts/moio-reshenie-zadachi-60/<p>Краткое условие: необходимо найти множество из пяти простых чисел с минимальной суммой такое, что после &#8220;склеивания&#8221; в любом порядке любых двух чисел из него тоже будет простое&nbsp;число.</p>Ещё одно вычисление выражений2015-07-03T17:40:00+03:00Алексей Лобановtag:likemath.ru,2015-07-03:posts/eshchio-odno-vychislenie-vyrazhenii/<p>На хабре когда-то увидел статью про то, что в Яндексе двум сотрудникам дали задачу на написание приложения, для вычисления выражений. Менеджер справился за 4 часа, а программист за два. Я решил попробовать свои&nbsp;силы.</p>Мой первый пост или зачем этот блог?2015-04-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2015-04-17:posts/moi-pervyi-post-ili-zachem-etot-blog/<p>Кратко о том, почему я сделал&nbsp;блог.</p> \ No newline at end of file diff --git a/feeds/all.atom.xml.gz b/feeds/all.atom.xml.gz index 9aa434f..3719e23 100644 Binary files a/feeds/all.atom.xml.gz and b/feeds/all.atom.xml.gz differ diff --git a/feeds/all.rss.xml b/feeds/all.rss.xml index cea32b2..ebd2e14 100644 --- a/feeds/all.rss.xml +++ b/feeds/all.rss.xml @@ -1,5 +1,5 @@ -Блог 529http://likemath.ru/Project Euler и остальноеMon, 17 Jul 2017 13:35:00 +0300Экспорт партий с Lichesshttp://likemath.ru/posts/eksport-partii-s-lichess/<p>Сохраняем себе шахматные партии с Lichess.org. Рабочий скрипт на Python&nbsp;прилагается.</p>Алексей ЛобановMon, 17 Jul 2017 13:35:00 +0300tag:likemath.ru,2017-07-17:posts/eksport-partii-s-lichess/проектшахматыlichessМоё решение задачи 134http://likemath.ru/posts/moio-reshenie-zadachi-134/<p>Краткое условие: назовём <em>порождающим</em> для двух последовательных простых <span class="math">\(p_1 &lt; p_2\)</span> наименьшее натуральное число, что оно закачивается на <span class="math">\(p_1\)</span> и при этом делится на <span class="math">\(p_2\)</span>. Необходимо найти сумму порождающих для всех <span class="math">\(p_1 \in \left[ 5; 10^6&nbsp;\right]\)</span></p> +Блог 529http://likemath.ru/Project Euler и остальноеMon, 17 Jul 2017 13:35:00 +0300Экспорт партий с Lichesshttp://likemath.ru/posts/eksport-partii-s-lichess/<p>Сохраняем себе шахматные партии с Lichess.org. Рабочий скрипт на Python&nbsp;прилагается.</p>Алексей ЛобановMon, 17 Jul 2017 13:35:00 +0300tag:likemath.ru,2017-07-17:posts/eksport-partii-s-lichess/проектшахматыlichessМоё решение задачи 134http://likemath.ru/posts/moio-reshenie-zadachi-134/<p>Краткое условие: назовём <em>порождающим</em> для двух последовательных простых <span class="math">\(p_1 &lt; p_2\)</span> наименьшее натуральное число, что оно закачивается на <span class="math">\(p_1\)</span> и при этом делится на <span class="math">\(p_2\)</span>. Необходимо найти сумму порождающих для всех <span class="math">\(p_1 \in \left[ 5; 10^6&nbsp;\right]\)</span></p> <script type="text/javascript">if (!document.getElementById('mathjaxscript_pelican_#%@#$@#')) { var align = "center", indent = "0em", @@ -108,7 +108,7 @@ "}"; (document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript); } -</script>Алексей ЛобановSun, 30 Oct 2016 17:40:00 +0300tag:likemath.ru,2016-10-30:posts/moio-reshenie-zadachi-134/Project EulerPythonsympyМоё решение задачи 146http://likemath.ru/posts/moio-reshenie-zadachi-146/<p>Краткое условие: необходимо найти сумму всех натуральных <span class="math">\(n\)</span>, что <span class="math">\(n^2+1\)</span>, <span class="math">\(n^2+3\)</span>, <span class="math">\(n^2+7\)</span>, <span class="math">\(n^2+9\)</span>, <span class="math">\(n^2+13\)</span>, и <span class="math">\(n^2+27\)</span> будут последовательными простыми&nbsp;числами.</p> +</script>Алексей ЛобановSun, 30 Oct 2016 17:40:00 +0300tag:likemath.ru,2016-10-30:posts/moio-reshenie-zadachi-134/Project EulerPythonsympyМоё решение задачи 146http://likemath.ru/posts/moio-reshenie-zadachi-146/<p>Краткое условие: необходимо найти сумму всех натуральных <span class="math">\(n\)</span>, что <span class="math">\(n^2+1\)</span>, <span class="math">\(n^2+3\)</span>, <span class="math">\(n^2+7\)</span>, <span class="math">\(n^2+9\)</span>, <span class="math">\(n^2+13\)</span>, и <span class="math">\(n^2+27\)</span> будут последовательными простыми&nbsp;числами.</p> <script type="text/javascript">if (!document.getElementById('mathjaxscript_pelican_#%@#$@#')) { var align = "center", indent = "0em", @@ -217,7 +217,7 @@ "}"; (document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript); } -</script>Алексей ЛобановFri, 21 Oct 2016 17:40:00 +0300tag:likemath.ru,2016-10-21:posts/moio-reshenie-zadachi-146/Project Eulerc++FLINTНахождение суммы k-ых степенейhttp://likemath.ru/posts/nakhozhdenie-summy-k-ykh-stepenei/<p>Как придумать формулу для суммы <span class="math">\(1^5 + 2^5 + 3^5 + \ldots + n^5\)</span> и есть ли она&nbsp;вообще?</p> +</script>Алексей ЛобановFri, 21 Oct 2016 17:40:00 +0300tag:likemath.ru,2016-10-21:posts/moio-reshenie-zadachi-146/Project Eulerc++FLINTНахождение суммы k-ых степенейhttp://likemath.ru/posts/nakhozhdenie-summy-k-ykh-stepenei/<p>Как придумать формулу для суммы <span class="math">\(1^5 + 2^5 + 3^5 + \ldots + n^5\)</span> и есть ли она&nbsp;вообще?</p> <script type="text/javascript">if (!document.getElementById('mathjaxscript_pelican_#%@#$@#')) { var align = "center", indent = "0em", @@ -326,4 +326,4 @@ "}"; (document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript); } -</script>Алексей ЛобановFri, 22 Jul 2016 13:35:00 +0300tag:likemath.ru,2016-07-22:posts/nakhozhdenie-summy-k-ykh-stepenei/математикаWallabag и реальная жизньhttp://likemath.ru/posts/wallabag-i-realnaia-zhizn/<p>Как я устанавливал известнейшее свободное решение для отложенного чтения, и что из этого&nbsp;получилось.</p>Алексей ЛобановThu, 17 Mar 2016 13:35:00 +0300tag:likemath.ru,2016-03-17:posts/wallabag-i-realnaia-zhizn/wallabagopen sourceGoКак я шахматного бота писалhttp://likemath.ru/posts/kak-ia-shakhmatnogo-bota-pisal/<p>Как я проверял шахматное приложение на&nbsp;&#8220;ботоустойчивость&#8221;.</p>Алексей ЛобановSun, 10 Jan 2016 13:35:00 +0300tag:likemath.ru,2016-01-10:posts/kak-ia-shakhmatnogo-bota-pisal/проектшахматыботCrossGen v1.0http://likemath.ru/posts/crossgen-v10/<p>Читая хабр, случайно натолкнулся на идею сделать программу, которая по заданной кроссвордной сетке находит способ её заполнить. В этом посте вкратце напишу про моё решение и первую версию&nbsp;приложения.</p>Алексей ЛобановTue, 04 Aug 2015 17:40:00 +0300tag:likemath.ru,2015-08-02:posts/crossgen-v10/проектc++wxWidgetsМоё решение задачи 60http://likemath.ru/posts/moio-reshenie-zadachi-60/<p>Краткое условие: необходимо найти множество из пяти простых чисел с минимальной суммой такое, что после &#8220;склеивания&#8221; в любом порядке любых двух чисел из него тоже будет простое&nbsp;число.</p>Алексей ЛобановSun, 22 Nov 2015 23:41:00 +0300tag:likemath.ru,2015-07-17:posts/moio-reshenie-zadachi-60/Project Eulerc++BGLЕщё одно вычисление выраженийhttp://likemath.ru/posts/eshchio-odno-vychislenie-vyrazhenii/<p>На хабре когда-то увидел статью про то, что в Яндексе двум сотрудникам дали задачу на написание приложения, для вычисления выражений. Менеджер справился за 4 часа, а программист за два. Я решил попробовать свои&nbsp;силы.</p>Алексей ЛобановFri, 03 Jul 2015 17:40:00 +0300tag:likemath.ru,2015-07-03:posts/eshchio-odno-vychislenie-vyrazhenii/проектМой первый пост или зачем этот блог?http://likemath.ru/posts/moi-pervyi-post-ili-zachem-etot-blog/<p>Кратко о том, почему я сделал&nbsp;блог.</p>Алексей ЛобановFri, 17 Apr 2015 13:35:00 +0300tag:likemath.ru,2015-04-17:posts/moi-pervyi-post-ili-zachem-etot-blog/блог \ No newline at end of file +</script>Алексей ЛобановFri, 22 Jul 2016 13:35:00 +0300tag:likemath.ru,2016-07-22:posts/nakhozhdenie-summy-k-ykh-stepenei/математикаWallabag и реальная жизньhttp://likemath.ru/posts/wallabag-i-realnaia-zhizn/<p>Как я устанавливал известнейшее свободное решение для отложенного чтения, и что из этого&nbsp;получилось.</p>Алексей ЛобановThu, 17 Mar 2016 13:35:00 +0300tag:likemath.ru,2016-03-17:posts/wallabag-i-realnaia-zhizn/wallabagopen sourceGoКак я шахматного бота писалhttp://likemath.ru/posts/kak-ia-shakhmatnogo-bota-pisal/<p>Как я проверял шахматное приложение на&nbsp;&#8220;ботоустойчивость&#8221;.</p>Алексей ЛобановSun, 10 Jan 2016 13:35:00 +0300tag:likemath.ru,2016-01-10:posts/kak-ia-shakhmatnogo-bota-pisal/проектшахматыботCrossGen v1.0http://likemath.ru/posts/crossgen-v10/<p>Читая хабр, случайно натолкнулся на идею сделать программу, которая по заданной кроссвордной сетке находит способ её заполнить. В этом посте вкратце напишу про моё решение и первую версию&nbsp;приложения.</p>Алексей ЛобановTue, 04 Aug 2015 17:40:00 +0300tag:likemath.ru,2015-08-02:posts/crossgen-v10/проектc++wxWidgetsМоё решение задачи 60http://likemath.ru/posts/moio-reshenie-zadachi-60/<p>Краткое условие: необходимо найти множество из пяти простых чисел с минимальной суммой такое, что после &#8220;склеивания&#8221; в любом порядке любых двух чисел из него тоже будет простое&nbsp;число.</p>Алексей ЛобановSun, 22 Nov 2015 23:41:00 +0300tag:likemath.ru,2015-07-17:posts/moio-reshenie-zadachi-60/Project Eulerc++BGLЕщё одно вычисление выраженийhttp://likemath.ru/posts/eshchio-odno-vychislenie-vyrazhenii/<p>На хабре когда-то увидел статью про то, что в Яндексе двум сотрудникам дали задачу на написание приложения, для вычисления выражений. Менеджер справился за 4 часа, а программист за два. Я решил попробовать свои&nbsp;силы.</p>Алексей ЛобановFri, 03 Jul 2015 17:40:00 +0300tag:likemath.ru,2015-07-03:posts/eshchio-odno-vychislenie-vyrazhenii/проектМой первый пост или зачем этот блог?http://likemath.ru/posts/moi-pervyi-post-ili-zachem-etot-blog/<p>Кратко о том, почему я сделал&nbsp;блог.</p>Алексей ЛобановFri, 17 Apr 2015 13:35:00 +0300tag:likemath.ru,2015-04-17:posts/moi-pervyi-post-ili-zachem-etot-blog/блог \ No newline at end of file diff --git a/feeds/all.rss.xml.gz b/feeds/all.rss.xml.gz index 6a9be78..9d69846 100644 Binary files a/feeds/all.rss.xml.gz and b/feeds/all.rss.xml.gz differ diff --git a/feeds/feed.atom.xml b/feeds/feed.atom.xml index d93fce6..dede561 100644 --- a/feeds/feed.atom.xml +++ b/feeds/feed.atom.xml @@ -1,5 +1,5 @@ -Блог 529http://likemath.ru/2017-07-17T13:35:00+03:00Экспорт партий с Lichess2017-07-17T13:35:00+03:002017-07-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2017-07-17:posts/eksport-partii-s-lichess/<p>Сохраняем себе шахматные партии с Lichess.org. Рабочий скрипт на Python&nbsp;прилагается.</p>Моё решение задачи 1342016-10-30T17:40:00+03:002016-10-30T17:40:00+03:00Алексей Лобановtag:likemath.ru,2016-10-30:posts/moio-reshenie-zadachi-134/<p>Краткое условие: назовём <em>порождающим</em> для двух последовательных простых <span class="math">\(p_1 &lt; p_2\)</span> наименьшее натуральное число, что оно закачивается на <span class="math">\(p_1\)</span> и при этом делится на <span class="math">\(p_2\)</span>. Необходимо найти сумму порождающих для всех <span class="math">\(p_1 \in \left[ 5; 10^6&nbsp;\right]\)</span></p> +Блог 529http://likemath.ru/2017-07-17T13:35:00+03:00Экспорт партий с Lichess2017-07-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2017-07-17:posts/eksport-partii-s-lichess/<p>Сохраняем себе шахматные партии с Lichess.org. Рабочий скрипт на Python&nbsp;прилагается.</p>Моё решение задачи 1342016-10-30T17:40:00+03:00Алексей Лобановtag:likemath.ru,2016-10-30:posts/moio-reshenie-zadachi-134/<p>Краткое условие: назовём <em>порождающим</em> для двух последовательных простых <span class="math">\(p_1 &lt; p_2\)</span> наименьшее натуральное число, что оно закачивается на <span class="math">\(p_1\)</span> и при этом делится на <span class="math">\(p_2\)</span>. Необходимо найти сумму порождающих для всех <span class="math">\(p_1 \in \left[ 5; 10^6&nbsp;\right]\)</span></p> <script type="text/javascript">if (!document.getElementById('mathjaxscript_pelican_#%@#$@#')) { var align = "center", indent = "0em", @@ -108,7 +108,7 @@ "}"; (document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript); } -</script>Моё решение задачи 1462016-10-21T17:40:00+03:002016-10-21T17:40:00+03:00Алексей Лобановtag:likemath.ru,2016-10-21:posts/moio-reshenie-zadachi-146/<p>Краткое условие: необходимо найти сумму всех натуральных <span class="math">\(n\)</span>, что <span class="math">\(n^2+1\)</span>, <span class="math">\(n^2+3\)</span>, <span class="math">\(n^2+7\)</span>, <span class="math">\(n^2+9\)</span>, <span class="math">\(n^2+13\)</span>, и <span class="math">\(n^2+27\)</span> будут последовательными простыми&nbsp;числами.</p> +</script>Моё решение задачи 1462016-10-21T17:40:00+03:00Алексей Лобановtag:likemath.ru,2016-10-21:posts/moio-reshenie-zadachi-146/<p>Краткое условие: необходимо найти сумму всех натуральных <span class="math">\(n\)</span>, что <span class="math">\(n^2+1\)</span>, <span class="math">\(n^2+3\)</span>, <span class="math">\(n^2+7\)</span>, <span class="math">\(n^2+9\)</span>, <span class="math">\(n^2+13\)</span>, и <span class="math">\(n^2+27\)</span> будут последовательными простыми&nbsp;числами.</p> <script type="text/javascript">if (!document.getElementById('mathjaxscript_pelican_#%@#$@#')) { var align = "center", indent = "0em", @@ -217,7 +217,7 @@ "}"; (document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript); } -</script>Нахождение суммы k-ых степеней2016-07-22T13:35:00+03:002016-07-22T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-07-22:posts/nakhozhdenie-summy-k-ykh-stepenei/<p>Как придумать формулу для суммы <span class="math">\(1^5 + 2^5 + 3^5 + \ldots + n^5\)</span> и есть ли она&nbsp;вообще?</p> +</script>Нахождение суммы k-ых степеней2016-07-22T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-07-22:posts/nakhozhdenie-summy-k-ykh-stepenei/<p>Как придумать формулу для суммы <span class="math">\(1^5 + 2^5 + 3^5 + \ldots + n^5\)</span> и есть ли она&nbsp;вообще?</p> <script type="text/javascript">if (!document.getElementById('mathjaxscript_pelican_#%@#$@#')) { var align = "center", indent = "0em", @@ -326,4 +326,4 @@ "}"; (document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript); } -</script>Wallabag и реальная жизнь2016-03-17T13:35:00+03:002016-03-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-03-17:posts/wallabag-i-realnaia-zhizn/<p>Как я устанавливал известнейшее свободное решение для отложенного чтения, и что из этого&nbsp;получилось.</p>Как я шахматного бота писал2016-01-10T13:35:00+03:002016-01-10T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-01-10:posts/kak-ia-shakhmatnogo-bota-pisal/<p>Как я проверял шахматное приложение на&nbsp;&#8220;ботоустойчивость&#8221;.</p>CrossGen v1.02015-08-04T17:40:00+03:002015-08-04T17:40:00+03:00Алексей Лобановtag:likemath.ru,2015-08-02:posts/crossgen-v10/<p>Читая хабр, случайно натолкнулся на идею сделать программу, которая по заданной кроссвордной сетке находит способ её заполнить. В этом посте вкратце напишу про моё решение и первую версию&nbsp;приложения.</p>Моё решение задачи 602015-11-22T23:41:00+03:002015-11-22T23:41:00+03:00Алексей Лобановtag:likemath.ru,2015-07-17:posts/moio-reshenie-zadachi-60/<p>Краткое условие: необходимо найти множество из пяти простых чисел с минимальной суммой такое, что после &#8220;склеивания&#8221; в любом порядке любых двух чисел из него тоже будет простое&nbsp;число.</p>Ещё одно вычисление выражений2015-07-03T17:40:00+03:002015-07-03T17:40:00+03:00Алексей Лобановtag:likemath.ru,2015-07-03:posts/eshchio-odno-vychislenie-vyrazhenii/<p>На хабре когда-то увидел статью про то, что в Яндексе двум сотрудникам дали задачу на написание приложения, для вычисления выражений. Менеджер справился за 4 часа, а программист за два. Я решил попробовать свои&nbsp;силы.</p>Мой первый пост или зачем этот блог?2015-04-17T13:35:00+03:002015-04-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2015-04-17:posts/moi-pervyi-post-ili-zachem-etot-blog/<p>Кратко о том, почему я сделал&nbsp;блог.</p> \ No newline at end of file +</script>Wallabag и реальная жизнь2016-03-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-03-17:posts/wallabag-i-realnaia-zhizn/<p>Как я устанавливал известнейшее свободное решение для отложенного чтения, и что из этого&nbsp;получилось.</p>Как я шахматного бота писал2016-01-10T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-01-10:posts/kak-ia-shakhmatnogo-bota-pisal/<p>Как я проверял шахматное приложение на&nbsp;&#8220;ботоустойчивость&#8221;.</p>CrossGen v1.02015-08-04T17:40:00+03:00Алексей Лобановtag:likemath.ru,2015-08-02:posts/crossgen-v10/<p>Читая хабр, случайно натолкнулся на идею сделать программу, которая по заданной кроссвордной сетке находит способ её заполнить. В этом посте вкратце напишу про моё решение и первую версию&nbsp;приложения.</p>Моё решение задачи 602015-11-22T23:41:00+03:00Алексей Лобановtag:likemath.ru,2015-07-17:posts/moio-reshenie-zadachi-60/<p>Краткое условие: необходимо найти множество из пяти простых чисел с минимальной суммой такое, что после &#8220;склеивания&#8221; в любом порядке любых двух чисел из него тоже будет простое&nbsp;число.</p>Ещё одно вычисление выражений2015-07-03T17:40:00+03:00Алексей Лобановtag:likemath.ru,2015-07-03:posts/eshchio-odno-vychislenie-vyrazhenii/<p>На хабре когда-то увидел статью про то, что в Яндексе двум сотрудникам дали задачу на написание приложения, для вычисления выражений. Менеджер справился за 4 часа, а программист за два. Я решил попробовать свои&nbsp;силы.</p>Мой первый пост или зачем этот блог?2015-04-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2015-04-17:posts/moi-pervyi-post-ili-zachem-etot-blog/<p>Кратко о том, почему я сделал&nbsp;блог.</p> \ No newline at end of file diff --git a/feeds/feed.atom.xml.gz b/feeds/feed.atom.xml.gz index c8363b6..77f3ff0 100644 Binary files a/feeds/feed.atom.xml.gz and b/feeds/feed.atom.xml.gz differ diff --git a/feeds/feed.rss.xml b/feeds/feed.rss.xml index cea32b2..2dde572 100644 --- a/feeds/feed.rss.xml +++ b/feeds/feed.rss.xml @@ -1,5 +1,5 @@ -Блог 529http://likemath.ru/Project Euler и остальноеMon, 17 Jul 2017 13:35:00 +0300Экспорт партий с Lichesshttp://likemath.ru/posts/eksport-partii-s-lichess/<p>Сохраняем себе шахматные партии с Lichess.org. Рабочий скрипт на Python&nbsp;прилагается.</p>Алексей ЛобановMon, 17 Jul 2017 13:35:00 +0300tag:likemath.ru,2017-07-17:posts/eksport-partii-s-lichess/проектшахматыlichessМоё решение задачи 134http://likemath.ru/posts/moio-reshenie-zadachi-134/<p>Краткое условие: назовём <em>порождающим</em> для двух последовательных простых <span class="math">\(p_1 &lt; p_2\)</span> наименьшее натуральное число, что оно закачивается на <span class="math">\(p_1\)</span> и при этом делится на <span class="math">\(p_2\)</span>. Необходимо найти сумму порождающих для всех <span class="math">\(p_1 \in \left[ 5; 10^6&nbsp;\right]\)</span></p> +Блог 529http://likemath.ru/Project Euler и остальноеMon, 17 Jul 2017 13:35:00 +0300Экспорт партий с Lichesshttp://likemath.ru/posts/eksport-partii-s-lichess/<p>Сохраняем себе шахматные партии с Lichess.org. Рабочий скрипт на Python&nbsp;прилагается.</p>Алексей ЛобановMon, 17 Jul 2017 13:35:00 +0300tag:likemath.ru,2017-07-17:posts/eksport-partii-s-lichess/проектшахматыlichessМоё решение задачи 134http://likemath.ru/posts/moio-reshenie-zadachi-134/<p>Краткое условие: назовём <em>порождающим</em> для двух последовательных простых <span class="math">\(p_1 &lt; p_2\)</span> наименьшее натуральное число, что оно закачивается на <span class="math">\(p_1\)</span> и при этом делится на <span class="math">\(p_2\)</span>. Необходимо найти сумму порождающих для всех <span class="math">\(p_1 \in \left[ 5; 10^6&nbsp;\right]\)</span></p> <script type="text/javascript">if (!document.getElementById('mathjaxscript_pelican_#%@#$@#')) { var align = "center", indent = "0em", @@ -108,7 +108,7 @@ "}"; (document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript); } -</script>Алексей ЛобановSun, 30 Oct 2016 17:40:00 +0300tag:likemath.ru,2016-10-30:posts/moio-reshenie-zadachi-134/Project EulerPythonsympyМоё решение задачи 146http://likemath.ru/posts/moio-reshenie-zadachi-146/<p>Краткое условие: необходимо найти сумму всех натуральных <span class="math">\(n\)</span>, что <span class="math">\(n^2+1\)</span>, <span class="math">\(n^2+3\)</span>, <span class="math">\(n^2+7\)</span>, <span class="math">\(n^2+9\)</span>, <span class="math">\(n^2+13\)</span>, и <span class="math">\(n^2+27\)</span> будут последовательными простыми&nbsp;числами.</p> +</script>Алексей ЛобановSun, 30 Oct 2016 17:40:00 +0300tag:likemath.ru,2016-10-30:posts/moio-reshenie-zadachi-134/Project EulerPythonsympyМоё решение задачи 146http://likemath.ru/posts/moio-reshenie-zadachi-146/<p>Краткое условие: необходимо найти сумму всех натуральных <span class="math">\(n\)</span>, что <span class="math">\(n^2+1\)</span>, <span class="math">\(n^2+3\)</span>, <span class="math">\(n^2+7\)</span>, <span class="math">\(n^2+9\)</span>, <span class="math">\(n^2+13\)</span>, и <span class="math">\(n^2+27\)</span> будут последовательными простыми&nbsp;числами.</p> <script type="text/javascript">if (!document.getElementById('mathjaxscript_pelican_#%@#$@#')) { var align = "center", indent = "0em", @@ -217,7 +217,7 @@ "}"; (document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript); } -</script>Алексей ЛобановFri, 21 Oct 2016 17:40:00 +0300tag:likemath.ru,2016-10-21:posts/moio-reshenie-zadachi-146/Project Eulerc++FLINTНахождение суммы k-ых степенейhttp://likemath.ru/posts/nakhozhdenie-summy-k-ykh-stepenei/<p>Как придумать формулу для суммы <span class="math">\(1^5 + 2^5 + 3^5 + \ldots + n^5\)</span> и есть ли она&nbsp;вообще?</p> +</script>Алексей ЛобановFri, 21 Oct 2016 17:40:00 +0300tag:likemath.ru,2016-10-21:posts/moio-reshenie-zadachi-146/Project Eulerc++FLINTНахождение суммы k-ых степенейhttp://likemath.ru/posts/nakhozhdenie-summy-k-ykh-stepenei/<p>Как придумать формулу для суммы <span class="math">\(1^5 + 2^5 + 3^5 + \ldots + n^5\)</span> и есть ли она&nbsp;вообще?</p> <script type="text/javascript">if (!document.getElementById('mathjaxscript_pelican_#%@#$@#')) { var align = "center", indent = "0em", @@ -326,4 +326,4 @@ "}"; (document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript); } -</script>Алексей ЛобановFri, 22 Jul 2016 13:35:00 +0300tag:likemath.ru,2016-07-22:posts/nakhozhdenie-summy-k-ykh-stepenei/математикаWallabag и реальная жизньhttp://likemath.ru/posts/wallabag-i-realnaia-zhizn/<p>Как я устанавливал известнейшее свободное решение для отложенного чтения, и что из этого&nbsp;получилось.</p>Алексей ЛобановThu, 17 Mar 2016 13:35:00 +0300tag:likemath.ru,2016-03-17:posts/wallabag-i-realnaia-zhizn/wallabagopen sourceGoКак я шахматного бота писалhttp://likemath.ru/posts/kak-ia-shakhmatnogo-bota-pisal/<p>Как я проверял шахматное приложение на&nbsp;&#8220;ботоустойчивость&#8221;.</p>Алексей ЛобановSun, 10 Jan 2016 13:35:00 +0300tag:likemath.ru,2016-01-10:posts/kak-ia-shakhmatnogo-bota-pisal/проектшахматыботCrossGen v1.0http://likemath.ru/posts/crossgen-v10/<p>Читая хабр, случайно натолкнулся на идею сделать программу, которая по заданной кроссвордной сетке находит способ её заполнить. В этом посте вкратце напишу про моё решение и первую версию&nbsp;приложения.</p>Алексей ЛобановTue, 04 Aug 2015 17:40:00 +0300tag:likemath.ru,2015-08-02:posts/crossgen-v10/проектc++wxWidgetsМоё решение задачи 60http://likemath.ru/posts/moio-reshenie-zadachi-60/<p>Краткое условие: необходимо найти множество из пяти простых чисел с минимальной суммой такое, что после &#8220;склеивания&#8221; в любом порядке любых двух чисел из него тоже будет простое&nbsp;число.</p>Алексей ЛобановSun, 22 Nov 2015 23:41:00 +0300tag:likemath.ru,2015-07-17:posts/moio-reshenie-zadachi-60/Project Eulerc++BGLЕщё одно вычисление выраженийhttp://likemath.ru/posts/eshchio-odno-vychislenie-vyrazhenii/<p>На хабре когда-то увидел статью про то, что в Яндексе двум сотрудникам дали задачу на написание приложения, для вычисления выражений. Менеджер справился за 4 часа, а программист за два. Я решил попробовать свои&nbsp;силы.</p>Алексей ЛобановFri, 03 Jul 2015 17:40:00 +0300tag:likemath.ru,2015-07-03:posts/eshchio-odno-vychislenie-vyrazhenii/проектМой первый пост или зачем этот блог?http://likemath.ru/posts/moi-pervyi-post-ili-zachem-etot-blog/<p>Кратко о том, почему я сделал&nbsp;блог.</p>Алексей ЛобановFri, 17 Apr 2015 13:35:00 +0300tag:likemath.ru,2015-04-17:posts/moi-pervyi-post-ili-zachem-etot-blog/блог \ No newline at end of file +</script>Алексей ЛобановFri, 22 Jul 2016 13:35:00 +0300tag:likemath.ru,2016-07-22:posts/nakhozhdenie-summy-k-ykh-stepenei/математикаWallabag и реальная жизньhttp://likemath.ru/posts/wallabag-i-realnaia-zhizn/<p>Как я устанавливал известнейшее свободное решение для отложенного чтения, и что из этого&nbsp;получилось.</p>Алексей ЛобановThu, 17 Mar 2016 13:35:00 +0300tag:likemath.ru,2016-03-17:posts/wallabag-i-realnaia-zhizn/wallabagopen sourceGoКак я шахматного бота писалhttp://likemath.ru/posts/kak-ia-shakhmatnogo-bota-pisal/<p>Как я проверял шахматное приложение на&nbsp;&#8220;ботоустойчивость&#8221;.</p>Алексей ЛобановSun, 10 Jan 2016 13:35:00 +0300tag:likemath.ru,2016-01-10:posts/kak-ia-shakhmatnogo-bota-pisal/проектшахматыботCrossGen v1.0http://likemath.ru/posts/crossgen-v10/<p>Читая хабр, случайно натолкнулся на идею сделать программу, которая по заданной кроссвордной сетке находит способ её заполнить. В этом посте вкратце напишу про моё решение и первую версию&nbsp;приложения.</p>Алексей ЛобановTue, 04 Aug 2015 17:40:00 +0300tag:likemath.ru,2015-08-02:posts/crossgen-v10/проектc++wxWidgetsМоё решение задачи 60http://likemath.ru/posts/moio-reshenie-zadachi-60/<p>Краткое условие: необходимо найти множество из пяти простых чисел с минимальной суммой такое, что после &#8220;склеивания&#8221; в любом порядке любых двух чисел из него тоже будет простое&nbsp;число.</p>Алексей ЛобановSun, 22 Nov 2015 23:41:00 +0300tag:likemath.ru,2015-07-17:posts/moio-reshenie-zadachi-60/Project Eulerc++BGLЕщё одно вычисление выраженийhttp://likemath.ru/posts/eshchio-odno-vychislenie-vyrazhenii/<p>На хабре когда-то увидел статью про то, что в Яндексе двум сотрудникам дали задачу на написание приложения, для вычисления выражений. Менеджер справился за 4 часа, а программист за два. Я решил попробовать свои&nbsp;силы.</p>Алексей ЛобановFri, 03 Jul 2015 17:40:00 +0300tag:likemath.ru,2015-07-03:posts/eshchio-odno-vychislenie-vyrazhenii/проектМой первый пост или зачем этот блог?http://likemath.ru/posts/moi-pervyi-post-ili-zachem-etot-blog/<p>Кратко о том, почему я сделал&nbsp;блог.</p>Алексей ЛобановFri, 17 Apr 2015 13:35:00 +0300tag:likemath.ru,2015-04-17:posts/moi-pervyi-post-ili-zachem-etot-blog/блог \ No newline at end of file diff --git a/feeds/feed.rss.xml.gz b/feeds/feed.rss.xml.gz index 6a9be78..bd3a0a9 100644 Binary files a/feeds/feed.rss.xml.gz and b/feeds/feed.rss.xml.gz differ diff --git a/feeds/misc.atom.xml b/feeds/misc.atom.xml index b0963d8..300921d 100644 --- a/feeds/misc.atom.xml +++ b/feeds/misc.atom.xml @@ -1,5 +1,5 @@ -Блог 529http://likemath.ru/2016-07-22T13:35:00+03:00Нахождение суммы k-ых степеней2016-07-22T13:35:00+03:002016-07-22T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-07-22:posts/nakhozhdenie-summy-k-ykh-stepenei/<p>Как придумать формулу для суммы <span class="math">\(1^5 + 2^5 + 3^5 + \ldots + n^5\)</span> и есть ли она&nbsp;вообще?</p> +Блог 529http://likemath.ru/2016-07-22T13:35:00+03:00Нахождение суммы k-ых степеней2016-07-22T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-07-22:posts/nakhozhdenie-summy-k-ykh-stepenei/<p>Как придумать формулу для суммы <span class="math">\(1^5 + 2^5 + 3^5 + \ldots + n^5\)</span> и есть ли она&nbsp;вообще?</p> <script type="text/javascript">if (!document.getElementById('mathjaxscript_pelican_#%@#$@#')) { var align = "center", indent = "0em", @@ -108,4 +108,4 @@ "}"; (document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript); } -</script>Wallabag и реальная жизнь2016-03-17T13:35:00+03:002016-03-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-03-17:posts/wallabag-i-realnaia-zhizn/<p>Как я устанавливал известнейшее свободное решение для отложенного чтения, и что из этого&nbsp;получилось.</p>Мой первый пост или зачем этот блог?2015-04-17T13:35:00+03:002015-04-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2015-04-17:posts/moi-pervyi-post-ili-zachem-etot-blog/<p>Кратко о том, почему я сделал&nbsp;блог.</p> \ No newline at end of file +</script>Wallabag и реальная жизнь2016-03-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-03-17:posts/wallabag-i-realnaia-zhizn/<p>Как я устанавливал известнейшее свободное решение для отложенного чтения, и что из этого&nbsp;получилось.</p>Мой первый пост или зачем этот блог?2015-04-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2015-04-17:posts/moi-pervyi-post-ili-zachem-etot-blog/<p>Кратко о том, почему я сделал&nbsp;блог.</p> \ No newline at end of file diff --git a/feeds/misc.atom.xml.gz b/feeds/misc.atom.xml.gz index 28d9cfa..a128cc8 100644 Binary files a/feeds/misc.atom.xml.gz and b/feeds/misc.atom.xml.gz differ diff --git a/feeds/proekty.atom.xml b/feeds/proekty.atom.xml index be979a7..bb7f704 100644 --- a/feeds/proekty.atom.xml +++ b/feeds/proekty.atom.xml @@ -1,2 +1,2 @@ -Блог 529http://likemath.ru/2017-07-17T13:35:00+03:00Экспорт партий с Lichess2017-07-17T13:35:00+03:002017-07-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2017-07-17:posts/eksport-partii-s-lichess/<p>Сохраняем себе шахматные партии с Lichess.org. Рабочий скрипт на Python&nbsp;прилагается.</p>Как я шахматного бота писал2016-01-10T13:35:00+03:002016-01-10T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-01-10:posts/kak-ia-shakhmatnogo-bota-pisal/<p>Как я проверял шахматное приложение на&nbsp;&#8220;ботоустойчивость&#8221;.</p>CrossGen v1.02015-08-04T17:40:00+03:002015-08-04T17:40:00+03:00Алексей Лобановtag:likemath.ru,2015-08-02:posts/crossgen-v10/<p>Читая хабр, случайно натолкнулся на идею сделать программу, которая по заданной кроссвордной сетке находит способ её заполнить. В этом посте вкратце напишу про моё решение и первую версию&nbsp;приложения.</p>Ещё одно вычисление выражений2015-07-03T17:40:00+03:002015-07-03T17:40:00+03:00Алексей Лобановtag:likemath.ru,2015-07-03:posts/eshchio-odno-vychislenie-vyrazhenii/<p>На хабре когда-то увидел статью про то, что в Яндексе двум сотрудникам дали задачу на написание приложения, для вычисления выражений. Менеджер справился за 4 часа, а программист за два. Я решил попробовать свои&nbsp;силы.</p> \ No newline at end of file +Блог 529http://likemath.ru/2017-07-17T13:35:00+03:00Экспорт партий с Lichess2017-07-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2017-07-17:posts/eksport-partii-s-lichess/<p>Сохраняем себе шахматные партии с Lichess.org. Рабочий скрипт на Python&nbsp;прилагается.</p>Как я шахматного бота писал2016-01-10T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-01-10:posts/kak-ia-shakhmatnogo-bota-pisal/<p>Как я проверял шахматное приложение на&nbsp;&#8220;ботоустойчивость&#8221;.</p>CrossGen v1.02015-08-04T17:40:00+03:00Алексей Лобановtag:likemath.ru,2015-08-02:posts/crossgen-v10/<p>Читая хабр, случайно натолкнулся на идею сделать программу, которая по заданной кроссвордной сетке находит способ её заполнить. В этом посте вкратце напишу про моё решение и первую версию&nbsp;приложения.</p>Ещё одно вычисление выражений2015-07-03T17:40:00+03:00Алексей Лобановtag:likemath.ru,2015-07-03:posts/eshchio-odno-vychislenie-vyrazhenii/<p>На хабре когда-то увидел статью про то, что в Яндексе двум сотрудникам дали задачу на написание приложения, для вычисления выражений. Менеджер справился за 4 часа, а программист за два. Я решил попробовать свои&nbsp;силы.</p> \ No newline at end of file diff --git a/feeds/proekty.atom.xml.gz b/feeds/proekty.atom.xml.gz index 5f1b1d4..c657e62 100644 Binary files a/feeds/proekty.atom.xml.gz and b/feeds/proekty.atom.xml.gz differ diff --git a/feeds/project-euler.atom.xml b/feeds/project-euler.atom.xml index 9cae4b3..97ab4b1 100644 --- a/feeds/project-euler.atom.xml +++ b/feeds/project-euler.atom.xml @@ -1,5 +1,5 @@ -Блог 529http://likemath.ru/2016-10-30T17:40:00+03:00Моё решение задачи 1342016-10-30T17:40:00+03:002016-10-30T17:40:00+03:00Алексей Лобановtag:likemath.ru,2016-10-30:posts/moio-reshenie-zadachi-134/<p>Краткое условие: назовём <em>порождающим</em> для двух последовательных простых <span class="math">\(p_1 &lt; p_2\)</span> наименьшее натуральное число, что оно закачивается на <span class="math">\(p_1\)</span> и при этом делится на <span class="math">\(p_2\)</span>. Необходимо найти сумму порождающих для всех <span class="math">\(p_1 \in \left[ 5; 10^6&nbsp;\right]\)</span></p> +Блог 529http://likemath.ru/2016-10-30T17:40:00+03:00Моё решение задачи 1342016-10-30T17:40:00+03:00Алексей Лобановtag:likemath.ru,2016-10-30:posts/moio-reshenie-zadachi-134/<p>Краткое условие: назовём <em>порождающим</em> для двух последовательных простых <span class="math">\(p_1 &lt; p_2\)</span> наименьшее натуральное число, что оно закачивается на <span class="math">\(p_1\)</span> и при этом делится на <span class="math">\(p_2\)</span>. Необходимо найти сумму порождающих для всех <span class="math">\(p_1 \in \left[ 5; 10^6&nbsp;\right]\)</span></p> <script type="text/javascript">if (!document.getElementById('mathjaxscript_pelican_#%@#$@#')) { var align = "center", indent = "0em", @@ -108,7 +108,7 @@ "}"; (document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript); } -</script>Моё решение задачи 1462016-10-21T17:40:00+03:002016-10-21T17:40:00+03:00Алексей Лобановtag:likemath.ru,2016-10-21:posts/moio-reshenie-zadachi-146/<p>Краткое условие: необходимо найти сумму всех натуральных <span class="math">\(n\)</span>, что <span class="math">\(n^2+1\)</span>, <span class="math">\(n^2+3\)</span>, <span class="math">\(n^2+7\)</span>, <span class="math">\(n^2+9\)</span>, <span class="math">\(n^2+13\)</span>, и <span class="math">\(n^2+27\)</span> будут последовательными простыми&nbsp;числами.</p> +</script>Моё решение задачи 1462016-10-21T17:40:00+03:00Алексей Лобановtag:likemath.ru,2016-10-21:posts/moio-reshenie-zadachi-146/<p>Краткое условие: необходимо найти сумму всех натуральных <span class="math">\(n\)</span>, что <span class="math">\(n^2+1\)</span>, <span class="math">\(n^2+3\)</span>, <span class="math">\(n^2+7\)</span>, <span class="math">\(n^2+9\)</span>, <span class="math">\(n^2+13\)</span>, и <span class="math">\(n^2+27\)</span> будут последовательными простыми&nbsp;числами.</p> <script type="text/javascript">if (!document.getElementById('mathjaxscript_pelican_#%@#$@#')) { var align = "center", indent = "0em", @@ -217,4 +217,4 @@ "}"; (document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript); } -</script>Моё решение задачи 602015-11-22T23:41:00+03:002015-11-22T23:41:00+03:00Алексей Лобановtag:likemath.ru,2015-07-17:posts/moio-reshenie-zadachi-60/<p>Краткое условие: необходимо найти множество из пяти простых чисел с минимальной суммой такое, что после &#8220;склеивания&#8221; в любом порядке любых двух чисел из него тоже будет простое&nbsp;число.</p> \ No newline at end of file +</script>Моё решение задачи 602015-11-22T23:41:00+03:00Алексей Лобановtag:likemath.ru,2015-07-17:posts/moio-reshenie-zadachi-60/<p>Краткое условие: необходимо найти множество из пяти простых чисел с минимальной суммой такое, что после &#8220;склеивания&#8221; в любом порядке любых двух чисел из него тоже будет простое&nbsp;число.</p> \ No newline at end of file diff --git a/feeds/project-euler.atom.xml.gz b/feeds/project-euler.atom.xml.gz index 64467fa..c336e8e 100644 Binary files a/feeds/project-euler.atom.xml.gz and b/feeds/project-euler.atom.xml.gz differ diff --git a/feeds/tag-bgl.atom.xml b/feeds/tag-bgl.atom.xml index 07997c4..7f6b6f4 100644 --- a/feeds/tag-bgl.atom.xml +++ b/feeds/tag-bgl.atom.xml @@ -1,2 +1,2 @@ -Блог 529http://likemath.ru/2015-11-22T23:41:00+03:00Моё решение задачи 602015-11-22T23:41:00+03:002015-11-22T23:41:00+03:00Алексей Лобановtag:likemath.ru,2015-07-17:posts/moio-reshenie-zadachi-60/<p>Краткое условие: необходимо найти множество из пяти простых чисел с минимальной суммой такое, что после &#8220;склеивания&#8221; в любом порядке любых двух чисел из него тоже будет простое&nbsp;число.</p> \ No newline at end of file +Блог 529http://likemath.ru/2015-11-22T23:41:00+03:00Моё решение задачи 602015-11-22T23:41:00+03:00Алексей Лобановtag:likemath.ru,2015-07-17:posts/moio-reshenie-zadachi-60/<p>Краткое условие: необходимо найти множество из пяти простых чисел с минимальной суммой такое, что после &#8220;склеивания&#8221; в любом порядке любых двух чисел из него тоже будет простое&nbsp;число.</p> \ No newline at end of file diff --git a/feeds/tag-bgl.atom.xml.gz b/feeds/tag-bgl.atom.xml.gz index 14abff9..3762e7d 100644 Binary files a/feeds/tag-bgl.atom.xml.gz and b/feeds/tag-bgl.atom.xml.gz differ diff --git a/feeds/tag-blog.atom.xml b/feeds/tag-blog.atom.xml index 8f46d4b..2e3e9d4 100644 --- a/feeds/tag-blog.atom.xml +++ b/feeds/tag-blog.atom.xml @@ -1,2 +1,2 @@ -Блог 529http://likemath.ru/2015-04-17T13:35:00+03:00Мой первый пост или зачем этот блог?2015-04-17T13:35:00+03:002015-04-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2015-04-17:posts/moi-pervyi-post-ili-zachem-etot-blog/<p>Кратко о том, почему я сделал&nbsp;блог.</p> \ No newline at end of file +Блог 529http://likemath.ru/2015-04-17T13:35:00+03:00Мой первый пост или зачем этот блог?2015-04-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2015-04-17:posts/moi-pervyi-post-ili-zachem-etot-blog/<p>Кратко о том, почему я сделал&nbsp;блог.</p> \ No newline at end of file diff --git a/feeds/tag-blog.atom.xml.gz b/feeds/tag-blog.atom.xml.gz index 617d1dc..09e6486 100644 Binary files a/feeds/tag-blog.atom.xml.gz and b/feeds/tag-blog.atom.xml.gz differ diff --git a/feeds/tag-bot.atom.xml b/feeds/tag-bot.atom.xml index f88a5d0..fd11504 100644 --- a/feeds/tag-bot.atom.xml +++ b/feeds/tag-bot.atom.xml @@ -1,2 +1,2 @@ -Блог 529http://likemath.ru/2016-01-10T13:35:00+03:00Как я шахматного бота писал2016-01-10T13:35:00+03:002016-01-10T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-01-10:posts/kak-ia-shakhmatnogo-bota-pisal/<p>Как я проверял шахматное приложение на&nbsp;&#8220;ботоустойчивость&#8221;.</p> \ No newline at end of file +Блог 529http://likemath.ru/2016-01-10T13:35:00+03:00Как я шахматного бота писал2016-01-10T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-01-10:posts/kak-ia-shakhmatnogo-bota-pisal/<p>Как я проверял шахматное приложение на&nbsp;&#8220;ботоустойчивость&#8221;.</p> \ No newline at end of file diff --git a/feeds/tag-bot.atom.xml.gz b/feeds/tag-bot.atom.xml.gz index 85c6e2f..b8f1c9a 100644 Binary files a/feeds/tag-bot.atom.xml.gz and b/feeds/tag-bot.atom.xml.gz differ diff --git a/feeds/tag-c.atom.xml b/feeds/tag-c.atom.xml index 44c32b9..9c7eea3 100644 --- a/feeds/tag-c.atom.xml +++ b/feeds/tag-c.atom.xml @@ -1,5 +1,5 @@ -Блог 529http://likemath.ru/2016-10-21T17:40:00+03:00Моё решение задачи 1462016-10-21T17:40:00+03:002016-10-21T17:40:00+03:00Алексей Лобановtag:likemath.ru,2016-10-21:posts/moio-reshenie-zadachi-146/<p>Краткое условие: необходимо найти сумму всех натуральных <span class="math">\(n\)</span>, что <span class="math">\(n^2+1\)</span>, <span class="math">\(n^2+3\)</span>, <span class="math">\(n^2+7\)</span>, <span class="math">\(n^2+9\)</span>, <span class="math">\(n^2+13\)</span>, и <span class="math">\(n^2+27\)</span> будут последовательными простыми&nbsp;числами.</p> +Блог 529http://likemath.ru/2016-10-21T17:40:00+03:00Моё решение задачи 1462016-10-21T17:40:00+03:00Алексей Лобановtag:likemath.ru,2016-10-21:posts/moio-reshenie-zadachi-146/<p>Краткое условие: необходимо найти сумму всех натуральных <span class="math">\(n\)</span>, что <span class="math">\(n^2+1\)</span>, <span class="math">\(n^2+3\)</span>, <span class="math">\(n^2+7\)</span>, <span class="math">\(n^2+9\)</span>, <span class="math">\(n^2+13\)</span>, и <span class="math">\(n^2+27\)</span> будут последовательными простыми&nbsp;числами.</p> <script type="text/javascript">if (!document.getElementById('mathjaxscript_pelican_#%@#$@#')) { var align = "center", indent = "0em", @@ -108,4 +108,4 @@ "}"; (document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript); } -</script>CrossGen v1.02015-08-04T17:40:00+03:002015-08-04T17:40:00+03:00Алексей Лобановtag:likemath.ru,2015-08-02:posts/crossgen-v10/<p>Читая хабр, случайно натолкнулся на идею сделать программу, которая по заданной кроссвордной сетке находит способ её заполнить. В этом посте вкратце напишу про моё решение и первую версию&nbsp;приложения.</p>Моё решение задачи 602015-11-22T23:41:00+03:002015-11-22T23:41:00+03:00Алексей Лобановtag:likemath.ru,2015-07-17:posts/moio-reshenie-zadachi-60/<p>Краткое условие: необходимо найти множество из пяти простых чисел с минимальной суммой такое, что после &#8220;склеивания&#8221; в любом порядке любых двух чисел из него тоже будет простое&nbsp;число.</p> \ No newline at end of file +</script>CrossGen v1.02015-08-04T17:40:00+03:00Алексей Лобановtag:likemath.ru,2015-08-02:posts/crossgen-v10/<p>Читая хабр, случайно натолкнулся на идею сделать программу, которая по заданной кроссвордной сетке находит способ её заполнить. В этом посте вкратце напишу про моё решение и первую версию&nbsp;приложения.</p>Моё решение задачи 602015-11-22T23:41:00+03:00Алексей Лобановtag:likemath.ru,2015-07-17:posts/moio-reshenie-zadachi-60/<p>Краткое условие: необходимо найти множество из пяти простых чисел с минимальной суммой такое, что после &#8220;склеивания&#8221; в любом порядке любых двух чисел из него тоже будет простое&nbsp;число.</p> \ No newline at end of file diff --git a/feeds/tag-c.atom.xml.gz b/feeds/tag-c.atom.xml.gz index 66fd5ce..b4575d3 100644 Binary files a/feeds/tag-c.atom.xml.gz and b/feeds/tag-c.atom.xml.gz differ diff --git a/feeds/tag-flint.atom.xml b/feeds/tag-flint.atom.xml index 455f8f8..3095b2e 100644 --- a/feeds/tag-flint.atom.xml +++ b/feeds/tag-flint.atom.xml @@ -1,5 +1,5 @@ -Блог 529http://likemath.ru/2016-10-21T17:40:00+03:00Моё решение задачи 1462016-10-21T17:40:00+03:002016-10-21T17:40:00+03:00Алексей Лобановtag:likemath.ru,2016-10-21:posts/moio-reshenie-zadachi-146/<p>Краткое условие: необходимо найти сумму всех натуральных <span class="math">\(n\)</span>, что <span class="math">\(n^2+1\)</span>, <span class="math">\(n^2+3\)</span>, <span class="math">\(n^2+7\)</span>, <span class="math">\(n^2+9\)</span>, <span class="math">\(n^2+13\)</span>, и <span class="math">\(n^2+27\)</span> будут последовательными простыми&nbsp;числами.</p> +Блог 529http://likemath.ru/2016-10-21T17:40:00+03:00Моё решение задачи 1462016-10-21T17:40:00+03:00Алексей Лобановtag:likemath.ru,2016-10-21:posts/moio-reshenie-zadachi-146/<p>Краткое условие: необходимо найти сумму всех натуральных <span class="math">\(n\)</span>, что <span class="math">\(n^2+1\)</span>, <span class="math">\(n^2+3\)</span>, <span class="math">\(n^2+7\)</span>, <span class="math">\(n^2+9\)</span>, <span class="math">\(n^2+13\)</span>, и <span class="math">\(n^2+27\)</span> будут последовательными простыми&nbsp;числами.</p> <script type="text/javascript">if (!document.getElementById('mathjaxscript_pelican_#%@#$@#')) { var align = "center", indent = "0em", diff --git a/feeds/tag-flint.atom.xml.gz b/feeds/tag-flint.atom.xml.gz index c5f259e..70c337b 100644 Binary files a/feeds/tag-flint.atom.xml.gz and b/feeds/tag-flint.atom.xml.gz differ diff --git a/feeds/tag-go.atom.xml b/feeds/tag-go.atom.xml index dc713df..31e29cb 100644 --- a/feeds/tag-go.atom.xml +++ b/feeds/tag-go.atom.xml @@ -1,2 +1,2 @@ -Блог 529http://likemath.ru/2016-03-17T13:35:00+03:00Wallabag и реальная жизнь2016-03-17T13:35:00+03:002016-03-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-03-17:posts/wallabag-i-realnaia-zhizn/<p>Как я устанавливал известнейшее свободное решение для отложенного чтения, и что из этого&nbsp;получилось.</p> \ No newline at end of file +Блог 529http://likemath.ru/2016-03-17T13:35:00+03:00Wallabag и реальная жизнь2016-03-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-03-17:posts/wallabag-i-realnaia-zhizn/<p>Как я устанавливал известнейшее свободное решение для отложенного чтения, и что из этого&nbsp;получилось.</p> \ No newline at end of file diff --git a/feeds/tag-go.atom.xml.gz b/feeds/tag-go.atom.xml.gz index 7220347..857a4f0 100644 Binary files a/feeds/tag-go.atom.xml.gz and b/feeds/tag-go.atom.xml.gz differ diff --git a/feeds/tag-lichess.atom.xml b/feeds/tag-lichess.atom.xml index 808ceea..831e5c3 100644 --- a/feeds/tag-lichess.atom.xml +++ b/feeds/tag-lichess.atom.xml @@ -1,2 +1,2 @@ -Блог 529http://likemath.ru/2017-07-17T13:35:00+03:00Экспорт партий с Lichess2017-07-17T13:35:00+03:002017-07-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2017-07-17:posts/eksport-partii-s-lichess/<p>Сохраняем себе шахматные партии с Lichess.org. Рабочий скрипт на Python&nbsp;прилагается.</p> \ No newline at end of file +Блог 529http://likemath.ru/2017-07-17T13:35:00+03:00Экспорт партий с Lichess2017-07-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2017-07-17:posts/eksport-partii-s-lichess/<p>Сохраняем себе шахматные партии с Lichess.org. Рабочий скрипт на Python&nbsp;прилагается.</p> \ No newline at end of file diff --git a/feeds/tag-lichess.atom.xml.gz b/feeds/tag-lichess.atom.xml.gz index e967d8f..d418d05 100644 Binary files a/feeds/tag-lichess.atom.xml.gz and b/feeds/tag-lichess.atom.xml.gz differ diff --git a/feeds/tag-matematika.atom.xml b/feeds/tag-matematika.atom.xml index 2d77276..04245c7 100644 --- a/feeds/tag-matematika.atom.xml +++ b/feeds/tag-matematika.atom.xml @@ -1,5 +1,5 @@ -Блог 529http://likemath.ru/2016-07-22T13:35:00+03:00Нахождение суммы k-ых степеней2016-07-22T13:35:00+03:002016-07-22T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-07-22:posts/nakhozhdenie-summy-k-ykh-stepenei/<p>Как придумать формулу для суммы <span class="math">\(1^5 + 2^5 + 3^5 + \ldots + n^5\)</span> и есть ли она&nbsp;вообще?</p> +Блог 529http://likemath.ru/2016-07-22T13:35:00+03:00Нахождение суммы k-ых степеней2016-07-22T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-07-22:posts/nakhozhdenie-summy-k-ykh-stepenei/<p>Как придумать формулу для суммы <span class="math">\(1^5 + 2^5 + 3^5 + \ldots + n^5\)</span> и есть ли она&nbsp;вообще?</p> <script type="text/javascript">if (!document.getElementById('mathjaxscript_pelican_#%@#$@#')) { var align = "center", indent = "0em", diff --git a/feeds/tag-matematika.atom.xml.gz b/feeds/tag-matematika.atom.xml.gz index 0c88913..822e1d2 100644 Binary files a/feeds/tag-matematika.atom.xml.gz and b/feeds/tag-matematika.atom.xml.gz differ diff --git a/feeds/tag-open-source.atom.xml b/feeds/tag-open-source.atom.xml index fa1a934..b1e08a7 100644 --- a/feeds/tag-open-source.atom.xml +++ b/feeds/tag-open-source.atom.xml @@ -1,2 +1,2 @@ -Блог 529http://likemath.ru/2016-03-17T13:35:00+03:00Wallabag и реальная жизнь2016-03-17T13:35:00+03:002016-03-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-03-17:posts/wallabag-i-realnaia-zhizn/<p>Как я устанавливал известнейшее свободное решение для отложенного чтения, и что из этого&nbsp;получилось.</p> \ No newline at end of file +Блог 529http://likemath.ru/2016-03-17T13:35:00+03:00Wallabag и реальная жизнь2016-03-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-03-17:posts/wallabag-i-realnaia-zhizn/<p>Как я устанавливал известнейшее свободное решение для отложенного чтения, и что из этого&nbsp;получилось.</p> \ No newline at end of file diff --git a/feeds/tag-open-source.atom.xml.gz b/feeds/tag-open-source.atom.xml.gz index 5527805..af79dad 100644 Binary files a/feeds/tag-open-source.atom.xml.gz and b/feeds/tag-open-source.atom.xml.gz differ diff --git a/feeds/tag-proekt.atom.xml b/feeds/tag-proekt.atom.xml index 828444d..7ea5574 100644 --- a/feeds/tag-proekt.atom.xml +++ b/feeds/tag-proekt.atom.xml @@ -1,2 +1,2 @@ -Блог 529http://likemath.ru/2017-07-17T13:35:00+03:00Экспорт партий с Lichess2017-07-17T13:35:00+03:002017-07-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2017-07-17:posts/eksport-partii-s-lichess/<p>Сохраняем себе шахматные партии с Lichess.org. Рабочий скрипт на Python&nbsp;прилагается.</p>Как я шахматного бота писал2016-01-10T13:35:00+03:002016-01-10T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-01-10:posts/kak-ia-shakhmatnogo-bota-pisal/<p>Как я проверял шахматное приложение на&nbsp;&#8220;ботоустойчивость&#8221;.</p>CrossGen v1.02015-08-04T17:40:00+03:002015-08-04T17:40:00+03:00Алексей Лобановtag:likemath.ru,2015-08-02:posts/crossgen-v10/<p>Читая хабр, случайно натолкнулся на идею сделать программу, которая по заданной кроссвордной сетке находит способ её заполнить. В этом посте вкратце напишу про моё решение и первую версию&nbsp;приложения.</p>Ещё одно вычисление выражений2015-07-03T17:40:00+03:002015-07-03T17:40:00+03:00Алексей Лобановtag:likemath.ru,2015-07-03:posts/eshchio-odno-vychislenie-vyrazhenii/<p>На хабре когда-то увидел статью про то, что в Яндексе двум сотрудникам дали задачу на написание приложения, для вычисления выражений. Менеджер справился за 4 часа, а программист за два. Я решил попробовать свои&nbsp;силы.</p> \ No newline at end of file +Блог 529http://likemath.ru/2017-07-17T13:35:00+03:00Экспорт партий с Lichess2017-07-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2017-07-17:posts/eksport-partii-s-lichess/<p>Сохраняем себе шахматные партии с Lichess.org. Рабочий скрипт на Python&nbsp;прилагается.</p>Как я шахматного бота писал2016-01-10T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-01-10:posts/kak-ia-shakhmatnogo-bota-pisal/<p>Как я проверял шахматное приложение на&nbsp;&#8220;ботоустойчивость&#8221;.</p>CrossGen v1.02015-08-04T17:40:00+03:00Алексей Лобановtag:likemath.ru,2015-08-02:posts/crossgen-v10/<p>Читая хабр, случайно натолкнулся на идею сделать программу, которая по заданной кроссвордной сетке находит способ её заполнить. В этом посте вкратце напишу про моё решение и первую версию&nbsp;приложения.</p>Ещё одно вычисление выражений2015-07-03T17:40:00+03:00Алексей Лобановtag:likemath.ru,2015-07-03:posts/eshchio-odno-vychislenie-vyrazhenii/<p>На хабре когда-то увидел статью про то, что в Яндексе двум сотрудникам дали задачу на написание приложения, для вычисления выражений. Менеджер справился за 4 часа, а программист за два. Я решил попробовать свои&nbsp;силы.</p> \ No newline at end of file diff --git a/feeds/tag-proekt.atom.xml.gz b/feeds/tag-proekt.atom.xml.gz index b6267ac..3147592 100644 Binary files a/feeds/tag-proekt.atom.xml.gz and b/feeds/tag-proekt.atom.xml.gz differ diff --git a/feeds/tag-project-euler.atom.xml b/feeds/tag-project-euler.atom.xml index 2f95e00..c2f39b7 100644 --- a/feeds/tag-project-euler.atom.xml +++ b/feeds/tag-project-euler.atom.xml @@ -1,5 +1,5 @@ -Блог 529http://likemath.ru/2016-10-30T17:40:00+03:00Моё решение задачи 1342016-10-30T17:40:00+03:002016-10-30T17:40:00+03:00Алексей Лобановtag:likemath.ru,2016-10-30:posts/moio-reshenie-zadachi-134/<p>Краткое условие: назовём <em>порождающим</em> для двух последовательных простых <span class="math">\(p_1 &lt; p_2\)</span> наименьшее натуральное число, что оно закачивается на <span class="math">\(p_1\)</span> и при этом делится на <span class="math">\(p_2\)</span>. Необходимо найти сумму порождающих для всех <span class="math">\(p_1 \in \left[ 5; 10^6&nbsp;\right]\)</span></p> +Блог 529http://likemath.ru/2016-10-30T17:40:00+03:00Моё решение задачи 1342016-10-30T17:40:00+03:00Алексей Лобановtag:likemath.ru,2016-10-30:posts/moio-reshenie-zadachi-134/<p>Краткое условие: назовём <em>порождающим</em> для двух последовательных простых <span class="math">\(p_1 &lt; p_2\)</span> наименьшее натуральное число, что оно закачивается на <span class="math">\(p_1\)</span> и при этом делится на <span class="math">\(p_2\)</span>. Необходимо найти сумму порождающих для всех <span class="math">\(p_1 \in \left[ 5; 10^6&nbsp;\right]\)</span></p> <script type="text/javascript">if (!document.getElementById('mathjaxscript_pelican_#%@#$@#')) { var align = "center", indent = "0em", @@ -108,7 +108,7 @@ "}"; (document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript); } -</script>Моё решение задачи 1462016-10-21T17:40:00+03:002016-10-21T17:40:00+03:00Алексей Лобановtag:likemath.ru,2016-10-21:posts/moio-reshenie-zadachi-146/<p>Краткое условие: необходимо найти сумму всех натуральных <span class="math">\(n\)</span>, что <span class="math">\(n^2+1\)</span>, <span class="math">\(n^2+3\)</span>, <span class="math">\(n^2+7\)</span>, <span class="math">\(n^2+9\)</span>, <span class="math">\(n^2+13\)</span>, и <span class="math">\(n^2+27\)</span> будут последовательными простыми&nbsp;числами.</p> +</script>Моё решение задачи 1462016-10-21T17:40:00+03:00Алексей Лобановtag:likemath.ru,2016-10-21:posts/moio-reshenie-zadachi-146/<p>Краткое условие: необходимо найти сумму всех натуральных <span class="math">\(n\)</span>, что <span class="math">\(n^2+1\)</span>, <span class="math">\(n^2+3\)</span>, <span class="math">\(n^2+7\)</span>, <span class="math">\(n^2+9\)</span>, <span class="math">\(n^2+13\)</span>, и <span class="math">\(n^2+27\)</span> будут последовательными простыми&nbsp;числами.</p> <script type="text/javascript">if (!document.getElementById('mathjaxscript_pelican_#%@#$@#')) { var align = "center", indent = "0em", @@ -217,4 +217,4 @@ "}"; (document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript); } -</script>Моё решение задачи 602015-11-22T23:41:00+03:002015-11-22T23:41:00+03:00Алексей Лобановtag:likemath.ru,2015-07-17:posts/moio-reshenie-zadachi-60/<p>Краткое условие: необходимо найти множество из пяти простых чисел с минимальной суммой такое, что после &#8220;склеивания&#8221; в любом порядке любых двух чисел из него тоже будет простое&nbsp;число.</p> \ No newline at end of file +</script>Моё решение задачи 602015-11-22T23:41:00+03:00Алексей Лобановtag:likemath.ru,2015-07-17:posts/moio-reshenie-zadachi-60/<p>Краткое условие: необходимо найти множество из пяти простых чисел с минимальной суммой такое, что после &#8220;склеивания&#8221; в любом порядке любых двух чисел из него тоже будет простое&nbsp;число.</p> \ No newline at end of file diff --git a/feeds/tag-project-euler.atom.xml.gz b/feeds/tag-project-euler.atom.xml.gz index 9bd9976..c4af962 100644 Binary files a/feeds/tag-project-euler.atom.xml.gz and b/feeds/tag-project-euler.atom.xml.gz differ diff --git a/feeds/tag-python.atom.xml b/feeds/tag-python.atom.xml index a798a92..907ce6c 100644 --- a/feeds/tag-python.atom.xml +++ b/feeds/tag-python.atom.xml @@ -1,5 +1,5 @@ -Блог 529http://likemath.ru/2016-10-30T17:40:00+03:00Моё решение задачи 1342016-10-30T17:40:00+03:002016-10-30T17:40:00+03:00Алексей Лобановtag:likemath.ru,2016-10-30:posts/moio-reshenie-zadachi-134/<p>Краткое условие: назовём <em>порождающим</em> для двух последовательных простых <span class="math">\(p_1 &lt; p_2\)</span> наименьшее натуральное число, что оно закачивается на <span class="math">\(p_1\)</span> и при этом делится на <span class="math">\(p_2\)</span>. Необходимо найти сумму порождающих для всех <span class="math">\(p_1 \in \left[ 5; 10^6&nbsp;\right]\)</span></p> +Блог 529http://likemath.ru/2016-10-30T17:40:00+03:00Моё решение задачи 1342016-10-30T17:40:00+03:00Алексей Лобановtag:likemath.ru,2016-10-30:posts/moio-reshenie-zadachi-134/<p>Краткое условие: назовём <em>порождающим</em> для двух последовательных простых <span class="math">\(p_1 &lt; p_2\)</span> наименьшее натуральное число, что оно закачивается на <span class="math">\(p_1\)</span> и при этом делится на <span class="math">\(p_2\)</span>. Необходимо найти сумму порождающих для всех <span class="math">\(p_1 \in \left[ 5; 10^6&nbsp;\right]\)</span></p> <script type="text/javascript">if (!document.getElementById('mathjaxscript_pelican_#%@#$@#')) { var align = "center", indent = "0em", diff --git a/feeds/tag-python.atom.xml.gz b/feeds/tag-python.atom.xml.gz index ad92758..d6463d2 100644 Binary files a/feeds/tag-python.atom.xml.gz and b/feeds/tag-python.atom.xml.gz differ diff --git a/feeds/tag-shakhmaty.atom.xml b/feeds/tag-shakhmaty.atom.xml index 16dae25..cf840b3 100644 --- a/feeds/tag-shakhmaty.atom.xml +++ b/feeds/tag-shakhmaty.atom.xml @@ -1,2 +1,2 @@ -Блог 529http://likemath.ru/2017-07-17T13:35:00+03:00Экспорт партий с Lichess2017-07-17T13:35:00+03:002017-07-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2017-07-17:posts/eksport-partii-s-lichess/<p>Сохраняем себе шахматные партии с Lichess.org. Рабочий скрипт на Python&nbsp;прилагается.</p>Как я шахматного бота писал2016-01-10T13:35:00+03:002016-01-10T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-01-10:posts/kak-ia-shakhmatnogo-bota-pisal/<p>Как я проверял шахматное приложение на&nbsp;&#8220;ботоустойчивость&#8221;.</p> \ No newline at end of file +Блог 529http://likemath.ru/2017-07-17T13:35:00+03:00Экспорт партий с Lichess2017-07-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2017-07-17:posts/eksport-partii-s-lichess/<p>Сохраняем себе шахматные партии с Lichess.org. Рабочий скрипт на Python&nbsp;прилагается.</p>Как я шахматного бота писал2016-01-10T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-01-10:posts/kak-ia-shakhmatnogo-bota-pisal/<p>Как я проверял шахматное приложение на&nbsp;&#8220;ботоустойчивость&#8221;.</p> \ No newline at end of file diff --git a/feeds/tag-shakhmaty.atom.xml.gz b/feeds/tag-shakhmaty.atom.xml.gz index b809a8a..4d9c4a1 100644 Binary files a/feeds/tag-shakhmaty.atom.xml.gz and b/feeds/tag-shakhmaty.atom.xml.gz differ diff --git a/feeds/tag-sympy.atom.xml b/feeds/tag-sympy.atom.xml index 7f1b780..f568ba2 100644 --- a/feeds/tag-sympy.atom.xml +++ b/feeds/tag-sympy.atom.xml @@ -1,5 +1,5 @@ -Блог 529http://likemath.ru/2016-10-30T17:40:00+03:00Моё решение задачи 1342016-10-30T17:40:00+03:002016-10-30T17:40:00+03:00Алексей Лобановtag:likemath.ru,2016-10-30:posts/moio-reshenie-zadachi-134/<p>Краткое условие: назовём <em>порождающим</em> для двух последовательных простых <span class="math">\(p_1 &lt; p_2\)</span> наименьшее натуральное число, что оно закачивается на <span class="math">\(p_1\)</span> и при этом делится на <span class="math">\(p_2\)</span>. Необходимо найти сумму порождающих для всех <span class="math">\(p_1 \in \left[ 5; 10^6&nbsp;\right]\)</span></p> +Блог 529http://likemath.ru/2016-10-30T17:40:00+03:00Моё решение задачи 1342016-10-30T17:40:00+03:00Алексей Лобановtag:likemath.ru,2016-10-30:posts/moio-reshenie-zadachi-134/<p>Краткое условие: назовём <em>порождающим</em> для двух последовательных простых <span class="math">\(p_1 &lt; p_2\)</span> наименьшее натуральное число, что оно закачивается на <span class="math">\(p_1\)</span> и при этом делится на <span class="math">\(p_2\)</span>. Необходимо найти сумму порождающих для всех <span class="math">\(p_1 \in \left[ 5; 10^6&nbsp;\right]\)</span></p> <script type="text/javascript">if (!document.getElementById('mathjaxscript_pelican_#%@#$@#')) { var align = "center", indent = "0em", diff --git a/feeds/tag-sympy.atom.xml.gz b/feeds/tag-sympy.atom.xml.gz index f64d04a..a105e19 100644 Binary files a/feeds/tag-sympy.atom.xml.gz and b/feeds/tag-sympy.atom.xml.gz differ diff --git a/feeds/tag-wallabag.atom.xml b/feeds/tag-wallabag.atom.xml index 56c4dd2..7797405 100644 --- a/feeds/tag-wallabag.atom.xml +++ b/feeds/tag-wallabag.atom.xml @@ -1,2 +1,2 @@ -Блог 529http://likemath.ru/2016-03-17T13:35:00+03:00Wallabag и реальная жизнь2016-03-17T13:35:00+03:002016-03-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-03-17:posts/wallabag-i-realnaia-zhizn/<p>Как я устанавливал известнейшее свободное решение для отложенного чтения, и что из этого&nbsp;получилось.</p> \ No newline at end of file +Блог 529http://likemath.ru/2016-03-17T13:35:00+03:00Wallabag и реальная жизнь2016-03-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-03-17:posts/wallabag-i-realnaia-zhizn/<p>Как я устанавливал известнейшее свободное решение для отложенного чтения, и что из этого&nbsp;получилось.</p> \ No newline at end of file diff --git a/feeds/tag-wallabag.atom.xml.gz b/feeds/tag-wallabag.atom.xml.gz index 8a3bacf..5418c6b 100644 Binary files a/feeds/tag-wallabag.atom.xml.gz and b/feeds/tag-wallabag.atom.xml.gz differ diff --git a/feeds/tag-wxwidgets.atom.xml b/feeds/tag-wxwidgets.atom.xml index 6e7cf74..572fb1c 100644 --- a/feeds/tag-wxwidgets.atom.xml +++ b/feeds/tag-wxwidgets.atom.xml @@ -1,2 +1,2 @@ -Блог 529http://likemath.ru/2015-08-04T17:40:00+03:00CrossGen v1.02015-08-04T17:40:00+03:002015-08-04T17:40:00+03:00Алексей Лобановtag:likemath.ru,2015-08-02:posts/crossgen-v10/<p>Читая хабр, случайно натолкнулся на идею сделать программу, которая по заданной кроссвордной сетке находит способ её заполнить. В этом посте вкратце напишу про моё решение и первую версию&nbsp;приложения.</p> \ No newline at end of file +Блог 529http://likemath.ru/2015-08-04T17:40:00+03:00CrossGen v1.02015-08-04T17:40:00+03:00Алексей Лобановtag:likemath.ru,2015-08-02:posts/crossgen-v10/<p>Читая хабр, случайно натолкнулся на идею сделать программу, которая по заданной кроссвордной сетке находит способ её заполнить. В этом посте вкратце напишу про моё решение и первую версию&nbsp;приложения.</p> \ No newline at end of file diff --git a/feeds/tag-wxwidgets.atom.xml.gz b/feeds/tag-wxwidgets.atom.xml.gz index bf57d6d..bef04e0 100644 Binary files a/feeds/tag-wxwidgets.atom.xml.gz and b/feeds/tag-wxwidgets.atom.xml.gz differ diff --git a/index.html b/index.html index 6953312..a50ba6e 100644 --- a/index.html +++ b/index.html @@ -1,5 +1,4 @@ - - Блог 529 Блог 529
        1. Экспорт партий с Lichess

          Сохраняем себе шахматные партии с Lichess.org. Рабочий скрипт на Python прилагается.


        2. Моё решение задачи 134

          Краткое условие: назовём порождающим для двух последовательных простых \(p_1 < p_2\) наименьшее натуральное число, что оно закачивается на \(p_1\) и при этом делится на \(p_2\). Необходимо найти сумму порождающих для всех \(p_1 \in \left[ 5; 10^6 \right]\)

          \ No newline at end of file diff --git a/index.html.gz b/index.html.gz index 1bde7d3..ece3331 100644 Binary files a/index.html.gz and b/index.html.gz differ diff --git a/pages/about.html b/pages/about.html index 228145b..8225818 100644 --- a/pages/about.html +++ b/pages/about.html @@ -1,5 +1,4 @@ - - Блог 529 Блог 529

          Здравствуйте, я Алексей Лобанов

          Сейчас я студент ВМК МГУ. Немного занимаюсь фрилансом и машинным обучением.

          Умею писать:

          1. Бекенды на Python (+flask)
          2. Фронтенды на jQuery
          3. Парсеры на scrapy
          4. Кроссплатформенные приложения на C++/Python с использованием wxWidgets
          5. И интегрировать во всё это машинное обучение на scikit-learn, xgboost и TensorFlow.

          Если вы хотите связаться со мной и обсудить что-нибудь, то можете выбрать удобный способ связи:


          \ No newline at end of file diff --git a/pages/about.html.gz b/pages/about.html.gz index 4ae4e06..0c6b188 100644 Binary files a/pages/about.html.gz and b/pages/about.html.gz differ diff --git a/pages/projects.html b/pages/projects.html index dd8a1d2..ce931dd 100644 --- a/pages/projects.html +++ b/pages/projects.html @@ -1,5 +1,4 @@ - - Мои проекты Мои проекты
          1. Мои проекты

            Значительная часть моих проектов есть на GitHub или BitBucket вместе с открытым исходным кодом.

            CrossGen

            alt text

            Что использовалось

            1. C++
            2. wxWidgets

            Что реализовано

            1. Графический интерфейс
            2. Автоматическая локализация всего интерфейса на русский и английский языки
            3. Быстрая генерация кроссворда по заданной сетке с использованием эвристики
            4. Автоматический бенчмарк для измеренеия производительноти генерации Подробнее я писал тут

            За подробностями пишите мне на почту


          \ No newline at end of file diff --git a/pages/projects.html.gz b/pages/projects.html.gz index a819d9c..472c4ad 100644 Binary files a/pages/projects.html.gz and b/pages/projects.html.gz differ diff --git a/posts/crossgen-v10/index.html b/posts/crossgen-v10/index.html index 5274916..2fd90ed 100644 --- a/posts/crossgen-v10/index.html +++ b/posts/crossgen-v10/index.html @@ -1,5 +1,4 @@ - - CrossGen v1.0 CrossGen v1.0
          1. CrossGen v1.0

            Начать, наверное, нужно с того, что реальную практическую значимость я осознал после того, как реализовал 90% того, что есть сейчас. Сейчас мне кажется, что единственное применение данного приложения лишь в том, чтобы создавать кроссворды очень сложной или необычной формы. Зачем это надо обычному человеку я вообще не знаю.

            Собственно, алгоритм генерации изначально был примитивным: простой рекурсивный поиск с отсечением. Скорость генерации более-менее сложных сеток была ужасной (для перцентиля 30% это примерно 40 минут на этой сетке, в общем случае, время генерации непредсказуемо.

            В дальнейшем были выполнены некоторые оптимизации. Первой более-менее значимой стала замена передачи сетки в юникоде (во внутреннем цикле) на передачу сетки в однобайтовой кодировке, таким образом, языки с алфавитом больше ~200 букв пролетают. Впрочем, мне кажется, что им не слишком сильно требуются кроссворды. Такая оптимизация дала ~35% прироста при значимом времени перебора (больше секунды).

            В какой-то момент, мне показалось, что оптимизация структуры данных для хранения сетки тоже могла сильно увеличить производительность, но это будет заметно только на разряженных сетках, которые и так достаточно быстро генерируются. На сложных же плотных сетках, прирост скорости может быть минимальным, вплоть до отрицательного. Таким образом, используются просто двумерный массив.

            Наибольший прирост, как и ожидалось, дало упорядочивание словаря по некоторому критерию. Таким образом, при переборе, “плохие” варианты будут попадаться редко. На это ушло немногим больше дня. В конечном итоге, целевой функцией, которая стала критерием сортировки, стала такая \(\sqrt[n]{\prod_{i=1}^{n}{f\left( a_i \right)}}\) (иначе говоря, среднее геометрическое отлично подошло), где \(n\) — количество букв в слове, \(a_i\) — буквы слова, а \(f \left( x \right)\) есть вероятность появления буквы \(x\). Я отсекаю примерно половину самых “плохих” слов, а из того, что осталось я составляю кроссворд. Производительность, в среднем, увеличилась в ~1000 раз. На тестовых сетках для перцентиля 90% длительность работы около секунды.

            Что реализовано

            • Прозрачная интернационализация (пока только русский и английский языки)
            • Быстрая генерация
            • Экспорт в текстовом формате
            • Простая смена словаря
            • Относительно простое редактирование сеток

            Что может быть реализовано

            • Визуальный редактор сетки
            • Экспорт в HTML, PDF, Markdown
            • Экспорт сетки в файл картинки

            Скриншоты

            • Версия для Xubuntu: alt text
            • Версия для Windows 7: alt text
            \ No newline at end of file diff --git a/posts/crossgen-v10/index.html.gz b/posts/crossgen-v10/index.html.gz index ec53c01..e57f7ac 100644 Binary files a/posts/crossgen-v10/index.html.gz and b/posts/crossgen-v10/index.html.gz differ diff --git a/posts/eksport-partii-s-lichess/index.html b/posts/eksport-partii-s-lichess/index.html index 6f7e553..77f398d 100644 --- a/posts/eksport-partii-s-lichess/index.html +++ b/posts/eksport-partii-s-lichess/index.html @@ -1,8 +1,7 @@ - - Экспорт партий с Lichess Экспорт партий с Lichess
            1. Экспорт партий с Lichess

              Одну партию с Lichess скачать довольно просто, это можно сделать на странице с самой игрой. Скачать все игры тоже несложно, для этого есть специальный раздел.

              Если же хочется скачать свои партии, то я нашёл лишь одно решение. Последний коммит был сделан 2 года назад, также оно не учитывает ограничения API, и больше ~2000 партий, за раз скачать не получится.

              Моей целью было написание альтернативы, которая бы работала быстрее и работала корректно.

              Проблема формата решена довольно просто: API отдаёт PGN, значит его поддержка уже есть. Но это плохой формат для хранения и обработки. Поэтому нужно было выбрать что-то ещё.

              Существует, практически, только Scid, если вы хотите хранить свои шахматные партии, используя открытый софт. В его дистрибутиве уже есть необходимые утилиты для конвертации pgn в свой формат.

              Репозиторий здесь, а здесь можно скачать файлы сразу.

              Возможности

              1. Многопоточность
              2. Сохранение как в PGN, так и в формат Scid
              3. Для работы необходим только Python
              4. Работает при любом числе партий

              Установка

              pip install grequests
              -

              Запуск

              python lichess.py -n hippo23 -t pgn -o hippo23.pgn  --threads 6 
              +        
              1. Экспорт партий с Lichess

                Одну партию с Lichess скачать довольно просто, это можно сделать на странице с самой игрой. Скачать все игры тоже несложно, для этого есть специальный раздел.

                Если же хочется скачать свои партии, то я нашёл лишь одно решение. Последний коммит был сделан 2 года назад, также оно не учитывает ограничения API, и больше ~2000 партий, за раз скачать не получится.

                Моей целью было написание альтернативы, которая бы работала быстрее и работала корректно.

                Проблема формата решена довольно просто: API отдаёт PGN, значит его поддержка уже есть. Но это плохой формат для хранения и обработки. Поэтому нужно было выбрать что-то ещё.

                Существует, практически, только Scid, если вы хотите хранить свои шахматные партии, используя открытый софт. В его дистрибутиве уже есть необходимые утилиты для конвертации pgn в свой формат.

                Репозиторий здесь, а здесь можно скачать файлы сразу.

                Возможности

                1. Многопоточность
                2. Сохранение как в PGN, так и в формат Scid
                3. Для работы необходим только Python
                4. Работает при любом числе партий

                Установка

                pip install grequests
                +

                Запуск

                python lichess.py -n hippo23 -t pgn -o hippo23.pgn  --threads 6 
                 

                Здесь hippo23 мой ник, а pgn формат сохранения (доступен также scid).



              \ No newline at end of file diff --git a/posts/eksport-partii-s-lichess/index.html.gz b/posts/eksport-partii-s-lichess/index.html.gz index 13c874e..c24b6b0 100644 Binary files a/posts/eksport-partii-s-lichess/index.html.gz and b/posts/eksport-partii-s-lichess/index.html.gz differ diff --git a/posts/eshchio-odno-vychislenie-vyrazhenii/index.html b/posts/eshchio-odno-vychislenie-vyrazhenii/index.html index 98fcdd1..b66511b 100644 --- a/posts/eshchio-odno-vychislenie-vyrazhenii/index.html +++ b/posts/eshchio-odno-vychislenie-vyrazhenii/index.html @@ -1,5 +1,4 @@ - - Ещё одно вычисление выражений Ещё одно вычисление выражений
              1. Ещё одно вычисление выражений

                Задачка кажется не очень сложной, даже, если не знать как её делать (я не знал). Целью является быстрое вычисление чего-то типа 4 * ( 5 + 7 ^ 4). Для это я парсил исходную строку в список токенов, а затем непосредственно вычислял, что получится.

                Я решил, что проще всего будет реализовать (а мне потом и понять) алгоритм, когда после каждого действия будет выполняться некий “хороший” инвариант. Первое что приходит в голову — это то, что истинность выражение после выполнения операции не меняется (TITO соблюдается). То есть выражение 3 + 5 можно заменить на 8 или хотя бы на 4 * 2.

                Непосредственно сама обработка является несколькими проходами, так что в каждом проходе мы избавляемся от операций одного приоритета. 4 + 5 * 3 заменяется на 4 + 15, 7 - 5 * 2^3 заменяется на 7 - 5*8. Таким образом, каждый цикл тривиален, и легко задавать приоритеты операций.

                Если использовать один список как контейнер для токенов и при работе изменять непосредственно его, сохраняя указанные инварианты, то сложность получается \(O\left( N \right)\), где \(N\) — число токенов.

                Времени на непосредственно кодирование ушло часа три-четыре, но в это время не входит продумывание мелких деталей.

                Всё написано на C++11. Исходники лежат на GitHub и BitBucket.

                \ No newline at end of file diff --git a/posts/eshchio-odno-vychislenie-vyrazhenii/index.html.gz b/posts/eshchio-odno-vychislenie-vyrazhenii/index.html.gz index f0720e0..66f63e3 100644 Binary files a/posts/eshchio-odno-vychislenie-vyrazhenii/index.html.gz and b/posts/eshchio-odno-vychislenie-vyrazhenii/index.html.gz differ diff --git a/posts/kak-ia-shakhmatnogo-bota-pisal/index.html b/posts/kak-ia-shakhmatnogo-bota-pisal/index.html index 8405328..f15ebd8 100644 --- a/posts/kak-ia-shakhmatnogo-bota-pisal/index.html +++ b/posts/kak-ia-shakhmatnogo-bota-pisal/index.html @@ -1,5 +1,4 @@ - - Как я шахматного бота писал Как я шахматного бота писал
                1. Как я шахматного бота писал

                  Лет 5 назад я достаточно активно играл в живые шахматы. Потом времени на это стало не хватать и постепенно перешёл на редкие партии в онлайне. Сейчас для игры я использую одно из самых популярных приложений вк. Это проще, чем использовать, к примеру, FICS. Предмет обсуждения появился из-за того, что я как-то раз встретился с соперником, который на все ходы потратил порядка 10 секунд, при этом не допустив значимых ошибок. Тогда я решил написать своего бота, чтобы узнать что с ним будет и столкнусь ли я с какими-нибудь подводными камнями.

                  Целью было максимально быстрое написание максимально простого решения. Поэтому от разбора протокола я сразу отказался, тем более у меня не было подобного опыта ранее. Была мысль работать с FICS (у меня есть библиотека для работы с их протоколом), но поскольку я там не играю, то и результаты были бы не так интересны, во всяком случае, для меня. Таким образом, я писал простого кликера для приложения вк.

                  Изначально хотелось найти доску и определить положения всех фигур, это было бы достаточно универсально, хотя и привязало бы меня к OpenCV. Тем не менее, решил не усложнять: можно определять только последний ход, а это можно сделать, проверяя цвет только одного пикселя.

                  В самом скрипте около 200 строк на python. Очень сильно помогла библиотека chess, которая взяла на себя общение с движком (я использовал stockfish), проверку на допустимые ходы и определение мата. Некоторое время я уделил тому, чтобы сделать бота максимально похожим на человека, чтобы было невозможно выявить, что это бот полностью автоматическими средствами. По пунктам:

                  • Клик по полю в случайном месте, с распределением по Гауссу, центр которого не совпадает с центром клетки
                  • Случайное время хода, длительность которого распределена по Гауссу, причём средняя длительность хода изменяется, в зависимости от номера текущего хода.
                  • Прокладываются дополнительные точки, с распределением по Гауссу, при перемещении курсора от точки к точке.

                  По факту, всё это было лишним, бан получить не удалось даже при простом клике из начальной точки в конечную.

                  Примеры работы скрипта можно посмотреть тут и тут, анализы двух сыгранных игр лежат тут и тут (оппонент имеет рейтинг около 2100).

                  На момент публикации аккаунт вполне жив. Рейтинг достиг некоторого потолка (около 2200), после которого найти игроков примерно равного рейтинга, не являющихся ботами, очень сложно. Сражаться же с ботами сильно сложнее, такую цель я не ставил. Интересно, хоть и ожидаемо, что при наборе рейтинга было достаточно личностей, для которых возможность того, что их нагло обманули, и они играли с ботом была столь неприятна, что они не могли сдерживаться. Например: alt text

                  p.s. Уже после создания рабочей версии от одного из оппонентов узнал про lichess.org. Это отличный ресурс на котором кроме, собственно, платформы для игры в шахматы (поддерживается большое количество их вариантов), есть тренировки по дебютам, анализ игр. Самое интересное — ресурс полностью открытый, все исходники есть на github.

                  В процессе подготовки данного материала узнал про InternetChessKiller, который делает, фактически, тоже самое, что и мой скрипт, но без привязки к какой-то одной игровой площадке. Исходники старых версий можно найти, например, в этом репозитории.

                  p.p.s. Боты на серверах, предназначенных для людей, играющие в игры, которые предназначены для людей очень сильно мешают людям. Тем не менее, проверять, насколько сильно они мешают не нужно!



                \ No newline at end of file diff --git a/posts/kak-ia-shakhmatnogo-bota-pisal/index.html.gz b/posts/kak-ia-shakhmatnogo-bota-pisal/index.html.gz index 745ea68..5ba92c8 100644 Binary files a/posts/kak-ia-shakhmatnogo-bota-pisal/index.html.gz and b/posts/kak-ia-shakhmatnogo-bota-pisal/index.html.gz differ diff --git a/posts/moi-pervyi-post-ili-zachem-etot-blog/index.html b/posts/moi-pervyi-post-ili-zachem-etot-blog/index.html index 40b8b7a..8071bc4 100644 --- a/posts/moi-pervyi-post-ili-zachem-etot-blog/index.html +++ b/posts/moi-pervyi-post-ili-zachem-etot-blog/index.html @@ -1,5 +1,4 @@ - - Мой первый пост или зачем этот блог? Мой первый пост или зачем этот блог?
                1. Мой первый пост или зачем этот блог?

                  Есть несколько причин появления этого блога. Самая главная — хочется как-то использовать домен, который я купил изначально для красивой почты. Но она не единственная. Мне также хочется делиться частью того, что я делаю на платформе, которую я могу контролировать. Ну и контактные данные. Хорошо, когда все в одном месте.

                  Пока я планирую публиковать свои, возможно не лучшие, но рабочие решения для задач из Project Euler (projecteuler.net). На самом деле, решения значительного числа задач уже есть в Сети, но на английском. Хотя, это и не есть большая проблема.



                \ No newline at end of file diff --git a/posts/moi-pervyi-post-ili-zachem-etot-blog/index.html.gz b/posts/moi-pervyi-post-ili-zachem-etot-blog/index.html.gz index 576c2ea..e022be1 100644 Binary files a/posts/moi-pervyi-post-ili-zachem-etot-blog/index.html.gz and b/posts/moi-pervyi-post-ili-zachem-etot-blog/index.html.gz differ diff --git a/posts/moio-reshenie-zadachi-134/index.html b/posts/moio-reshenie-zadachi-134/index.html index 16f4591..d288cce 100644 --- a/posts/moio-reshenie-zadachi-134/index.html +++ b/posts/moio-reshenie-zadachi-134/index.html @@ -1,7 +1,6 @@ - - Моё решение задачи 134 Моё решение задачи 134
                1. Моё решение задачи 134

                  Назовём порождающим для двух последовательных простых \(p_1 < p_2\) наименьшее натуральное число, что оно закачивается на \(p_1\) и при этом делится на \(p_2\). Необходимо найти сумму порождающих для всех \(p_1 \in \left[ 5; 10^6 \right]\)

                  Например, если \(p_1 = 19\), то следующее простое \(p_2 = 23\). Тогда порождающим будет число \(1219\), при этом \(1219 \: \vdots \: 23\).

                  Полное условие можно найти тут

                  Несмотря на то, что сложность задачи 45%, для её решения достаточно выписать условие.

                  Пусть \(p_1\) содержит в себе \(k\) цифр, т.е. \(n = r \cdot 10^k + p_1\), где \(r\) — какое-то натуральное число с отрезка \(\left[ 1; p_2-1 \right]\)

                  Давайте посчитаем остатки по модулю \(p_2\): \(n \equiv r \cdot 10^k + p_1 \equiv 0\). Отсюда получим явную формулу для \(r\):

                  $$ r \equiv -p_1 \cdot 10^{-k} \equiv -p_1 \cdot 10^{p_2 -1-k} $$

                  Комментарии:

                  1. Так как \(a^p \equiv a \mod p\), то верно что \(a^{-k} \equiv a^{p -1-k} \mod p\)
                  2. Это всё бессмысленно, если не знать про алгоритм быстрого возведения в степень, который делает асимптотическую сложность возведения в степень логарифмической.

                  У нас есть явная формула для порождающего, и мы знаем как её быстро посчитать. Ниже приведён код на Python с использованием sympy.

                  from sympy import primerange  # для получения простых чисел
                  +        
                  1. Моё решение задачи 134

                    Назовём порождающим для двух последовательных простых \(p_1 < p_2\) наименьшее натуральное число, что оно закачивается на \(p_1\) и при этом делится на \(p_2\). Необходимо найти сумму порождающих для всех \(p_1 \in \left[ 5; 10^6 \right]\)

                    Например, если \(p_1 = 19\), то следующее простое \(p_2 = 23\). Тогда порождающим будет число \(1219\), при этом \(1219 \: \vdots \: 23\).

                    Полное условие можно найти тут

                    Несмотря на то, что сложность задачи 45%, для её решения достаточно выписать условие.

                    Пусть \(p_1\) содержит в себе \(k\) цифр, т.е. \(n = r \cdot 10^k + p_1\), где \(r\) — какое-то натуральное число с отрезка \(\left[ 1; p_2-1 \right]\)

                    Давайте посчитаем остатки по модулю \(p_2\): \(n \equiv r \cdot 10^k + p_1 \equiv 0\). Отсюда получим явную формулу для \(r\):

                    $$ r \equiv -p_1 \cdot 10^{-k} \equiv -p_1 \cdot 10^{p_2 -1-k} $$

                    Комментарии:

                    1. Так как \(a^p \equiv a \mod p\), то верно что \(a^{-k} \equiv a^{p -1-k} \mod p\)
                    2. Это всё бессмысленно, если не знать про алгоритм быстрого возведения в степень, который делает асимптотическую сложность возведения в степень логарифмической.

                    У нас есть явная формула для порождающего, и мы знаем как её быстро посчитать. Ниже приведён код на Python с использованием sympy.

                    from sympy import primerange  # для получения простых чисел
                     
                     # быстрое возведение в степень по модулю
                     def fast_pow(x, y, modulo):
                    @@ -89,7 +88,4 @@
                         var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
                         g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
                       })();
                    - 
                    \ No newline at end of file
                    diff --git a/posts/moio-reshenie-zadachi-134/index.html.gz b/posts/moio-reshenie-zadachi-134/index.html.gz
                    index 8be5325..cb4d06c 100644
                    Binary files a/posts/moio-reshenie-zadachi-134/index.html.gz and b/posts/moio-reshenie-zadachi-134/index.html.gz differ
                    diff --git a/posts/moio-reshenie-zadachi-146/index.html b/posts/moio-reshenie-zadachi-146/index.html
                    index 40e41ef..e2ad44b 100644
                    --- a/posts/moio-reshenie-zadachi-146/index.html
                    +++ b/posts/moio-reshenie-zadachi-146/index.html
                    @@ -1,7 +1,6 @@
                    -
                    - Моё решение задачи 146 Моё решение задачи 146
                    1. Моё решение задачи 146

                      Необходимо найти сумму всех натуральных \(n\), что \(n^2+1\), \(n^2+3\), \(n^2+7\), \(n^2+9\), \(n^2+13\), и \(n^2+27\) будут последовательными простыми числами.

                      Полное условие можно найти тут

                      Хочется отметить, что сложность у задачи 50%, а на текущий момент её решило меньше 4000 человек. Тем не менее, мне она показалось простой. Простейшее решение отработало очень быстро.

                      Для начала, можно отметить, что в лоб проверять условие очень долго. Проверять на простоту числа порядка \(10^{15}\) достаточно сложно, поэтому их нужно как-то отсеять.

                      Самое простое — не рассматривать те \(n\), что хотя бы одно из \(n^2+1\), \(n^2+3\), \(n^2+7\), \(n^2+9\), \(n^2+13\), и \(n^2+27\) будет заведомо делиться на какое-то маленькое простое число. Это даёт достаточно хорошие результаты: из 150 миллионов чисел, после отсеивания по простым числам \(< 3000\) (этот параметр я подбирал уже после решения задач: если он слишком маленький, то будет слишком много проверок на простоту, если же слишком большой, то мы делаем слишком много работы, чтобы отсеять несколько чисел), останется меньше \(2000\) чисел. Их уже можно проверить непосредственно.

                      Тогда алгоритм может быть таким:

                      1. Находим простые числа меньше \(3000\).
                      2. Для каждого из них находим допустимые остатки.
                      3. Для каждого из чисел от \(1\) до \(n\) проверяем, что остатки по всем простым хорошие.
                      4. Непосредственно проверяем условие. Важно не забыть проверить непростоту оставшихся нечётных чисел из диапазона \(n^2 + 1 \ldots n^2 + 27\) там могут быть (и будут!) другие простые числа.

                      Непосредственно сам поиск такой клики можно реализовать тривиально. Ниже мой код на C++11 с использованием библиотек Flint и primesieve. Распараллеливание хоть и просится, но смысла не имеет, т.к. я получил ответ менее, чем за 5 секунд.

                      /*
                      +        
                      1. Моё решение задачи 146

                        Необходимо найти сумму всех натуральных \(n\), что \(n^2+1\), \(n^2+3\), \(n^2+7\), \(n^2+9\), \(n^2+13\), и \(n^2+27\) будут последовательными простыми числами.

                        Полное условие можно найти тут

                        Хочется отметить, что сложность у задачи 50%, а на текущий момент её решило меньше 4000 человек. Тем не менее, мне она показалось простой. Простейшее решение отработало очень быстро.

                        Для начала, можно отметить, что в лоб проверять условие очень долго. Проверять на простоту числа порядка \(10^{15}\) достаточно сложно, поэтому их нужно как-то отсеять.

                        Самое простое — не рассматривать те \(n\), что хотя бы одно из \(n^2+1\), \(n^2+3\), \(n^2+7\), \(n^2+9\), \(n^2+13\), и \(n^2+27\) будет заведомо делиться на какое-то маленькое простое число. Это даёт достаточно хорошие результаты: из 150 миллионов чисел, после отсеивания по простым числам \(< 3000\) (этот параметр я подбирал уже после решения задач: если он слишком маленький, то будет слишком много проверок на простоту, если же слишком большой, то мы делаем слишком много работы, чтобы отсеять несколько чисел), останется меньше \(2000\) чисел. Их уже можно проверить непосредственно.

                        Тогда алгоритм может быть таким:

                        1. Находим простые числа меньше \(3000\).
                        2. Для каждого из них находим допустимые остатки.
                        3. Для каждого из чисел от \(1\) до \(n\) проверяем, что остатки по всем простым хорошие.
                        4. Непосредственно проверяем условие. Важно не забыть проверить непростоту оставшихся нечётных чисел из диапазона \(n^2 + 1 \ldots n^2 + 27\) там могут быть (и будут!) другие простые числа.

                        Непосредственно сам поиск такой клики можно реализовать тривиально. Ниже мой код на C++11 с использованием библиотек Flint и primesieve. Распараллеливание хоть и просится, но смысла не имеет, т.к. я получил ответ менее, чем за 5 секунд.

                        /*
                          * Problem 146 on Project Euler
                          * Aleksey Lobanov (c) 2016
                          */
                        @@ -172,7 +171,4 @@
                             var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
                             g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
                           })();
                        - 
                        \ No newline at end of file
                        diff --git a/posts/moio-reshenie-zadachi-146/index.html.gz b/posts/moio-reshenie-zadachi-146/index.html.gz
                        index d9a1b55..8b6eb15 100644
                        Binary files a/posts/moio-reshenie-zadachi-146/index.html.gz and b/posts/moio-reshenie-zadachi-146/index.html.gz differ
                        diff --git a/posts/moio-reshenie-zadachi-60/index.html b/posts/moio-reshenie-zadachi-60/index.html
                        index 870aeb8..a733299 100644
                        --- a/posts/moio-reshenie-zadachi-60/index.html
                        +++ b/posts/moio-reshenie-zadachi-60/index.html
                        @@ -1,7 +1,6 @@
                        -
                        - Моё решение задачи 60 Моё решение задачи 60
                        1. Моё решение задачи 60

                          Необходимо найти множество из пяти простых чисел с минимальной суммой такое, что после “склеивания” в любом порядке любых двух чисел из него тоже будет простое число. Здесь под процедурой “склеивания” чисел \(a\) и \(b\) подразумевается получения из \(a = \overline{a_1 a_2 \ldots a_n}\) и \(b = \overline{b_1 b_2 \ldots b_m}\) некоторого \(c\) так, что \(c = \overline{a_1 a_2 \ldots a_n b_1 b_2 \ldots b_m}\).

                          Полное условие можно найти тут

                          Для начала, можно понять, что непосредственный перебор “в лоб” слишком медленный и нужного результата не даст. Поэтому хочется уйти от, как мне кажется, не самого формализуемого условия к чему-то более простого, с чем проще работать. Давайте сначала поймём, какие вообще числа могут быть в одном множестве. Для этого достаточно перебрать все разбиения на два подчисла всех простых чисел. Это достаточно быстро, порядка \(O\left( N \right)\) операций. Важно не забыть, что мы можем разбивать число \(p\) только на \(\overline{p_1 p_2}\), между числами не может быть нулей! То есть если число 37 разбивается на 3 и 7, то 307 нет.

                          Пусть мы получили набор таких разбиений, то есть набор пар вида \(\left( p, q \right)\). Давайте составим из них граф, где вершинки это простые числа, а ориентированное ребро из \(p\) в \(q\) означает, что есть пара \(\left( p, q \right)\). Из того, что порядок склеивания чисел произвольный сразу следует, что рассматриваемый граф должен быть неориентированным. Таким образом, все пары \(\left( p, q \right)\) для которых нет пары \(\left( q, p \right)\) необходимо выкинуть, а из оставшихся построить граф.

                          Теперь задача стало гораздо понятнее: достаточно выбрать клику размера 5, что сумма значений её вершин минимальна. В общем случае, это достаточно ресурсоёмкая(как мне кажется) задача, но в реальном графе количество рёбер не слишком большое. В худшем случае, по теореме Турана, количество рёбер в графе лишь с одной такой кликой примерно на 10% меньше числа рёбер в полном графе.

                          Непосредственно сам поиск такой клики можно реализовать тривиально. Ниже мой код на C++11 с использованием библиотеки Boost Graph Library (BGL).

                          #include <iostream>
                          +        
                          1. Моё решение задачи 60

                            Необходимо найти множество из пяти простых чисел с минимальной суммой такое, что после “склеивания” в любом порядке любых двух чисел из него тоже будет простое число. Здесь под процедурой “склеивания” чисел \(a\) и \(b\) подразумевается получения из \(a = \overline{a_1 a_2 \ldots a_n}\) и \(b = \overline{b_1 b_2 \ldots b_m}\) некоторого \(c\) так, что \(c = \overline{a_1 a_2 \ldots a_n b_1 b_2 \ldots b_m}\).

                            Полное условие можно найти тут

                            Для начала, можно понять, что непосредственный перебор “в лоб” слишком медленный и нужного результата не даст. Поэтому хочется уйти от, как мне кажется, не самого формализуемого условия к чему-то более простого, с чем проще работать. Давайте сначала поймём, какие вообще числа могут быть в одном множестве. Для этого достаточно перебрать все разбиения на два подчисла всех простых чисел. Это достаточно быстро, порядка \(O\left( N \right)\) операций. Важно не забыть, что мы можем разбивать число \(p\) только на \(\overline{p_1 p_2}\), между числами не может быть нулей! То есть если число 37 разбивается на 3 и 7, то 307 нет.

                            Пусть мы получили набор таких разбиений, то есть набор пар вида \(\left( p, q \right)\). Давайте составим из них граф, где вершинки это простые числа, а ориентированное ребро из \(p\) в \(q\) означает, что есть пара \(\left( p, q \right)\). Из того, что порядок склеивания чисел произвольный сразу следует, что рассматриваемый граф должен быть неориентированным. Таким образом, все пары \(\left( p, q \right)\) для которых нет пары \(\left( q, p \right)\) необходимо выкинуть, а из оставшихся построить граф.

                            Теперь задача стало гораздо понятнее: достаточно выбрать клику размера 5, что сумма значений её вершин минимальна. В общем случае, это достаточно ресурсоёмкая(как мне кажется) задача, но в реальном графе количество рёбер не слишком большое. В худшем случае, по теореме Турана, количество рёбер в графе лишь с одной такой кликой примерно на 10% меньше числа рёбер в полном графе.

                            Непосредственно сам поиск такой клики можно реализовать тривиально. Ниже мой код на C++11 с использованием библиотеки Boost Graph Library (BGL).

                            #include <iostream>
                             #include <algorithm>
                             #include <vector>
                             #include <set>
                            @@ -231,7 +230,4 @@
                                 var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
                                 g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
                               })();
                            - 
                            \ No newline at end of file
                            diff --git a/posts/moio-reshenie-zadachi-60/index.html.gz b/posts/moio-reshenie-zadachi-60/index.html.gz
                            index 61a0880..94ef1f7 100644
                            Binary files a/posts/moio-reshenie-zadachi-60/index.html.gz and b/posts/moio-reshenie-zadachi-60/index.html.gz differ
                            diff --git a/posts/nakhozhdenie-summy-k-ykh-stepenei/index.html b/posts/nakhozhdenie-summy-k-ykh-stepenei/index.html
                            index 1c16fec..68a70ec 100644
                            --- a/posts/nakhozhdenie-summy-k-ykh-stepenei/index.html
                            +++ b/posts/nakhozhdenie-summy-k-ykh-stepenei/index.html
                            @@ -1,5 +1,4 @@
                            -
                            - Нахождение суммы k-ых степеней Нахождение суммы k-ых степеней
                            1. Нахождение суммы k-ых степеней

                              Давайте сразу обобщим задачу до нахождения \(f_k\left( n \right)\), где

                              $$f_k\left( n \right) = 1^k + 2^k + \ldots + n^k$$

                              Для \(k=1\) формула известна всем школьникам: \(f_1\left( n \right) = \frac{n\left(n+1 \right)}{2}\). Формулу для \(k=2\) знают уже не все, но всё же в школе её найти можно (я видел на обложке учебника по алгебре): \(f_2\left( n \right) = \frac{n\left(n+1 \right) \left( 2n + 1 \right)}{6}\)

                              Интуиция может подсказать, что \(f_k \left( n \right)\) есть некий полином со степенью \(k+1\). Если это так, то его нахождение тривиально. Например, можно посчитать его в явном виде, используя полином Лагранжа. Осталось показать, что наша функция представима в таком виде.

                              Для начала введём обозначение. “Нижней степенью”, \(x^{\underline{k}}\), будем обозначать такое выражение:

                              $$x^{\underline{k}} = x(x-1)\cdot \ldots \cdot (x-k+1)$$

                              .

                              Далее, заметим следующее, если \(a_i = A_{i+1} - A_i\), где \(\lbrace a_i \rbrace\) и \(\lbrace A_i \rbrace\) — некие последовательности, то \(\sum_{i=1}^n = A_{n+1}-A_1\) (телескопирование, можно посмотреть тут, с. 6).

                              Теперь посчитаем сумму \(\sum_{i=1}^n i^{\underline{k}}\). Для этого достаточно понять, что \(\left( x+1 \right)^{\underline{k+1}} - \left(x \right)^{\underline{k+1}} = \left( k+ 1 \right)x^{\underline{k}}\). Отсюда сразу получаем, что

                              $$\sum_{i=1}^n i^{\underline{k}} = \frac{\left( n+1 \right)^{\underline{k+1}}}{k+1}$$

                              Осталось показать, что “нормальные” степени выражаются через нижние. Начнём со степени \(k=1\), тут всё просто:

                              $$x = x^{\underline{1}}$$

                              С бОльшими степенями сделаем следующее: считая, что все степени, меньше, чем \(k\) мы выражать умеем, раскроем скобки в определении нижней степени. Теперь поймём, что старший коэффициент \(1\): \(x^{\underline{k}} = x^k + \sum_{i=1}^k a_ix^i\) или \(x^k = \sum_{i=1}^k a_ix^i - x^{\underline{k}}\). Осталось понять, что каждое из слагаемых вида \(a_ix^i\) мы умеем выражать через нижние степени. Таким образом, можно получить следующее:

                              $$ \sum_{i=1}^{n} i^k = \sum_{i=1}^{n} \sum_{j=1}^{k} a_j i^{\underline{k}} = \sum_{j=1}^{k} \sum_{i=1}^{n} a_j i^{\underline{k}} = \sum_{j=1}^{k} \frac{a_j \left(n+1 \right)^{\underline{k+1}}}{k+1}$$

                              Кстати, формула для суммы в самом начале такая:

                              $$ \sum_{i=1}^n i^5 = \frac{1}{12} n^2 \left(n+1 \right)^2 \left(2n^2 + 2n-1 \right) $$
                              \ No newline at end of file diff --git a/posts/nakhozhdenie-summy-k-ykh-stepenei/index.html.gz b/posts/nakhozhdenie-summy-k-ykh-stepenei/index.html.gz index 66bdc67..9d39fcf 100644 Binary files a/posts/nakhozhdenie-summy-k-ykh-stepenei/index.html.gz and b/posts/nakhozhdenie-summy-k-ykh-stepenei/index.html.gz differ diff --git a/posts/wallabag-i-realnaia-zhizn/index.html b/posts/wallabag-i-realnaia-zhizn/index.html index 1302242..a4982f8 100644 --- a/posts/wallabag-i-realnaia-zhizn/index.html +++ b/posts/wallabag-i-realnaia-zhizn/index.html @@ -1,5 +1,4 @@ - - Wallabag и реальная жизнь Wallabag и реальная жизнь
                              1. Wallabag и реальная жизнь

                                Начать следует с того, что Wallabag действительно является самым популярным среди открытых приложений для отложенного чтения. Можно взять, например, alternativeto:

                                Первый релиз вышел почти два года назад. Тем не менее, мне сложно назвать продукт зрелым. Последняя, на момент написания, версия 2.0.0-beta.2 не может похвастаться простым процессом установки. Вариант просто выполнить команды из мануалов по очереди у меня не получился. В этом соперничать с тем же Pocket, очевидно, бессмысленно.

                                Стандартная тема, material, ужасно выглядит на моём ноутбуке с разрешением 1366x768, элементы явно рассчитаны на большую диагональ. Ещё часть места отъедает неубирающаяся плашка внизу страницы, предупреждающая о том, что баги в бета версии не есть что-то плохое. Официальное Android приложение упорно не может найти сервер.

                                После волевого решения перейти на стабильную версию (то есть откатиться в равзвитии на полгода назад), дела улучшились, но не сильно. Количество настроек минимально, если не сказать, что их вообще нет. Но оно работает, вроде.

                                Сложности, впрочем, только начались. Обещанная синхронизация с Pocket работает, мягко говоря, неоптимально. После загрузки экспортированного html файла со ссылками, wallabag почти час выкачивал мои 750 статей. Где-то на 500-й статье он выделил слишком много памяти и упал с ошибкой. После этого пришлось руками искать потенциально проблемные статьи и удалять их по одной — удалить сразу несколько элементов невозможно. Затем надо было выкачивать ещё 250 статей, периодически посматривая, чтобы ничего снова не упало.

                                Кажется, что все проблемы закончились, но нет. Дальше синхронизация с телефоном. Она заняла почти столько же времени, при этом, начальное очевидное предположение о том, что токен безопасности вбивать не нужно (он сам заполняется в приложении) стоило где-то 15 минут поиска. Но и это не всё. После того, как база загрузилась, небольшие изменения на телефоне (такие как удаление статьи) синхронизировались больше минуты!

                                Резюме: пользоваться можно, но советовать кому-либо это использовать я точно не стану.

                                Этого бы поста не было бы, если бы я сказал, что Wallabag плохой, а OTHER_PRODUCT хороший и можно пользоваться им. Но я так написать не могу. Ни я, ни alternativeto других решений не знают. Значит нужно их создать. На моём слабеньком VPS уже почти год трудится Syncthing, управляя значительным количеством файлов с минимальной нагрузкой на ЦП. Поэтому мне кажется, что Go подойдёт идеально.

                                Если написать подобный продукт на Go, то многие проблемы даже не появятся:

                                • не нужно разрешать большое количество зависимостей — достаточно одного бинарника
                                • скорость генерации контента (например, создание pdf, epub) будет значительно выше
                                • небольшой оверхед позволит всё хранить в памяти
                                • работа почти на чём угодно

                                В совокупности, будет достигнуто, как мне кажется, самое главное — удобство для обычного пользователя, который сможет без проблем развернуть это на любом VPS.



                              \ No newline at end of file diff --git a/posts/wallabag-i-realnaia-zhizn/index.html.gz b/posts/wallabag-i-realnaia-zhizn/index.html.gz index 8faddc8..332ba63 100644 Binary files a/posts/wallabag-i-realnaia-zhizn/index.html.gz and b/posts/wallabag-i-realnaia-zhizn/index.html.gz differ diff --git a/sitemap.xml b/sitemap.xml index 93233d4..90630f1 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -5,28 +5,28 @@ xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> http://likemath.ru/ -2017-09-24T23:07:11-00:00 +2017-10-19T16:46:14-00:00 daily 0.5 http://likemath.ru/archives.html -2017-09-24T23:07:11-00:00 +2017-10-19T16:46:14-00:00 daily 0.5 http://likemath.ru/tags.html -2017-09-24T23:07:11-00:00 +2017-10-19T16:46:14-00:00 daily 0.5 http://likemath.ru/categories.html -2017-09-24T23:07:11-00:00 +2017-10-19T16:46:14-00:00 daily 0.5 diff --git a/sitemap.xml.gz b/sitemap.xml.gz index ff34428..397ecb7 100644 Binary files a/sitemap.xml.gz and b/sitemap.xml.gz differ diff --git a/tag/bgl.html b/tag/bgl.html index 3f798f4..6df2861 100644 --- a/tag/bgl.html +++ b/tag/bgl.html @@ -1,5 +1,4 @@ - - Блог 529 - BGL Блог 529 - BGL
                              1. Моё решение задачи 60

                                Краткое условие: необходимо найти множество из пяти простых чисел с минимальной суммой такое, что после “склеивания” в любом порядке любых двух чисел из него тоже будет простое число.


                              Page 1 / 1
                              \ No newline at end of file diff --git a/tag/bgl.html.gz b/tag/bgl.html.gz index f4c0d59..3e4bb6b 100644 Binary files a/tag/bgl.html.gz and b/tag/bgl.html.gz differ diff --git a/tag/blog.html b/tag/blog.html index 859de0c..60c34c7 100644 --- a/tag/blog.html +++ b/tag/blog.html @@ -1,5 +1,4 @@ - - Блог 529 - блог Блог 529 - блог

                              Page 1 / 1
                              \ No newline at end of file diff --git a/tag/blog.html.gz b/tag/blog.html.gz index 94b6c1d..2768ce0 100644 Binary files a/tag/blog.html.gz and b/tag/blog.html.gz differ diff --git a/tag/bot.html b/tag/bot.html index ffaef23..5b61ca4 100644 --- a/tag/bot.html +++ b/tag/bot.html @@ -1,5 +1,4 @@ - - Блог 529 - бот Блог 529 - бот

                              Page 1 / 1
                              \ No newline at end of file diff --git a/tag/bot.html.gz b/tag/bot.html.gz index 4fbc411..a301c9a 100644 Binary files a/tag/bot.html.gz and b/tag/bot.html.gz differ diff --git a/tag/c.html b/tag/c.html index 25ef1c5..88f8334 100644 --- a/tag/c.html +++ b/tag/c.html @@ -1,5 +1,4 @@ - - Блог 529 - c++ Блог 529 - c++
                              1. Моё решение задачи 146

                                Краткое условие: необходимо найти сумму всех натуральных \(n\), что \(n^2+1\), \(n^2+3\), \(n^2+7\), \(n^2+9\), \(n^2+13\), и \(n^2+27\) будут последовательными простыми числами.

                                \ No newline at end of file diff --git a/tag/c.html.gz b/tag/c.html.gz index 1736c73..4a197f0 100644 Binary files a/tag/c.html.gz and b/tag/c.html.gz differ diff --git a/tag/flint.html b/tag/flint.html index 03af955..ef3a708 100644 --- a/tag/flint.html +++ b/tag/flint.html @@ -1,5 +1,4 @@ - - Блог 529 - FLINT Блог 529 - FLINT
                                1. Моё решение задачи 146

                                  Краткое условие: необходимо найти сумму всех натуральных \(n\), что \(n^2+1\), \(n^2+3\), \(n^2+7\), \(n^2+9\), \(n^2+13\), и \(n^2+27\) будут последовательными простыми числами.

                                  \ No newline at end of file diff --git a/tag/flint.html.gz b/tag/flint.html.gz index 059ac3f..e4a7ed2 100644 Binary files a/tag/flint.html.gz and b/tag/flint.html.gz differ diff --git a/tag/go.html b/tag/go.html index 8e8f425..87823a3 100644 --- a/tag/go.html +++ b/tag/go.html @@ -1,5 +1,4 @@ - - Блог 529 - Go Блог 529 - Go
                                  1. Wallabag и реальная жизнь

                                    Как я устанавливал известнейшее свободное решение для отложенного чтения, и что из этого получилось.


                                  Page 1 / 1
                                  \ No newline at end of file diff --git a/tag/go.html.gz b/tag/go.html.gz index 898020b..f2fa834 100644 Binary files a/tag/go.html.gz and b/tag/go.html.gz differ diff --git a/tag/lichess.html b/tag/lichess.html index e5ab2a5..ab45ae4 100644 --- a/tag/lichess.html +++ b/tag/lichess.html @@ -1,5 +1,4 @@ - - Блог 529 - lichess Блог 529 - lichess
                                  1. Экспорт партий с Lichess

                                    Сохраняем себе шахматные партии с Lichess.org. Рабочий скрипт на Python прилагается.


                                  Page 1 / 1
                                  \ No newline at end of file diff --git a/tag/lichess.html.gz b/tag/lichess.html.gz index 444477d..ec74821 100644 Binary files a/tag/lichess.html.gz and b/tag/lichess.html.gz differ diff --git a/tag/matematika.html b/tag/matematika.html index 090a6cc..bc9cff6 100644 --- a/tag/matematika.html +++ b/tag/matematika.html @@ -1,5 +1,4 @@ - - Блог 529 - математика Блог 529 - математика
                                  1. Нахождение суммы k-ых степеней

                                    Как придумать формулу для суммы \(1^5 + 2^5 + 3^5 + \ldots + n^5\) и есть ли она вообще?

                                    \ No newline at end of file diff --git a/tag/matematika.html.gz b/tag/matematika.html.gz index 708c2c3..7fa481a 100644 Binary files a/tag/matematika.html.gz and b/tag/matematika.html.gz differ diff --git a/tag/open-source.html b/tag/open-source.html index 08aec31..5c5db80 100644 --- a/tag/open-source.html +++ b/tag/open-source.html @@ -1,5 +1,4 @@ - - Блог 529 - open source Блог 529 - open source
                                    1. Wallabag и реальная жизнь

                                      Как я устанавливал известнейшее свободное решение для отложенного чтения, и что из этого получилось.


                                    Page 1 / 1
                                    \ No newline at end of file diff --git a/tag/open-source.html.gz b/tag/open-source.html.gz index b13d3df..59f8a85 100644 Binary files a/tag/open-source.html.gz and b/tag/open-source.html.gz differ diff --git a/tag/proekt.html b/tag/proekt.html index d50552f..f74cb53 100644 --- a/tag/proekt.html +++ b/tag/proekt.html @@ -1,5 +1,4 @@ - - Блог 529 - проект Блог 529 - проект
                                    1. Экспорт партий с Lichess

                                      Сохраняем себе шахматные партии с Lichess.org. Рабочий скрипт на Python прилагается.



                                    2. CrossGen v1.0

                                      Читая хабр, случайно натолкнулся на идею сделать программу, которая по заданной кроссвордной сетке находит способ её заполнить. В этом посте вкратце напишу про моё решение и первую версию приложения.


                                    3. Ещё одно вычисление выражений

                                      На хабре когда-то увидел статью про то, что в Яндексе двум сотрудникам дали задачу на написание приложения, для вычисления выражений. Менеджер справился за 4 часа, а программист за два. Я решил попробовать свои силы.


                                    Page 1 / 1
                                    \ No newline at end of file diff --git a/tag/proekt.html.gz b/tag/proekt.html.gz index 507475c..46df747 100644 Binary files a/tag/proekt.html.gz and b/tag/proekt.html.gz differ diff --git a/tag/project-euler.html b/tag/project-euler.html index cabf7cc..17cfd33 100644 --- a/tag/project-euler.html +++ b/tag/project-euler.html @@ -1,5 +1,4 @@ - - Блог 529 - Project Euler Блог 529 - Project Euler
                                    1. Моё решение задачи 134

                                      Краткое условие: назовём порождающим для двух последовательных простых \(p_1 < p_2\) наименьшее натуральное число, что оно закачивается на \(p_1\) и при этом делится на \(p_2\). Необходимо найти сумму порождающих для всех \(p_1 \in \left[ 5; 10^6 \right]\)

                                      \ No newline at end of file diff --git a/tag/project-euler.html.gz b/tag/project-euler.html.gz index 2eafcab..6d68402 100644 Binary files a/tag/project-euler.html.gz and b/tag/project-euler.html.gz differ diff --git a/tag/python.html b/tag/python.html index 629d41a..8e33007 100644 --- a/tag/python.html +++ b/tag/python.html @@ -1,5 +1,4 @@ - - Блог 529 - Python Блог 529 - Python
                                      1. Моё решение задачи 134

                                        Краткое условие: назовём порождающим для двух последовательных простых \(p_1 < p_2\) наименьшее натуральное число, что оно закачивается на \(p_1\) и при этом делится на \(p_2\). Необходимо найти сумму порождающих для всех \(p_1 \in \left[ 5; 10^6 \right]\)

                                        \ No newline at end of file diff --git a/tag/python.html.gz b/tag/python.html.gz index 73e6c46..d97ea39 100644 Binary files a/tag/python.html.gz and b/tag/python.html.gz differ diff --git a/tag/shakhmaty.html b/tag/shakhmaty.html index 40bba39..0549486 100644 --- a/tag/shakhmaty.html +++ b/tag/shakhmaty.html @@ -1,5 +1,4 @@ - - Блог 529 - шахматы Блог 529 - шахматы
                                        1. Экспорт партий с Lichess

                                          Сохраняем себе шахматные партии с Lichess.org. Рабочий скрипт на Python прилагается.



                                        Page 1 / 1
                                        \ No newline at end of file diff --git a/tag/shakhmaty.html.gz b/tag/shakhmaty.html.gz index 75bd489..30b76f7 100644 Binary files a/tag/shakhmaty.html.gz and b/tag/shakhmaty.html.gz differ diff --git a/tag/sympy.html b/tag/sympy.html index c18a30a..f55858a 100644 --- a/tag/sympy.html +++ b/tag/sympy.html @@ -1,5 +1,4 @@ - - Блог 529 - sympy Блог 529 - sympy
                                        1. Моё решение задачи 134

                                          Краткое условие: назовём порождающим для двух последовательных простых \(p_1 < p_2\) наименьшее натуральное число, что оно закачивается на \(p_1\) и при этом делится на \(p_2\). Необходимо найти сумму порождающих для всех \(p_1 \in \left[ 5; 10^6 \right]\)

                                          \ No newline at end of file diff --git a/tag/sympy.html.gz b/tag/sympy.html.gz index a92b1eb..4f445b6 100644 Binary files a/tag/sympy.html.gz and b/tag/sympy.html.gz differ diff --git a/tag/wallabag.html b/tag/wallabag.html index 83dabee..9343fd6 100644 --- a/tag/wallabag.html +++ b/tag/wallabag.html @@ -1,5 +1,4 @@ - - Блог 529 - wallabag Блог 529 - wallabag
                                          1. Wallabag и реальная жизнь

                                            Как я устанавливал известнейшее свободное решение для отложенного чтения, и что из этого получилось.


                                          Page 1 / 1
                                          \ No newline at end of file diff --git a/tag/wallabag.html.gz b/tag/wallabag.html.gz index 2599131..d45bf7d 100644 Binary files a/tag/wallabag.html.gz and b/tag/wallabag.html.gz differ diff --git a/tag/wxwidgets.html b/tag/wxwidgets.html index 06ba51b..ff0a49c 100644 --- a/tag/wxwidgets.html +++ b/tag/wxwidgets.html @@ -1,5 +1,4 @@ - - Блог 529 - wxWidgets Блог 529 - wxWidgets
                                          1. CrossGen v1.0

                                            Читая хабр, случайно натолкнулся на идею сделать программу, которая по заданной кроссвордной сетке находит способ её заполнить. В этом посте вкратце напишу про моё решение и первую версию приложения.


                                          Page 1 / 1
                                          \ No newline at end of file diff --git a/tag/wxwidgets.html.gz b/tag/wxwidgets.html.gz index 75251f1..5216add 100644 Binary files a/tag/wxwidgets.html.gz and b/tag/wxwidgets.html.gz differ diff --git a/tags.html b/tags.html index e8b4ede..ee56d0f 100644 --- a/tags.html +++ b/tags.html @@ -1,5 +1,4 @@ - - Блог 529 - Tags Блог 529 - Tags \ No newline at end of file diff --git a/tags.html.gz b/tags.html.gz index cb847e9..40204b1 100644 Binary files a/tags.html.gz and b/tags.html.gz differ