Хорошо.
Перевёрнутый Маркс при первом посещении ленинской комнаты исполнителем - это либо сигнал от кого-то из ранее прибывших, либо случайно брошенная книжка в начале. Прибавим к "критической" величине счётчика единицу и всё ок )
В предыдущем решении забыл добавить, что после однократного переворачивания Маркса все кроме исполнителя в дальнейшем должны переворачивать только Энгельса.
Похожую задачку задавали в Яндексе на собеседовании :)
Назначить одного человека "исполнителем".
Далее следующий алгоритм: всем кроме исполнителя переворачивать Маркса на спину, если он уже не перевёрнут. Если перевёрнут - переворачивать Энгельса.
Исполнителю, если Маркс перевёрнут, перевернуть назад и прибавить к счётчику единицу. Если не перевёрнут, перевернуть Энгельса.
Если счётчик достиг величины (количество заключённых-1), т. е. в нашем случае 4, значит, в Ленинской комнате все были.
Это при условии, что в самом начале книжки лежат лицом вверх.
По-моему, ни у одного адекватного пользователя не возникнет мысли, что открывая ссылку, он подвергает компьютер риску сравнимому с запуском неизвестной программы. Такое имеет место только из-за дырявости браузера.
Xandros - платный дистрибутив. И есть разумное объяснение тому, что выбран именно платный - ASUS же должен на кого-то рассчитывать, предоставляя поддержку. Как альтернативу, можно было бы выбрать Ubuntu, но опять-таки с подпиской на платную поддержку хотя бы на период гарантии. Делать её обязательной или добровольной - другой вопрос, вполне возможно, американские законы обязывают к первому варианту.
Мне почему-то кажется, что будущее за языками, в которых есть конструкции для непоследовательной блочной обработки данных (типа map и filter в питоне, map и grep в перле). Нынешние реализации, возможно, обрабатывают данные последовательно, но можно ограничить такое использование, тогда программисты будут в "непоследовательных" случаях их использовать, а в "последовательных" ограничатся старым добрым for - и компилятор сам распараллелит задачу на нужное (или заданное) число потоков в "непоследовательных" конструкциях )
Перевёрнутый Маркс при первом посещении ленинской комнаты исполнителем - это либо сигнал от кого-то из ранее прибывших, либо случайно брошенная книжка в начале. Прибавим к "критической" величине счётчика единицу и всё ок )
В предыдущем решении забыл добавить, что после однократного переворачивания Маркса все кроме исполнителя в дальнейшем должны переворачивать только Энгельса.
Назначить одного человека "исполнителем".
Далее следующий алгоритм: всем кроме исполнителя переворачивать Маркса на спину, если он уже не перевёрнут. Если перевёрнут - переворачивать Энгельса.
Исполнителю, если Маркс перевёрнут, перевернуть назад и прибавить к счётчику единицу. Если не перевёрнут, перевернуть Энгельса.
Если счётчик достиг величины (количество заключённых-1), т. е. в нашем случае 4, значит, в Ленинской комнате все были.
Это при условии, что в самом начале книжки лежат лицом вверх.
Я в школе, когда про sqrt не знал, делал pow(x,1/2) :)
Виртуальную, скорее всего.
Xandros - платный дистрибутив. И есть разумное объяснение тому, что выбран именно платный - ASUS же должен на кого-то рассчитывать, предоставляя поддержку. Как альтернативу, можно было бы выбрать Ubuntu, но опять-таки с подпиской на платную поддержку хотя бы на период гарантии. Делать её обязательной или добровольной - другой вопрос, вполне возможно, американские законы обязывают к первому варианту.
Можно, конечно, поругаться на особенности реализации. Но это поправимо. А идея прекрасна.