Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Результаты опроса: Аналогичный расчёт, написанный в Вашей любимой среде разработки, быстрее (как думаете?)?
Не знаю — не пробовал(а). 1 25.00%
Скорее да. 3 75.00%
Скорее нет. 0 0%
Моя среда — VBE, так что ни быстрее и ни медленнее! 0 0%
Голосовавшие: 4. Вы ещё не голосовали в этом опросе

Ответ
 
Опции темы Поиск в этой теме
Старый 20.09.2011, 11:04   #11
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию Предел возможного?

Цитата:
Сообщение от Skif-F Посмотреть сообщение
Код:
For j = i + i To N Step i
   ...
Next j
Вот я и применяю на практике то, что помню.
Код:
For j = i ^ 2 To N Step i
   ...
Next j
(от самого Пифагора!) ещё быстрее. Чуть-чуть.
Sasha_Smirnov вне форума Ответить с цитированием
Старый 21.09.2011, 22:59   #12
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Цитата:
Сообщение от Sasha_Smirnov
Убоявшимся лезть внутрь — вот замечательный фрагмент (система счисления на выбор!)...
... В качестве «гимнастики ума» предлагаю сократить.
Если говорить конкретно про этот кусок кода, то так:
Код:
'x должен иметь тип Variant
Do
    For Each x In Split("16 10 8 4 2")
        answer = MsgBox(x & "?", vbQuestion + vbYesNoCancel)
        If answer = vbCancel Then Exit Sub
        If answer = vbYes Then Exit Do
    Next
Loop
NBase = Val(x)
Хотя более логично было бы создать форму с комбобоксом или радиобатонами.
Цитата:
Код:
'Берём для начала все нечётные положительные числа, за исключением единицы.'
For i = 3 To N Step 2: flags(i) = 1: Next i
Зачем держать в массиве элементы, соответствующие четным числам? Лучше сразу их исключить, т.е. подразумевать под элементами массива числа 3, 5, 7 и т.д. Да, адресация массива немного усложнится, зато массив станет в 2 раза меньше (или при том же объеме памяти можно достичь в 2 раза большего числа), и цикл по четным не нужен.
А еще интереснее сделать так, чтобы числу соответствал 1 бит, а не байт.
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 22.09.2011, 22:06   #13
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Цитата:
Сообщение от Казанский Посмотреть сообщение
А еще интереснее сделать так, чтобы числу соответствал 1 бит, а не байт.
Вот-вот-вот, как сказал бы Ленин.

Тема «подпитывается» раз в год, и я сам уже теряю интерес.

Вообще замечательно, что поддержали. Надежда не умерла! Спасибо.

Конечно, из моих тем многое сделано кустарно, «малой кровью», и особенно транскрипция (http://programmersforum.ru/showthread.php?t=54187). Но аналогов-то нет!

Последний раз редактировалось Sasha_Smirnov; 22.09.2011 в 22:43.
Sasha_Smirnov вне форума Ответить с цитированием
Старый 25.11.2012, 08:35   #14
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию Пушкин и его любимые буквы и буквосочетания

И вот, 430 дней спустя, на почве темы Подсчет вероятности встречи в тексте двухсимвольных сочетаний вызрел очередной продукт для испытаний на скорость.

Программа с кнопкой — в папа-мама.doc’е; параметры машины — на рисунке.

Ниже мои результаты для сочетаний букв (от 1 до 6) с временами расчёта. Для одной буквы — все, для нескольких — самые частые группы.

01c 01f 01h 01y 02ъ 03b 03d 03l 03u 04s 04t 05M 05o 05r 06n 07э 08a 08ё 10e 14V 17ф 17щ 25ц 26X 31ю 39I 55ш 61Х 83ж 93ч 119я 122з 131б 133й 136г 158ы 162п 176ь 208у 212к 243д 256м 289р 314в 325С 351л 399т 448и 489н 498а 563е 674о (18,4 с)

16бр 16жи 16из 16кр 16ну 16пи 16са 16св 16сь 17аз 17еж 17ей 17же 17ку 17нь 18ив 18Чт 18ых 18ьн 19дн 19му 19нн 19ят 20бы 20ди 20Пе 20ча 21ий 21ки 21ми 21уж 22ви 22ев 22об 22ок 23ад 23ар 23ля 23ся 23че 24им 24ти 25бо 25вс 27ис 28ес 28ру 29ас 29ед 29за 29Сл 30до 30ри 30ск 31ав 31тр 32Ак 32ве 32вы 33ег 33се 34ла 35ме 35от 35те 36ам 36ем 36Ин 38ль 38ор 39да 39ер 39ый 40ва 40го 40ил 41ом 41пр 42ан 43ел 43ог 43ос 44ол 45мо 45од 46ли 46ло 47ле 47ов 49де 49ит 49ко 49ре 50ны 50ой 50та 51ро 52ат 54ал 55во 55то 56ка 57ни 61он 61по 62ен 64ра 64ст 66ет 70на 82ть 87но 90не (13,7 с)

08ало 08ате 08Всё 08гда 08еги 08ере 08Еще 08зна 08ист 08ись 08Ког 08ком 08Кон 08лов 08мел 08нет 08ний 08ник 08ним 08ног 08ого 08оди 08ото 08пер 08пис 08Пол 08ред 08род 08ски 08тра 09вер 09вый 09гин 09лся 09нег 09нем 09ным 09рав 09раз 09рас 09руг 09ско 09сле 09сти 09тьс 09ься 10али 10ани 10для 10дру 10ень 10мен 10мог 10мой 10оро 10при 10ьны 11был 11ват 11ему 11ных 11ова 11одн 11оль 11оне 11пос 11сво 11ять 12вол 12ель 12енн 12лис 12нны 12ост 12стр 12тал 12там 13Все 13ени 13ран 14дет 14лет 14про 14тел 15ной 17его 17ста 18как 18льн 18Что 20ить 23ный 34ать (9,1 с)

04азат 04анил 04вген 04влят 04воей 04восп 04день 04дума 04Евге 04енно 04енья 04жден 04зать 04каза 04наде 04ност 04одет 04опат 04пере 04пото 04рада 04разд 04свет 04свое 04Свои 04ский 04след 04слуш 04став 04ство 04трас 04учен 04фран 05ался 05блис 05Всех 05ений 05иста 05лист 05лись 05нако 05прав 05рани 05ской 05Слов 05Стра 06ател 06гени 06ельн 06оват 06одил 06посл 06пред 07воль 07друг 07егин 07енны 07Когд 07льно 07лять 07нный 07огда 07одно 07ольн 07Онег 07стал 08неги 09ться 10вать 10льны 10тель (5,7 с)

03Monsi 03nsieu 03onsie 03sieur 03авлят 03анцуз 03арств 03аться 03вдруг 03Готов 03довол 03думат 03ежной 03забав 03знако 03ились 03истал 03итель 03ическ 03льный 03льным 03наком 03ольны 03опать 03ослуш 03после 03послу 03равно 03ранцу 03рство 03Своих 03следн 03слушн 03стави 03Театр 03трада 03траст 03ужден 03умать 03учены 03Франц 03хлопа 03Храни 03чался 04азать 04вгени 04влять 04гений 04Евген 04ельны 04енный 04казат 04ольно 04ранил 04своей 04Страс 05блист 05листа 05овать 05тельн 06атель 06вольн 07Когда 07негин 07Онеги (25 с)

03Monsie 03nsieur 03onsieu 03авлять 03арство 03ательн 03думать 03знаком 03листал 03ослушн 03послуш 03ранцуз 03страст 03тельны 03Францу 04вольно 04Евгени 04казать 05блиста 07Онегин (3,0 секунды)
Изображения
Тип файла: png ламборгини-дьябло-2007.png (24.1 Кб, 61 просмотров)
Вложения
Тип файла: doc папа-мама.doc (139.0 Кб, 10 просмотров)

Последний раз редактировалось Sasha_Smirnov; 25.11.2012 в 08:53.
Sasha_Smirnov вне форума Ответить с цитированием
Старый 25.11.2012, 21:58   #15
Skif-F
Форумчанин
 
Регистрация: 24.03.2010
Сообщений: 349
По умолчанию

Саш, провоцируешь?
А чего обновление экрана не заблокировал? - двухкратное сокращение времени!
У меня это с 22 до 10 секунд на твоих базовых настройках
Нет нерешаемых задач - есть недостаток времени и данных!
Skif-F вне форума Ответить с цитированием
Старый 25.11.2012, 23:12   #16
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Я знал!!! Спасибо. А мои базовые — это объём текста?

Если гость этой темы увидит, что программа «не заводится» хотя бы 10 секунд, он её просто сбросит.
Sasha_Smirnov вне форума Ответить с цитированием
Старый 26.11.2012, 13:03   #17
Skif-F
Форумчанин
 
Регистрация: 24.03.2010
Сообщений: 349
По умолчанию

да, твой файл и установленную тобой разбивку на 4 символа
Нет нерешаемых задач - есть недостаток времени и данных!
Skif-F вне форума Ответить с цитированием
Старый 04.12.2012, 17:11   #18
Skif-F
Форумчанин
 
Регистрация: 24.03.2010
Сообщений: 349
По умолчанию

Ну вот, выбрал на работе свободную минутку и накидал свой вариант. Отличие от твоего только в способе поиска последовательностей - заменил поиск по .Find на работу с символами.
На 4 символах даёт двухкратный рост производительности. Проверь, возможно я ошибаюсь.
Вложения
Тип файла: doc папа-мама 2.doc (120.0 Кб, 6 просмотров)
Нет нерешаемых задач - есть недостаток времени и данных!
Skif-F вне форума Ответить с цитированием
Старый 05.12.2012, 03:05   #19
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

А я вот всё собираюсь испытать это на Словаре (Dictionary) — там сортировка мощнее и проще.

Рисунки 1 и 2 демонстрируют аж 21-кратное ускорение вашего кода относительно моего!
Изображения
Тип файла: png Sasha_Smirnov_3195.png (22.5 Кб, 42 просмотров)
Тип файла: png Skif-F_3195.png (19.0 Кб, 42 просмотров)

Последний раз редактировалось Sasha_Smirnov; 06.12.2012 в 02:42.
Sasha_Smirnov вне форума Ответить с цитированием
Старый 05.12.2012, 17:37   #20
Skif-F
Форумчанин
 
Регистрация: 24.03.2010
Сообщений: 349
По умолчанию

Вот ещё вариант. Тут более серьёзные изменения.
Вложения
Тип файла: doc папа-мама 3.doc (123.0 Кб, 8 просмотров)
Нет нерешаемых задач - есть недостаток времени и данных!
Skif-F вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
быстродействие Access по сети Tatu Microsoft Office Access 2 20.10.2009 13:48
VBA 6.0 Maxs Софт 6 22.05.2009 15:40
VBA LLIypLLIyH Помощь студентам 2 27.10.2008 07:59