Re[92]: Ультракороткий язык программирования RS
От: Erop Россия  
Дата: 28.12.10 04:50
Оценка:
Здравствуйте, samius, Вы писали:

S>Ну что, не согласен что создание по цепочке будет проще восприниматься? Да и никакие угадывалки не надо писать на основе анализаторов булевских выражений. Берем за основу предыдущий набор значений, и по нему достраиваем. В задаче размещений — фильтруем, где-то еще — добавляем


Не согласен. Эта операция заточена ровно на одну задачу. Так неправильно делать.
Кроме того, такие простые модификации не сложно и из формул вытащить...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[107]: Ультракороткий язык программирования RS
От: Erop Россия  
Дата: 28.12.10 04:54
Оценка:
Здравствуйте, samius, Вы писали:

PC_>>Помойму первое даже лучше для понимания чем цифра.

S>С первым — ты увеличил стоимость решения задачи.
Почему? Какая разница хранить пароль или номер?

S>Если я тебе дам генерировать столько паролей, что в памяти не поместится?

S>Между прочим, F# генерирует указанный пароль 10из30, притом что оперативка кончается даже на всех паролях 5из30.

Зачем хранить все пароли, чтобы их фильтровать?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[109]: Ультракороткий язык программирования RS
От: Erop Россия  
Дата: 28.12.10 05:08
Оценка:
Здравствуйте, samius, Вы писали:

S>Да, а потом посмотрим, может ли его решение без изменений продолжать с любого номера


С любого номера продолжать неудобно, да и дорого. Надо сами номера считать, а потом от номера к позициям счётчика перейти...
А если ты о коде, который будет продолжать с любого места, то его не сильно сложнее написать, чем с abcde...
А в некотором смысле, даже проще
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[118]: Ультракороткий язык программирования RS
От: Erop Россия  
Дата: 28.12.10 05:17
Оценка:
Здравствуйте, samius, Вы писали:


S>Затем что ты там что-то лепил о гибких решениях, которые не должны меняться от легких изменений условий.

S>Потом бодал меня по сложности и т.п. И я тебе показал что решение на F# делать умеет, а твое — нет.

Не понятно, зачем вообще уметь нумеровать варианты любого переборщика. А вдруг он умеет сразу пачками варианты перебирать как-то? Или порядок перебора выбирает в зависимости от доступной на момент выполнения памяти/числа голов/другой аппаратуры и т. д.?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[66]: Ультракороткий язык программирования RS
От: Erop Россия  
Дата: 28.12.10 05:18
Оценка:
Здравствуйте, ambel-vlad, Вы писали:

AV>За какой объем? Ты ж говорил, что на твоем языке все пишется за десятки секунд.


Ха, там сначала надо вики долго курить и перечисленные алгоритмы заботать...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[98]: Ультракороткий язык программирования RS
От: samius Япония http://sams-tricks.blogspot.com
Дата: 28.12.10 05:58
Оценка:
Здравствуйте, Erop, Вы писали:

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


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


E>Не ссорьтесь, горячие финские парни! Тем более из-за ерунды.

E>Я так думаю, что 30^5 от 30*29*28*27*26 отличается процентов на 20...
На 42
E>Так что в качестве оценки 30^5 очень даже ничего...
А 30^20 — уже чего...
Re[104]: Ультракороткий язык программирования RS
От: samius Япония http://sams-tricks.blogspot.com
Дата: 28.12.10 06:04
Оценка:
Здравствуйте, Erop, Вы писали:

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


S>>Чего это за хрень? Продолжи с номера 42 что ли


E>Я вот не пойму, зачем вообще по номерам позиционироваться? Начать с заданной строки НАМНОГО ПРОЩЕ...


Во-первых это было в условии, если что...
А во-вторых — не намного и проще-то. Зайти в нужную ветку дерева итераций можно как по буквам, так и по номеру (остаток от деления номера на число решений (K-1) даст номер внешнего цикла, и т.п.). Если же ты о лексикографическом сравнении сгенерированных паролей с сохраненной строкой — то это таки не то.
Re[93]: Ультракороткий язык программирования RS
От: samius Япония http://sams-tricks.blogspot.com
Дата: 28.12.10 06:08
Оценка: :)
Здравствуйте, Erop, Вы писали:

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


S>>Ну что, не согласен что создание по цепочке будет проще восприниматься? Да и никакие угадывалки не надо писать на основе анализаторов булевских выражений. Берем за основу предыдущий набор значений, и по нему достраиваем. В задаче размещений — фильтруем, где-то еще — добавляем


E>Не согласен. Эта операция заточена ровно на одну задачу. Так неправильно делать.

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

E>Кроме того, такие простые модификации не сложно и из формул вытащить...

А со сложными как быть? Отложить до РС-4?
Re[108]: Ультракороткий язык программирования RS
От: samius Япония http://sams-tricks.blogspot.com
Дата: 28.12.10 06:29
Оценка:
Здравствуйте, Erop, Вы писали:

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


PC_>>>Помойму первое даже лучше для понимания чем цифра.

S>>С первым — ты увеличил стоимость решения задачи.
E>Почему? Какая разница хранить пароль или номер?
Никакой, если по сохраненному заходить в дерево итераций.
Никакой, если фильтровать пароли от нуля.
Но разница есть между входом в любое место дерева и фильтрацией всех паролей.

S>>Если я тебе дам генерировать столько паролей, что в памяти не поместится?

S>>Между прочим, F# генерирует указанный пароль 10из30, притом что оперативка кончается даже на всех паролях 5из30.

E>Зачем хранить все пароли, чтобы их фильтровать?


В общем случае — незачем.
Но элементарная логика декомпозиции задач генерации перестановок и фильтрации намекает на то что должны быть отдельные решения для перестановок и фильтрации, и что если их соединить, получится алгоритм поиска размещений. Это нормальная практика — комбинировать решения. Ты же вместе с ТС предлагаешь для решения задачи размещений создать решение для перестановок, извратить его фильтрацией, а для задачи получения перестановок (которую возможно нужно будет решать) использовать другой код. Это негибко. Я к этому не привык. Я привык к декомпозиции решений. Ну и зарапортовался малость.
Красиво поступил Владимир — использовал функции высшего порядка, решив одновременно несколько задач.

Есть еще один ответ на твой вопрос. Все пароли фильтровать можно эффективнее. Но это все равно хуже, чем не получать ненужные.
Re[110]: Ультракороткий язык программирования RS
От: samius Япония http://sams-tricks.blogspot.com
Дата: 28.12.10 06:37
Оценка:
Здравствуйте, Erop, Вы писали:

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


S>>Да, а потом посмотрим, может ли его решение без изменений продолжать с любого номера


E>С любого номера продолжать неудобно, да и дорого. Надо сами номера считать, а потом от номера к позициям счётчика перейти...

Чего там считать? Деление с остатком? Ну не знаю. Не такое уж оно и дорогое, что бы на нем экономить.
Я не вижу разницы.

E>А если ты о коде, который будет продолжать с любого места, то его не сильно сложнее написать, чем с abcde...

E>А в некотором смысле, даже проще

Напишешь?
Re[119]: Ультракороткий язык программирования RS
От: samius Япония http://sams-tricks.blogspot.com
Дата: 28.12.10 06:38
Оценка:
Здравствуйте, Erop, Вы писали:

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



S>>Затем что ты там что-то лепил о гибких решениях, которые не должны меняться от легких изменений условий.

S>>Потом бодал меня по сложности и т.п. И я тебе показал что решение на F# делать умеет, а твое — нет.

E>Не понятно, зачем вообще уметь нумеровать варианты любого переборщика.

Для Paging-а хотя бы
Re[56]: Ультракороткий язык программирования RS
От: Mamut Швеция http://dmitriid.com
Дата: 28.12.10 06:41
Оценка:
M>>Вы явно клоны.
E>Долго думал над этой версией?
E>Как ты думаешь, кто из пользователей фейковый?

M>>Твои сообщения получают положительные оценки и конструктивное общение от PC_2, содержащие такие же умные слова от меня, samius'а и владимира кочеткова — швыряние какашками


E>Да? Объясни, что было конструктивного в твоём сообщении о том, что для того, чтобы ввести в язык RND PC_2 понадобилось её как-то назвать?


Вы явно клоны. Перчитай внимательно мое сообщение. Там говорится о том, что PC_2 обсирает другие языки, в частности, из-за того, что там много встроенных функций, в ответ на что я говорю что? Иди читай


dmitriid.comGitHubLinkedIn
Re[8]: Ультракороткий язык программирования RS
От: Mamut Швеция http://dmitriid.com
Дата: 28.12.10 07:27
Оценка:
PC_>Мде, прикольная игрушка, например вот так получился конвертор с десятичной системы в двоичную

PC_>
PC_>!x='0','1'
PC_>i<5?a+='+x'+i
PC_>^('s,=' + a)
PC_>s.8 //получили двоичное число для 8
PC_>


PC_>а вот так получился конвертор с десятичной системы в шестнадцетиричную


PC_>
PC_>!x='0'..'9', 'a'..'f'
PC_>i<3?a+='+x'+i
PC_>^('s,=' + a)
PC_>s.500 //вывели 1f4
PC_>


Зачем тут нужен eval? Я правильно понимаю, что приведенный код эквивалентен циклу до 500 с вычислением значения? ТОгда что в этой штуке прикольного?


dmitriid.comGitHubLinkedIn
Re[80]: Ультракороткий язык программирования RS
От: Erop Россия  
Дата: 28.12.10 07:40
Оценка:
Здравствуйте, ambel-vlad, Вы писали:

AV>Так что там с окончательным решением задачки? Можешь не обращать внимание на то, что индексы у нас начинаются с 1, а у тебя с 0. Это не существенно.


Я так тебя понял, что ты просишь описать переборщик каких-то частичных сумм в двумерном массиве. Только я не понял, каких именно...
Если список сумм по первой/второй координате, то это вообще не проблема, однако. Что-то типа

x.I.J\J\+

Но ты хочешь какую-то другую сумму. Только я не понял, зачем ты хочешь её от ТС. Сам, что ли не можешь записать?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[109]: Ультракороткий язык программирования RS
От: Erop Россия  
Дата: 28.12.10 07:50
Оценка:
Здравствуйте, samius, Вы писали:

S>Но разница есть между входом в любое место дерева и фильтрацией всех паролей.

Тоже нет.
Вообще, для твоей задачи -- остановить/продолжить перебор -- уметь считать итерации не надо.

S>Но элементарная логика декомпозиции задач генерации перестановок и фильтрации намекает на то что должны быть отдельные решения для перестановок и фильтрации, и что если их соединить, получится алгоритм поиска размещений. Это нормальная практика — комбинировать решения. Ты же вместе с ТС предлагаешь для решения задачи размещений создать решение для перестановок, извратить его фильтрацией, а для задачи получения перестановок (которую возможно нужно будет решать) использовать другой код. Это негибко. Я к этому не привык. Я привык к декомпозиции решений. Ну и зарапортовался малость.


Про другой код не понимаю. Тебя всё время сносит на обсуждение каких-то процедурных аспектов перебора. В частности вопрос "а в каком порядке вы перебираете" -- он очень процедурный, однако. На самом деле УДОБНОЙ конструкции, чтобы задать такой вопрос в RS сейчас нет. Насколько я понимаю задумку PC_2 в окончательной версии будет можно сказать что-то типа "перебирай параллельно пары чисел и строк, пока не встретишь строку, которой соответствует 1000000"
S>Красиво поступил Владимир — использовал функции высшего порядка, решив одновременно несколько задач.
У него получилась всё та же фильтрация в последнем итераторе...

S>Есть еще один ответ на твой вопрос. Все пароли фильтровать можно эффективнее. Но это все равно хуже, чем не получать ненужные.

Это я тоже не понимаю.

Вот научиться писать что-то вроде "перебирай пароли о сих до сих" -- это прикольно. Это тоже сейчас в RS не особо хорошо получается. И тоже, опять, хочется сказать, что-то типа того, что столько-то пропускаем, а потом столько-то крутим. При этом это "сколько" определяется одним переборщиком, а пропускают в другом, перебирающим, как бы параллельно.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[81]: Ультракороткий язык программирования RS
От: ambel-vlad Беларусь  
Дата: 28.12.10 07:56
Оценка:
Здравствуйте, Erop, Вы писали:

AV>>Так что там с окончательным решением задачки? Можешь не обращать внимание на то, что индексы у нас начинаются с 1, а у тебя с 0. Это не существенно.


E>Я так тебя понял, что ты просишь описать переборщик каких-то частичных сумм в двумерном массиве. Только я не понял, каких именно...

E>Если список сумм по первой/второй координате, то это вообще не проблема, однако. Что-то типа

E>x.I.J\J\+


E>Но ты хочешь какую-то другую сумму. Только я не понял, зачем ты хочешь её от ТС. Сам, что ли не можешь записать?


Вот условие Re[60]: Ультракороткий язык программирования RS
Автор: ambel-vlad
Дата: 24.12.10


Вот решение — Re[78]: Ультракороткий язык программирования RS
Автор: ambel-vlad
Дата: 27.12.10


Пусть тебя не смущает, что индексы считаются с 1. Это несущественный момент. Если захочешь, то внесу изменения для того, чтобы индексы считались с 0.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[111]: Ультракороткий язык программирования RS
От: Erop Россия  
Дата: 28.12.10 07:56
Оценка:
Здравствуйте, samius, Вы писали:

S>Напишешь?

Зачем? Ты что не знаешь, как это сделать? Я могу подсказать идею.
Типа пишешь объект, который имеет в себе текущую букву и множество, которое она может пробежать.
Делаешь ему функцию или конструктор, который даёт такой же объект, но с профильтрованным множеством поиска и установленный в самую первую доступную букву. Ну как-то так.
Ну делаешь массив таких, по цепочке созданных объектов, и потом дёргаешь у них Next() алгоритмом "счётчик"...
Соответственно, для старта с конкретной строки, надо просто сразу по ней вектор счётчиков родить и всё. Даже стартовые значения букв искать не надо

Давай я напишу, но оставлю там две ошибки, а ты отладишь потом?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[120]: Ультракороткий язык программирования RS
От: Erop Россия  
Дата: 28.12.10 07:57
Оценка:
Здравствуйте, samius, Вы писали:

E>>Не понятно, зачем вообще уметь нумеровать варианты любого переборщика.

S>Для Paging-а хотя бы

Пока не понял о чём ты?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[110]: Ультракороткий язык программирования RS
От: samius Япония http://sams-tricks.blogspot.com
Дата: 28.12.10 08:02
Оценка:
Здравствуйте, Erop, Вы писали:

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


S>>Но разница есть между входом в любое место дерева и фильтрацией всех паролей.

E>Тоже нет.
E>Вообще, для твоей задачи -- остановить/продолжить перебор -- уметь считать итерации не надо.
Paging — постраничный вывод значений. Сгенерить сзначения для страницы X.

S>>Но элементарная логика декомпозиции задач генерации перестановок и фильтрации намекает на то что должны быть отдельные решения для перестановок и фильтрации, и что если их соединить, получится алгоритм поиска размещений. Это нормальная практика — комбинировать решения. Ты же вместе с ТС предлагаешь для решения задачи размещений создать решение для перестановок, извратить его фильтрацией, а для задачи получения перестановок (которую возможно нужно будет решать) использовать другой код. Это негибко. Я к этому не привык. Я привык к декомпозиции решений. Ну и зарапортовался малость.


E>Про другой код не понимаю. Тебя всё время сносит на обсуждение каких-то процедурных аспектов перебора. В частности вопрос "а в каком порядке вы перебираете" -- он очень процедурный, однако. На самом деле УДОБНОЙ конструкции, чтобы задать такой вопрос в RS сейчас нет. Насколько я понимаю задумку PC_2 в окончательной версии будет можно сказать что-то типа "перебирай параллельно пары чисел и строк, пока не встретишь строку, которой соответствует 1000000"

Туманно
S>>Красиво поступил Владимир — использовал функции высшего порядка, решив одновременно несколько задач.
E>У него получилась всё та же фильтрация в последнем итераторе...
У него в алгоритме фильтрации нет. Она навесная, а алгоритм универсальный. В РС нет такой возможности комбинировать алгоритмы.

S>>Есть еще один ответ на твой вопрос. Все пароли фильтровать можно эффективнее. Но это все равно хуже, чем не получать ненужные.

E>Это я тоже не понимаю.
Что именно из этого?

E>Вот научиться писать что-то вроде "перебирай пароли о сих до сих" -- это прикольно. Это тоже сейчас в RS не особо хорошо получается. И тоже, опять, хочется сказать, что-то типа того, что столько-то пропускаем, а потом столько-то крутим. При этом это "сколько" определяется одним переборщиком, а пропускают в другом, перебирающим, как бы параллельно.

Ты о Paging?
Re[112]: Ультракороткий язык программирования RS
От: samius Япония http://sams-tricks.blogspot.com
Дата: 28.12.10 08:07
Оценка:
Здравствуйте, Erop, Вы писали:

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


S>>Напишешь?

E>Зачем? Ты что не знаешь, как это сделать? Я могу подсказать идею.
E>Типа пишешь объект, который имеет в себе текущую букву и множество, которое она может пробежать.
E>Делаешь ему функцию или конструктор, который даёт такой же объект, но с профильтрованным множеством поиска и установленный в самую первую доступную букву. Ну как-то так.
Хм. На C/F# я справлюсь, не сомневайся. И без объектов даже.
Я предлагал написать тебе такое на РС, но ты видимо о чем-то другом, раз про объекты и конструкторы

E>Давай я напишу, но оставлю там две ошибки, а ты отладишь потом?

Напиши на РС
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.