Re[106]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 05.01.11 23:35
Оценка:
Здравствуйте, samius, Вы писали:

S>Примечательно что ТС решил что задача получения размещений с повторами 5 из 10 (миллиона штук паролей) эквивалентна по сложности и представил свое время — 45 сек. Хотя с этими же условиями на F# — 1/3 секунды.


Оть ыть как бывает. Уже на ФШарпе 1/3 секунды.
А вот здесь пациент
Автор: samius
Дата: 27.12.10
утверждал что 1.5 минуты,
Там у пациента только скип работал 45 секунд. Оправдывался несовершенством своего настольного железа.

Показания меняются ото дня ко дню
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[107]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 05.01.11 23:41
Оценка:
Здравствуйте, PC_2, Вы писали:

Как бы там не было, давайте финализируем условия этой задачи на.
"Генерить все пароли начиная с позиции ССССА с неповторяющимися символами. Все сгенерированые пароли сложить в массив".

Здесь и всех циплят пересчитаем в том числе и по навязаному мне перформанцу
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[108]: Ультракороткий язык программирования RS
От: Пацак Россия  
Дата: 06.01.11 02:37
Оценка: +1
Здравствуйте, PC_2, Вы писали:

PC_>Как бы там не было, давайте финализируем условия этой задачи на.

PC_>"Генерить все пароли начиная с позиции ССССА с неповторяющимися символами.".

Куда половину задачи откусил? Будь добр придерживаться изначального плана.

Генерить первый миллион паролей, начиная с позиции ССССА с неповторяющимися символами.


PC_>Все сгенерированые пароли сложить в массив


У тебя ж массивы на печать не выводятся, как доказывать будешь, что твоя прога работает — опять в дебаг лезть заставишь?
Ку...
Re[107]: Ультракороткий язык программирования RS
От: samius Япония http://sams-tricks.blogspot.com
Дата: 06.01.11 04:41
Оценка:
Здравствуйте, Пацак, Вы писали:

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


П>Хм... Непонятки...


П>Непонятка 1: Я правильно понял, что исходная задача — это сгенерить первые миллион пятисимвольных паролей, в каждом из которых нет повторяющихся символов? Т.е. нечто типа такого?


П>
П>abcdef
П>abcdeg
П>

Это не то что бы исходная задача, но именно та задача о которой я выкладывал замеры времени работы.

П>Непонятка 2: Я правильно понял, что вместо этого автор выложил такой результат?


П>
П>aaaaa
П>aaaab
П>

Результат он не выложил, но выложил замер работы кода, приводящий к подобному результату с той лишь разницей что в качестве алфавита были использованы цифры.
П>Если да, то:
П>1) насколько я понимаю, эти вычисления действительно могут выполняться примерно одинаковое время — если, конечно, не решать задачу "в лоб", поэлементно проверяя уже сгенеренную последовательность
Да, верно. Но как раз ТС предлагает проверять последовательность "в лоб"....

П>2) количество символов в исходном словаре и длина паролей для нее, по идее, тоже не должны оказывать серьезного влияния на время расчета — только количество паролей, которые нужно сгенерить

В общем случае — верно. Но в задаче 6 из 10 с повторами нет миллиона паролей без повторов.
Да и как бы наличие повторов сильно сказывается на времени, если фильтровать "в лоб".

П>и 3) добиться того, чтобы эти задачи выполнялись 45 секунд на авторском супер-пупер-восьмиядерном компьютере — это, блин, надо постараться. Впрочем, от программы с eval'ом ничего другого ждать имхо не приходится...

фиг с ними с 45-ю секундами. Неплохо для интерпретатора без оптимизаций, да и число ядер не играет роли в однопоточной версии. Евал накладных расходов не дает, т.к. выполняется тем же интерпретатором, что и основной код.
А беспокоит меня то, что ТС отказывается предоставлять нефильтрующее решение генератора без повторов. Дело либо в том что язык не позволяет, либо в том что нефильтрующее решение будет много длинее, чем фильтрующее.

Да, а кстати, если к кол-ву символов решения автора приплюсовать код оператора "тильда
Автор: PC_2
Дата: 04.01.11
", то решение на РС выигрывает не так много по кол-ву символов
РС — 90
F# — 97



let d=List.append
let f=List.filter
let o=printfn "%A"

let rec z a=function 0->[[]]|k->[for x in a do for r in z(f((<>)x)a)(k-1)->d[x]r]
z['1'..'9']3|>o


Первые 3 строчки не считаем, т.к. это подмена идентификаторов методов на однобуквенные. Считаем что мы внесли их в язык
Re[108]: Ультракороткий язык программирования RS
От: samius Япония http://sams-tricks.blogspot.com
Дата: 06.01.11 04:42
Оценка:
Здравствуйте, Пацак, Вы писали:

П>Здравствуйте, Пацак, Вы писали:


П>>и 3) добиться того, чтобы эти задачи выполнялись 45 секунд на авторском супер-пупер-восьмиядерном компьютере — это, блин, надо постараться. Впрочем, от программы с eval'ом ничего другого ждать имхо не приходится...


П>Хотя... Если все пароли выводить на экран... Я-то вывод в файл перенаправлял, а вот как вы с автором — не знаю.

У него нет вывода результата евала. Я его вживую не видел.
Re[107]: Ультракороткий язык программирования RS
От: samius Япония http://sams-tricks.blogspot.com
Дата: 06.01.11 05:06
Оценка: 1 (1)
Здравствуйте, PC_2, Вы писали:

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


S>>Примечательно что ТС решил что задача получения размещений с повторами 5 из 10 (миллиона штук паролей) эквивалентна по сложности и представил свое время — 45 сек. Хотя с этими же условиями на F# — 1/3 секунды.


PC_>Оть ыть как бывает. Уже на ФШарпе 1/3 секунды.

PC_>А вот здесь пациент
Автор: samius
Дата: 27.12.10
утверждал что 1.5 минуты,

PC_>Там у пациента только скип работал 45 секунд. Оправдывался несовершенством своего настольного железа.

PC_>Показания меняются ото дня ко дню

Мне простительно — запутался в десятках рабочих версий

Ленивая версия вычисляет первый миллион паролей без повторов длиной 6 из 30 за 18 сек.
Но ты не расслабляйся, т.к. среди всех паролей 6 из 10 лишь 151200 паролей без повторов. Что бы набрать миллион без повторов, тебе нужно зайти по 6 с алфавитом не менее 13 символов, либо по 8 из 10...
Re[108]: Ультракороткий язык программирования RS
От: samius Япония http://sams-tricks.blogspot.com
Дата: 06.01.11 05:10
Оценка:
Здравствуйте, PC_2, Вы писали:

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


PC_>Как бы там не было, давайте финализируем условия этой задачи на.

PC_>"Генерить все пароли начиная с позиции ССССА с неповторяющимися символами. Все сгенерированые пароли сложить в массив".

PC_>Здесь и всех циплят пересчитаем в том числе и по навязаному мне перформанцу


Справься сначала с предыдущими задачами
Re[108]: Ультракороткий язык программирования RS
От: samius Япония http://sams-tricks.blogspot.com
Дата: 06.01.11 06:08
Оценка: +1 :)
Здравствуйте, samius, Вы писали:

S>
S>let d=List.append
S>let f=List.filter
S>let o=printfn "%A"

S>let rec z a=function 0->[[]]|k->[for x in a do for r in z(f((<>)x)a)(k-1)->d[x]r]
S>z['1'..'9']3|>o
S>


S>Первые 3 строчки не считаем, т.к. это подмена идентификаторов методов на однобуквенные. Считаем что мы внесли их в язык


Еще подрасширил F#, введя односимвольные алиасы для следующих функций
let e x = List.filter ((<>)x) // except
let c = List.collect
let m = List.map
let i x = List.append [x]     // cons x
let o = printfn "%A"
let ($) = (<|)


let rec z a=function 0->[[]]|k->c(fun x->m(i x)(z(e x a)(k-1)))a
o$z['1'..'9']3

Теперь все решение можно записать в 79 символов, включая '\n'.
Re[109]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 06.01.11 11:47
Оценка:
позже отпишу. Я там писал что свою прогу сжать еще в полтора раза легко
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[100]: Ультракороткий язык программирования RS
От: samius Япония http://sams-tricks.blogspot.com
Дата: 07.01.11 11:20
Оценка: 2 (1) +1 :))) :)
Здравствуйте, PC_2, Вы писали:

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


PC_>Сеня Браво ! Это талант !

PC_>Я так проникся твоими рассуждениями что чуть не прослезился и решительно решил завтра выложить тебе
PC_>рабочую версию
Ну дык что, Пуся? Почти 36 часов прошло... Проблемы с решительностью или с рабочей версией?

PC_>ЗЫ:

PC_>Да кстате вотети все ,х1 и прочьи это унарный оператор.
Сразу как-то не бросилось в глаза... Унарный оператор запятая — это прорыв! Страуструп глотает пыль!

PC_>И ежели унарный не определен для этого типа токена, то возвращается просто х1

Тоже отличное решение
+*-/%\..=/===,=+=><>=<=/==|../^,,,-1...<><><>^^^(((5

Возвращает

1,2,3,4,5

Видимо это задел для совмещения программирования с ASCII артом?

А что с пустым списком-то?
Re[101]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 07.01.11 12:08
Оценка: :)
Здравствуйте, samius, Вы писали:

Проблема в том что я завис в соседнем топике про ОСь,
но ты не расслабляй булки я скоро вернусь !
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re: Ультракороткий язык программирования RS
От: olexandr Новороссия http://demotivation.me/images/20140818/lxz0l278b9ep.jpg
Дата: 07.01.11 23:11
Оценка:
Народ, а как вы думаете, кто это нас так <strike>троллит</strike>смешит? Я уверен на 95% что кто-то из старожилов.

Кстати, Mamut и иже с ним, не надо портить шутку своими поисками правды!
Некроссплатформенность маловероятна (c) Sheridan
...трава никак не влияет, разве что срывает покровы барьеров... (с) мыщъх
Re[2]: Ультракороткий язык программирования RS
От: novitk США  
Дата: 07.01.11 23:53
Оценка:
Здравствуйте, olexandr, Вы писали:

O>Народ, а как вы думаете, кто это нас так <strike>троллит</strike>смешит? Я уверен на 95% что кто-то из старожилов.


Сам сначала подумал, что это IT прикалывается, но после стольких усилий PC_2 — не верю.
Re[3]: Ультракороткий язык программирования RS
От: olexandr Новороссия http://demotivation.me/images/20140818/lxz0l278b9ep.jpg
Дата: 08.01.11 00:17
Оценка:
Здравствуйте, novitk, Вы писали:

O>>Народ, а как вы думаете, кто это нас так <strike>троллит</strike>смешит? Я уверен на 95% что кто-то из старожилов.

N>Сам сначала подумал, что это IT прикалывается, но после стольких усилий PC_2 — не верю.

Возможно какой-нибудь скучающий сисадмин, или даже безопасник? И шо там тех усилий на форуме флудить и гаденько хихикать потирая рученки и представляя как бесятся некоторые местные глыбы пытаясь удержаться в русле беседы
Тем более главный прием реализации насколько я успел понять состоит в публикации заклинаний в стиле "там работы на час максимум, поэтому я делать ее не буду, писать надо будет както так, и вообще напишите мне генератор пароле на немерле, только чтоб пароли начинались с ССССА, а по пятницам были не длинее 4 символов".
Некроссплатформенность маловероятна (c) Sheridan
...трава никак не влияет, разве что срывает покровы барьеров... (с) мыщъх
Re[109]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 06.02.11 18:16
Оценка: :))
Так наконец меня разбанили. Я пока тут на лыжном курорте зависаю, буду по возможности отвечать с мобилы.
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[108]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 15.02.11 15:02
Оценка:
Здравствуйте, samius, Вы писали:

S>let rec z a=function 0->[]]|k->[for x in a do for r in z(f((<>)x)a)(k-1)->d[x]r]

S>z['1'..'9']3|>o
S>[/ocaml]

Ты можешь внятно описать задачу которую ты здесь решал ?
Опять идет подмена понятий как с тем перлистом.

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

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


S>>let rec z a=function 0->[]]|k->[for x in a do for r in z(f((<>)x)a)(k-1)->d[x]r]

S>>z['1'..'9']3|>o
S>>[/ocaml]

PC_>Ты можешь внятно описать задачу которую ты здесь решал ?

Не уверен, что получится достаточно внятно для тебя, но попробую:
Процитированный код выводит все размещения по 3 без повторов набора '1'..'9'

PC_>Опять идет подмена понятий как с тем перлистом.


PC_>Еще раз — выпиши четко по пунктам условие задачи которую нужно решить.

Эту задачу выдумал ты, если мне не изменяет память (перечитывать ветку что бы в этом убедиться у меня нет ни малейшего желания), что бы продемонстрировать гибкость РС. Речь шла о паролях.
Так что и флаг тебе...
Re[110]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 17.02.11 14:25
Оценка:
Здравствуйте, samius, Вы писали:

PC_>>Ты можешь внятно описать задачу которую ты здесь решал ?

S>Не уверен, что получится достаточно внятно для тебя, но попробую:
S>Процитированный код выводит все размещения по 3 без повторов набора '1'..'9'

давай точнее
тоесть это последовательность паролей
xyz
где х,y,z принимают любые значения от 1 до 9 и при этом х y z не равны друг между друга ?
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[111]: Ультракороткий язык программирования RS
От: samius Япония http://sams-tricks.blogspot.com
Дата: 17.02.11 15:03
Оценка:
Здравствуйте, PC_2, Вы писали:

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


PC_>>>Ты можешь внятно описать задачу которую ты здесь решал ?

S>>Не уверен, что получится достаточно внятно для тебя, но попробую:
S>>Процитированный код выводит все размещения по 3 без повторов набора '1'..'9'

PC_>давай точнее

PC_>тоесть это последовательность паролей
Последовательность взевозможных паролей.

PC_>xyz

PC_>где х,y,z принимают любые значения от 1 до 9 и при этом х y z не равны друг между друга ?
в рамках одного набора

так будет довольно точно
Re[112]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 17.02.11 15:35
Оценка: :)
Здравствуйте, samius, Вы писали:

И на таком простом примере ты посмел усомниться в мощи РС ?


!x='1'..'9'
i<4?a+=',x'+i
^(a+'\!?'+a)


36 символов
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.