Re[99]: Ультракороткий язык программирования RS
От: samius Япония http://sams-tricks.blogspot.com
Дата: 27.12.10 11:50
Оценка:
Здравствуйте, PC_2, Вы писали:

PC_>Здравствуйте, samius, Вы писали:


S>>Позор за алгоритмическую оценку решения.


PC_>Я тебя уже который раз говорю — нормально сформулируй задачу.

PC_>А то ты как флюгер, то ты решаешь задачу подбора паролей, то у тебя уже какая то
PC_>лотерейная задача 5 из 30 то еще что-то.

PC_>Сформулируй что ты хочешь вообще.


Устал формулировать. Поищи сам. А потом, ты опять не поймешь что я хочу, и буду как попугай. Развлекайся без меня.
Re[97]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 27.12.10 11:52
Оценка: :))
Здравствуйте, samius, Вы писали:

S>Здравствуйте, PC_2, Вы писали:


PC_>>Это пока общая концептуальная мысль была на счет навесов,

PC_>>нужно еще тут много думать.
PC_>>Здесь какбы до сути главное докопаться.

S>Аха, как с 30^5


Помойму ты хрень сморозил.
Твой вопрос сгенерить 5 из 30.
Это 5 неповторяющихся символов по алфавиту 30.

Следовательно РС сделает цикл 30^5 и отфильтрует все не нужное.
Судя по тому что цикл на 1 млн занял 45 секунд, то на 2,5 млн, будет гдето 2минуты.
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[95]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 27.12.10 11:58
Оценка: :)
Здравствуйте, samius, Вы писали:

S>Здравствуйте, PC_2, Вы писали:


E>>>>Я бы не был так уверен... Ну, во всяком случае без профилирования...

S>>>Хм. Получение миллионного пароля 17 сек ( и над этим можно работать и увести к долям секунды), получение первого миллиона паролей — полторы минуты.

PC_>>Замерял в РС вотето,


PC_>>
PC_>>!x='0'..'9'
PC_>>i<6?a+='+x'+i
PC_>>^('s,=' + a)
PC_>>


S>Прошу прощения модераторов и Егора, но ты либо ..., либо просто хочешь меня выбесить и преуспеваешь в этом

S>Для задачи 5 из 10и
S>00:00:00.2906668 — получение всех с вычислением
S>Миллионного там нет. Их всего-то 10*9*8*7*6. Где ты видишь млн там вообще?

В смысле, опять ты всех запутал со своими задачами.
Формулирую предельно ясно.
45 секунд в РС занимает генерация всех строк от
000000 до 999999.

Коих миллион. Вышеприведенный пример это и делает.
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[96]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 27.12.10 12:04
Оценка: -1
S>Хм. Получение миллионного пароля 17 сек ( и над этим можно работать и увести к долям секунды), получение первого миллиона паролей — полторы минуты.

А какже в РС 45 секунд это занимает.
Чтото функциональщик намудрил ...
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[96]: Ультракороткий язык программирования RS
От: samius Япония http://sams-tricks.blogspot.com
Дата: 27.12.10 12:04
Оценка:
Здравствуйте, PC_2, Вы писали:

S>>Для задачи 5 из 10и

S>>00:00:00.2906668 — получение всех с вычислением
S>>Миллионного там нет. Их всего-то 10*9*8*7*6. Где ты видишь млн там вообще?

PC_>В смысле, опять ты всех запутал со своими задачами.

PC_>Формулирую предельно ясно.
PC_>45 секунд в РС занимает генерация всех строк от
PC_>000000 до 999999.

PC_>Коих миллион. Вышеприведенный пример это и делает.


А чего ты его цифру ровняешь с решением другой задачи? Я чет не понял. Давай уж тогда пиши доставание миллионного из 5x30, или давай я тебе покажу время генерации всех строк от 000000 до 999999 на C#-е
Re[95]: Ультракороткий язык программирования RS
От: Erop Россия  
Дата: 27.12.10 12:05
Оценка:
Здравствуйте, samius, Вы писали:

S>Проход по высоте дерева итераторов, а не перебор итераторов.


Ну, судя по времени, там пропускают только нижний этаж...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[97]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 27.12.10 12:07
Оценка:
S>давай я тебе покажу время генерации всех строк от 000000 до 999999 на C#-е

покажи на функциональном языке, чтоб там с ленивостью, состояниями автоматов и всетакое ...

ЗЫ:
Но не забывай что алфавит 0-9 это чисто случайный алфавит, можно выбрать любой другой на теже десять символов
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[96]: Ультракороткий язык программирования RS
От: samius Япония http://sams-tricks.blogspot.com
Дата: 27.12.10 12:08
Оценка:
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, samius, Вы писали:


S>>Проход по высоте дерева итераторов, а не перебор итераторов.


E>Ну, судя по времени, там пропускают только нижний этаж...

Это было о достижимом результате, а не о существующей реализации
Re[23]: Ультракороткий язык программирования RS
От: anonymous Россия http://denis.ibaev.name/
Дата: 27.12.10 12:30
Оценка:
Здравствуйте, PC_2, Вы писали:

AV>>Это образец понятности? А то я, например, ничего не понял. Что значит "SR", что значит "a"?

PC_>Потому что глупо было както несколько страниц сравнивать вызов библиотечной функции в перле
PC_>и не вызов а сам алгоритм сортировки в РС, пришлось обломать перл в его же стиле

http://rsdn.ru/forum/flame.comp/4090343.1.aspx
Автор: anonymous
Дата: 23.12.10
Re[24]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 27.12.10 12:35
Оценка:
A>http://rsdn.ru/forum/flame.comp/4090343.1.aspx
Автор: anonymous
Дата: 23.12.10


Ты отстал от жизни, есть задача уже поинтересней.

Напомню условия задачи,
есть динамически задаваемый алфавит, к примеру от a-z
есть динамически задаваемая длина пароля, допустим 4 символа.
Сгенерить все строки от aaaa до zzzz

Давай Перлист, присоединяйся
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[98]: Ультракороткий язык программирования RS
От: samius Япония http://sams-tricks.blogspot.com
Дата: 27.12.10 12:38
Оценка:
Здравствуйте, PC_2, Вы писали:

S>>давай я тебе покажу время генерации всех строк от 000000 до 999999 на C#-е


PC_>покажи на функциональном языке, чтоб там с ленивостью, состояниями автоматов и всетакое ...

let rec px xs = function 
    | 0 -> seq [seq []]
    | n -> seq { for x in xs do
                     for r in px xs (n-1) -> 
                         Seq.append [x] r }



PC_>ЗЫ:

PC_>Но не забывай что алфавит 0-9 это чисто случайный алфавит, можно выбрать любой другой на теже десять символов
Хоть из ста енотов

00:00:18.1934755 — получение всех паролей.
00:00:08.1582394 — только миллионный
Re[99]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 27.12.10 12:45
Оценка: :)
Здравствуйте, samius, Вы писали:

S>00:00:18.1934755 — получение всех паролей.

S>00:00:08.1582394 — только миллионный

18 секунд против 45, это откровенно говоря хреновый результат.
Первая же волна оптимизаций в интерпретаторе РС принесет уже многократное
увелечение скорости. Например в этой задаче переделать конкатенацию строк на StringBuilder,
это уже профит в несколько раз ...

Резюме:
Получается решение слило многократно по краткости
Слило потенциально по скорости работы

Со скипом еще есть оговорки.
Поскольку ф шарп завис гдето между и между.
Решение откровенно плохое по сравнению с Си,
и несколько лучше чем фильтр в конце, как было предложено в РС ...
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[100]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 27.12.10 12:51
Оценка: :))
Кстате на счет скипа.
Егор тут правильно заметил, что разница между 18 секундами и 8 секундами скорей всего заключается в самом внутреннем итераторе.

Так вот в РС это тоже сделать черезвычайно просто

если например у нас генерация паролей с aaaaa до zzzzz,
и в переведущий раз мы прошли от ааааа до скажем ххххх.

То первый переборщик мы можем инициировать смело по алфавиту х-z

и получим двадцатикратный прирост производительности.
Собственно где и скрыта та самая итерация по всего одному итератору

Все, Ф Шарп раскусили, у него профитов не осталось в этом примере
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[101]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 27.12.10 12:54
Оценка:
Код для примера выше, с пропуском лишних комбинаций


!y = 'x'..'z' //первый переборщик итерируем только на остатке
!x='a'..'f'   //остальные разряды идут по полному алфавиту
i<3?a+='+x'+i
^('s,=y' + a)
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[102]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 27.12.10 12:56
Оценка:
Не совсем тот пример скопировал
вот рабочий код

!y = 'x'..'z' //первый переборщик итерируем только на остатке
!x='а'..'z'   //остальные разряды идут по полному алфавиту
i<5?a+='+x'+i
^('s,=y' + a)
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[100]: Ультракороткий язык программирования RS
От: samius Япония http://sams-tricks.blogspot.com
Дата: 27.12.10 12:57
Оценка: +1
Здравствуйте, PC_2, Вы писали:

PC_>Здравствуйте, samius, Вы писали:


S>>00:00:18.1934755 — получение всех паролей.

S>>00:00:08.1582394 — только миллионный

PC_>18 секунд против 45, это откровенно говоря хреновый результат.

На разном железе, заметь

PC_>Первая же волна оптимизаций в интерпретаторе РС принесет уже многократное

PC_>увелечение скорости. Например в этой задаче переделать конкатенацию строк на StringBuilder,
PC_>это уже профит в несколько раз ...
Я тоже не билдером строки складываю

PC_>Резюме:

PC_>Получается решение слило многократно по краткости
PC_>Слило потенциально по скорости работы
Только если потенциально, потому как я предлагал мериться на задаче размещений. Временная сложность для задачи о размещении у твоего решения значительно выше.

PC_>Со скипом еще есть оговорки.

PC_>Поскольку ф шарп завис гдето между и между.
PC_>Решение откровенно плохое по сравнению с Си,
Ты так и не привел решение на СИ, которое бы генерило размещения с середины. Пока не приведешь хотя бы ссылку, не вспоминай о нем.
PC_>и несколько лучше чем фильтр в конце, как было предложено в РС ...
Оно хуже алгоритмически, потому не интересно. Кстати, можешь теперь говорить не "в РС", а "мной", потому как Егор предложил решение на уровне предложенного мной.
Re[101]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 27.12.10 13:00
Оценка: :)
Здравствуйте, samius, Вы писали:

Ну вот и чудно. Тему с паролями можно закрыть.
особенно после оптимизации на первом переборщике.

Относительно задачи на счет размещений, предлагаю приостоновить свободное плаванье
по сферическим примерам и занятся собственно делом. А именно обсудить регекспы,
всетаки хочется пойти попинать Немерлистов слепо верящих в возможности метапрограммирования
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[101]: Ультракороткий язык программирования RS
От: samius Япония http://sams-tricks.blogspot.com
Дата: 27.12.10 13:02
Оценка:
Здравствуйте, PC_2, Вы писали:

PC_>Кстате на счет скипа.

PC_>Егор тут правильно заметил, что разница между 18 секундами и 8 секундами скорей всего заключается в самом внутреннем итераторе.

PC_>Так вот в РС это тоже сделать черезвычайно просто


PC_>если например у нас генерация паролей с aaaaa до zzzzz,

PC_>и в переведущий раз мы прошли от ааааа до скажем ххххх.

PC_>То первый переборщик мы можем инициировать смело по алфавиту х-z

А второй чем?

PC_>и получим двадцатикратный прирост производительности.

инициировать-то можно. Запиши это
PC_>Собственно где и скрыта та самая итерация по всего одному итератору
Ты о чем? Там дерево итераторов, если чо

PC_>Все, Ф Шарп раскусили, у него профитов не осталось в этом примере

Его профиты в комбинировании
Re[102]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 27.12.10 13:03
Оценка:
Здравствуйте, samius, Вы писали:

PC_>>То первый переборщик мы можем инициировать смело по алфавиту х-z

S>А второй чем?

второй по алфавиту

PC_>>и получим двадцатикратный прирост производительности.

S>инициировать-то можно. Запиши это

смотри выше примеры
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[102]: Ультракороткий язык программирования RS
От: samius Япония http://sams-tricks.blogspot.com
Дата: 27.12.10 13:03
Оценка:
Здравствуйте, PC_2, Вы писали:

PC_>Код для примера выше, с пропуском лишних комбинаций



PC_>
PC_>!y = 'x'..'z' //первый переборщик итерируем только на остатке
PC_>!x='a'..'f'   //остальные разряды идут по полному алфавиту
PC_>i<3?a+='+x'+i
PC_>^('s,=y' + a)
PC_>

Чего это за хрень? Продолжи с номера 42 что ли
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.