Форум программистов, компьютерный форум, киберфорум
Наши страницы
Комментарии
Войти
Регистрация
Восстановить пароль
  1. Старый комментарий
    И шестой эйлер готов!
    Цитата:
    Прикольно-прикольно!)
    С Наступающим
    Спасибо! Я всё надеюсь успеть ещё один ролик записать и уже поздравить всех, но вдруг не успею - и Вас с наступающим!
    Запись от Тамика размещена 26.12.2018 в 14:58 Тамика вне форума
  2. Старый комментарий
    Аватар для Jlovenpk1
    И шестой эйлер готов!
    Прикольно-прикольно!)
    С Наступающим
    Запись от Jlovenpk1 размещена 25.12.2018 в 14:04 Jlovenpk1 вне форума
  3. Старый комментарий
    Аватар для bedvit
    Решение задач ProjectEuler №3 и № 4.
    Байт, благодарю за оценку и содержательные комментарии в моем блоге.
    Тамика, конечно есть и более быстрые алгоритмы, к примеру Общий метод решета числового поля
    Запись от bedvit размещена 20.12.2018 в 21:53 bedvit вне форума
  4. Старый комментарий
    Аватар для Байт
    Решение задач ProjectEuler №3 и № 4.
    Цитата:
    Конечно интересно
    Искать долго не пришлось. Ибо уважаемый bedvit дал ссылку на свой блог, где это обсуждалась http://www.cyberforum.ru/blogs/829006/blog4754.html
    Но хочу заметить, что его исследования на эту тему и глубже, и интереснее, чем все что может предложить ваш покорный слуга.
    Запись от Байт размещена 18.12.2018 в 22:08 Байт вне форума
  5. Старый комментарий
    Щепоточка гита :)
    Цитата:
    Зачем нужен git, не достаточно объяснено.
    Спасибо за комментарий!

    Пересмотрела своё видео... Вы правы. Так боялась слишком запутанно изложить информацию о гите, что вышло, видимо, недостаточно информативно...
    My bad
    Я постараюсь исправить этот косяк в следующем видео по гиту!
    Запись от Тамика размещена 18.12.2018 в 18:19 Тамика вне форума
  6. Старый комментарий
    Аватар для Rius
    Щепоточка гита :)
    .git это не файл, а каталог. Файл .git появляется при применении фичи worktree, которая здесь не рассматривается.
    Зачем нужен git, не достаточно объяснено. Вот такие не поймут: http://www.cyberforum.ru/beta-testin...l#post12934243
    Запись от Rius размещена 18.12.2018 в 17:59 Rius на форуме
  7. Старый комментарий
    Решение задач ProjectEuler №3 и № 4.
    Цитата:
    Экзерсисы на эту тему от вашего покорного слуги где-то уже были на форуме. Если интересно, попробую поискать.
    Рада Вас снова видеть у себя в блоге! Заходите почаще

    Конечно интересно
    Запись от Тамика размещена 18.12.2018 в 16:07 Тамика вне форума
  8. Старый комментарий
    Решение задач ProjectEuler №3 и № 4.
    Цитата:
    Все просты делители числа 600851475143:
    Ого, спасибо большое за комментарии!

    Вот как раз пришла к Вашему способу, потому на видео моего канала уже решено быстро и просто Как раз Вашим методом
    Запись от Тамика размещена 18.12.2018 в 13:15 Тамика вне форума
  9. Старый комментарий
    Аватар для bedvit
    Решение задач ProjectEuler №3 и № 4.
    Конечно, все зависит от алгоритма и числа.
    К примеру такое число, см. ниже из 35 знаков раскладывается на простые множители за 0.022 секунды, потому что у него много делителей, быстро убывает остаток неразложенного числа, отсекая заведомо ненужные расчеты.
    Enter the numeric: 32145698745623154896521456325789541
    Result:
    1
    3
    43
    89
    421
    1471
    3139
    3827
    18559
    279371
    72587646
    Time, sec (min): 0.022000 (0.000367) Solutions: 11

    А такое см. ниже.(40 знаков) уже за 165.8 секунды, потому как делителей меньше, само число больше, меньше этапов отсечения лишних расчетов, больше времени на перебор.
    Enter the numeric: 1236541236987456214532145698745632554159
    Result:
    1
    7
    61
    11969
    468883099
    27339429457
    18874212319751

    Time, sec (min): 165.806000 (2.763433) Solutions: 7
    Запись от bedvit размещена 14.12.2018 в 18:02 bedvit вне форума
  10. Старый комментарий
    Аватар для bedvit
    Решение задач ProjectEuler №3 и № 4.
    Можно что-то побольше (рендомное число - 27 знаков):
    Enter the numeric: 131456489789465133213248979
    Result:
    1
    3
    7
    109
    227
    337
    107246330293516327

    Time, sec (min): 1.924000 (0.032067) Solutions: 7
    Запись от bedvit размещена 14.12.2018 в 15:14 bedvit вне форума
  11. Старый комментарий
    Запись от bedvit размещена 14.12.2018 в 15:10 bedvit вне форума
  12. Старый комментарий
    Аватар для Байт
    Решение задач ProjectEuler №3 и № 4.
    Цитата:
    З.Ы. Решето Эратосфена тут не подойдет, потому как создать вектор с сайзом 600851475143 жестоко по отношению к памяти.
    Ну, во-первых такой сайз и не нужен. достаточно условия size*size > 600851475143
    Во-вторых можно предложить хорошую упаковку решета. В каждой тридцатке (не считая первой) есть всего 8 чисел, подозрительных на простоту. То есть информацию о простоте 30 чисел можно уложить в 8 битов, и - какая удача! - ровно в 1 байт
    Не знаю, помогут ли эти соображения справиться с вашим монстром, но кой-какую экономию памяти они дают.
    Экзерсисы на эту тему от вашего покорного слуги где-то уже были на форуме. Если интересно, попробую поискать.
    Для вашего конкретного числа потребуется память порядка 250000 байт, что уже вполне реально.
    Конечно, это не панацея, потребность в памяти сокращается только в разы, но все-таки...
    Запись от Байт размещена 14.12.2018 в 13:46 Байт вне форума
  13. Старый комментарий
    Аватар для bormant
    Решение задач ProjectEuler №3 и № 4.
    Цитата:
    Решето Эратосфена тут не подойдет
    Если оно не хранится, это еще не значит, что не используется ;-)

    Хозяйке на заметку: в задаче №3 функция is_prime() лишняя совсем: если на очередной кандидат в простые поделилось без остатка -- этот кандидат не может быть составным числом (все простые, что меньше этого текущего кандидата, уже исключены из разложения на предыдущих шагах).

    C++
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    
    unsigned long long solve(unsigned long long value)
    {
        unsigned long long answer = 0;
        while (value % 2 == 0) {
            value /= 2; answer = 2;
        }
        for (unsigned long i = 3; i * i <= value; i += 2) {
            while (value % i == 0) {
                value /= i; answer = i;
            }
        }
        return answer > value ? answer : value;
    }
    А если вспомнить, что шаг между кандидатами в простые в исследуемом диапазоне чередуется как 2, 4:
    C++
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    
    unsigned long long solve(unsigned long long value)
    {
        unsigned long long answer = 0;
        while (value % 2 == 0) {
            value /= 2; answer = 2;
        }
        while (value % 3 == 0) {
            value /= 3; answer = 3;
        }
        for (unsigned long i = 5, delta = 2; i * i <= value; i += delta, delta ^= 6) {
            while (value % i == 0) {
                value /= i; answer = i;
            }
        }
        return answer > value ? answer : value;
    }
    Стоит ли выносить answer=...; из цикла или с этим и оптимизатор сам справится предлагается выяснить самостоятельно.

    Речь про
    C++
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    unsigned long long solve(unsigned long long value)
    {
        unsigned long long answer = 0;
        if (!(value % 2)) {
            answer = 2; do value /= 2; while (!(value % 2));
        }
        if (!(value % 3)) {
            answer = 3; do value /= 3; while (!(value % 3));
        }
        for (unsigned long i = 5, delta = 2; i * i <= value; i += delta, delta ^= 6) {
            if (!(value % i)) {
                answer = i; do value /= i; while (!(value % i)); 
            }
        }
        return answer > value ? answer : value;
    }
    Запись от bormant размещена 13.12.2018 в 15:52 bormant вне форума
    Обновил(-а) bormant 13.12.2018 в 16:02
  14. Старый комментарий
    Немного о совсем простых вещах :)
    Цитата:
    P.S: наверное в блоге стоит тоже ссылку на ресурс указать.
    Да, идея хорошая Сейчас сделаем-с.
    Запись от Тамика размещена 20.11.2018 в 16:02 Тамика вне форума
  15. Старый комментарий
    Аватар для Avazart
    Немного о совсем простых вещах :)
    Выбор может быть - разбираться или переписать с нуля.
    В приведенном коде наверное самое просто - разрулить все через typedef, но можно использовать контейнеры и std::function

    P.S: наверное в блоге стоит тоже ссылку на ресурс указать.
    Запись от Avazart размещена 20.11.2018 в 15:35 Avazart на форуме
  16. Старый комментарий
    Немного о совсем простых вещах :)
    Цитата:
    Сообщение от Avazart Просмотреть комментарий
    Никак не нужно такие вещи читать, нужно их тупо выпиливать с проекта и упрощать код что бы в принципе таких вопросов не было.
    Категорически согласна
    Однако, как мы не выбираем родителей, так мы и не выбираем унаследованный код, с которым предстоит работать И даже если будет возможность всё "это" выпилить, то сначала придётся с "этим" разобраться...
    Запись от Тамика размещена 20.11.2018 в 12:17 Тамика вне форума
  17. Старый комментарий
    Аватар для CoderHuligan
    Немного о совсем простых вещах :)
    А это не С, а как раз C++. Получается Страуструп недоборолся? Какое упущение!
    Запись от CoderHuligan размещена 20.11.2018 в 10:20 CoderHuligan на форуме
  18. Старый комментарий
    Аватар для Fulcrum_013
    Немного о совсем простых вещах :)
    Теперь понятно с каким именно злом С боролся Страуструп изобретая С++ - в плюсах без этого мозговыноса все это гораздо эффективней и гибче делается.
    Хотя бы потому что городить такие конструкции врядли понадобится - они обычно где то под капотом класса декомпозированные на свои элементы спокойно живут и потому живут гораздо более гибче и безопаснее.
    Запись от Fulcrum_013 размещена 20.11.2018 в 08:42 Fulcrum_013 вне форума
    Обновил(-а) Fulcrum_013 20.11.2018 в 08:52
  19. Старый комментарий
    Аватар для Avazart
    Немного о совсем простых вещах :)
    Никак не нужно такие вещи читать, нужно их тупо выпиливать с проекта и упрощать код что бы в принципе таких вопросов не было.
    Запись от Avazart размещена 19.11.2018 в 19:11 Avazart на форуме
  20. Старый комментарий
    Аватар для Avazart
    И ещё 10 способов вывода слова Hello на современном С++ :)
    Цитата:
    Эти видео не "изложение материала", оно несёт скорее развлекательный характер. Cамо название об этом говорит - "silly ways".
    Ясно.

    Цитата:
    К вопросу зачем это всё: наткнулась на забавную презентацию, демонстрирующую нововведения С++, понравилась, решила озвучить.
    Кстати про нововведения мне понравилось.

    Цитата:
    2) по поводу public - Вы про функтор? Там структура, которая видима только в одной ф-ции да и не хочется загромождать лишними строками, которые ничего не дадут для наглядности
    Функтур как бы тоже класс инкапсуляцию никто не отменял.
    Запись от Avazart размещена 09.11.2018 в 20:45 Avazart на форуме
    Обновил(-а) Avazart 09.11.2018 в 20:46
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru