Ответы пользователя по тегу C#
  • Где найти такую книгу по С#?

    @tomatho
    Не понимаю зачем вообще учить что-то перед изучением <название языка>.
    Почему бы не сразу заняться изучением <названия языка>?
    Ответ написан
    Комментировать
  • Как посчитать центр тяжести человека используя Kinect?

    @tomatho
    Если требуется приблизительно предположить местоположение центра масс исходя из табличных данных которые мы предполагаем весят данные части тела, то ваша формула для координаты x верна, а для всех остальных координат аналогично.
    Но это только если у всех x одна общая система координат, и эти координаты должны быть центрами масс частей тела, и тогда центр масс тоже будет в этой же системе координат.

    На всякий случай, вдруг пригодится, если вы не знали, простая формула для середины отрезка:
    x = (x1 + x2)/2
    y = (y1 + y2)/2
    z = (z1 + z2)/2

    Применительно к кинекту ничего не знаю. Думаю массы по координатам частей тела тоже можно определить приблизительно, если есть существенная выборка и исходя из гипотезы, что чтобы не упасть человеку нужно удерживать центр масс в некоторой области под собой. Но это слишком сложно, и сомневаюсь в целесообразности этого.
    Ответ написан
    Комментировать
  • Параллельное программирование, на какие операции разбить?

    @tomatho
    В первую очередь параллель это:
    for (int k = 0; k < i; k++)
        temp = temp + U[k, i] * U[k, j];

    Просто разбей диапазон значений j на M ядер.
    Проще всего так. Если у нас есть N операций, и мы хотим разбить на M ядер то это (N+M-1)/M с округлением вниз операций на ядро.
    Update: Не всё так просто как мне казалось, в общем, это не ответ.

    Можно другие попробовать распараллелить, но это это самая ресурсоёмкая часть.
    Вообще хорошо гуглится описание распараллеливания этого алгоритма.
    Ответ написан
    9 комментариев
  • Поиск простых больших чисел на C# BigInteger?

    @tomatho
    Слишком большие числа для таких алгоритмов. Эти алгоритмы слишком медленные.
    Другими словами, мой ответ такой: Этот код работает, просто вам не хватит терпения дождаться его завершения.
    Update: modulo, modulo1. Что в оригинальном алгоритме, что в итоге - несёт какую-то бессмыслицу.

    Чтобы улучшить скорость, используйте вместо BigInteger обычный long.
    Этот тип позволит поддерживать числа до 9223372036854775807.
    А это число существенно больше тех чисел, которые можно проверить на простоту приведёнными выше алгоритмами, за разумное время.

    Что касается скоростных тестов на простоту, то можете реализовать тест Рабина-Миллера.
    Он сравнительно прост, и очень эффективен. Проблема его лишь в том, что он отвечает:
    "Это число простое с вероятностью 99.9999%"
    Зато вероятность эта может быть выбрана произвольно высоко.
    Например, он может ошибаться в среднем в одном случае из миллиона.

    Что касается точных проверок на простоту, такие реализовать сложнее.
    И я не думаю что у вас стоит такая задача.
    Ответ написан
    1 комментарий