Pull to refresh
0
0
Send message
Очень хорошая книга на эту тему — «Сингулярность близко» Рей Курцвейл.
Для тех кому лень читать всю книгу: www.spaceopera.ru/singulyarnost-uzhe-blizko.html
Эмоциональные и толстые высказывания — это, как правило, признак непрофессионализма. Так что автору еще расти и расти (без всяких обид).
А я не говорил что результат не полезен. Только что вы его переоцениваете. Я сам закончил вычислительную математику, сейчас работаю с вычислительной геометрии. Плохо быть чистым теоретиком или практиком, толковий математик должен сочетать качества обоих.
И да не вся теоретическая математика со временем дает пользу (только малая часть). В большинстве случаев теория строится для предоставления аппарата способного решать практические (востребованные) задачи.
При умножении двух матриц что вас интересует кроме сложности (и даже больше)? Точность результата! Стандартний метод (N^3) и метод Штрассена имеют очень хорошую численную устойчивость, они используют только умножение, вычитание и добавление элементов матрицы. Как только вы начинаете вычислять статистики, делить (возможно на маленькие числа) и делать более сложные операции вы теряете численную устойчивость. Кроме того большим плюсом алгоритма Штрассена является возможность паралельного вичисления субматриц.
Да не только контанта имеет значение. Если умножать матрицы методом Штрассена или обычно (за N^3) вам не нужно вычислять какие то статистики, собственние значения матрицы и тому подобное. И если вам важна точность (как в примере с Боинг), то ви не будете использовать чисельно нестабильные алгоритми.
Вы тоже слишком переоцениваете данное событие. На практике даже алгоритм Копперсмита-Винограда не используется (используют алгоритм Штрассена). А знаете почему? Потому что он не практичен! Я даже не смог найти ссылки на реализацию етого алгоритма и это при том что про него знают уже 33 года.
Если честно, то сейчас дочитываю. Мне понравилась идея «Качества», как фактора который объединяет классический и романтический склады ума.
Есть очень интересная книга на эту тему: Роберт Пирсиг «Дзен и искусство ухода за мотоциклом».
Не к чему придраться. Хорошо написано и код качественный! Нужно больше таких авторов на хабре.
Хотелось бы спросить какое отношение имеет автор к этой теме (работа, научная деятельность, олимпиадное программирование или что-то другое)?
Согласен, идея все таки старая (1983 год). Хотелось просто показать немножко другой способ оформления раскрутки цикла.
Исправил линк — en.wikipedia.org/wiki/Duff%27s_device
Устройство использует технику раскручивания цикла для оптимизации последовательного копирования.
В общих чертах выглядит вот так:

strcpy(to, from, count)
register char *to, *from;
register count;
{
register n = (count + 7) / 8;
if (!count) return;
switch (count % 8) {
case 0: do { *to = *from++;
case 7: *to = *from++;
case 6: *to = *from++;
case 5: *to = *from++;
case 4: *to = *from++;
case 3: *to = *from++;
case 2: *to = *from++;
case 1: *to = *from++;
} while (--n > 0);
}
}
Следовало бы упомянуть об устройстве Даффа — en.wikipedia.org/wiki/Duff%27s_device.
Суть в том, что людей которые потерпели неудачу значительно больше чем тех которые пришли к успеху. Выводы делайте какие хотите…
Теперь похоже на правду (я написал независимо такую же программу, только с использованием STL). Интересен тот факт, что непарные результаты намного реже парных! Можете произвести математическое расследование на эту тему ;)
У вас ошибка:
for (int i = 0; i < 1 + (p1 >= 0); i++)
if (player1->count() > 0) {
p1 = player1->first();
temp->append(p1);
player1->removeFirst();
}

Даже когда p1 = -1, цикл выполняется дважды. Для того чтобы быть уверенным что у вас все правильно просимулируйте дебагом одну игру и проследите за ней. Я уверен что у вас ошибка и мода не должна быть равна 25!
Вы можете расшарить код где то? Мода равная 25 очень подозрительная.
Можете исправить на: if ((p1 > p2) ^ (abs(p1-p2) == 8)), это будет работать.
У вас ошибка: if ((p1 > p2) || ((p1 == 0) && (p2 == 8))). При p1 = 8 и p2 = 0, неправильный ответ.
Это уже лучший пример.
Хотя данная задача имеет тривиальное решение, поскольку количество ходов для кучки n всегда равно n-1. Тогда количество ходов для кучек (a, b, c) будет a+b+c-3.
Извините, но с вашей статьи трудно понять как применяется функция Шпраг-Гранди в теории игр в общем случае. В двух приведенных примерах даже не используется функции mex и xor (другими словами они могут быть решени без каких-либо знаний об игре Ним и функции Шпрага-Гранди).
Вот ссылка где очень доступно все объясняется: e-maxx.ru/algo/sprague_grundy
Кто-то может объяснить толково что такого сделал Viewdle? Моя камера Sony также распознает лица, Google Picassa — также это делает. На сколько я понял из нового в них только возможность совмещать фотки с соц. профайлами?
1

Information

Rating
Does not participate
Registered
Activity