Автор |
Сообщение |
|
|
Заголовок сообщения: |
|
|
|
Кварк - уникален...
Кварк - уникален... :))
|
|
|
|
Добавлено: Вс янв 27, 2008 01:31 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
mOleg писал(а): читаем правила Цитата: 7) обязательно указание на форт-систему, для которой написан код; версию системы. В случае уникальности форт-системы обязательна прямая ссылка, по которой она может быть найдена.
Quark http://www.msyst.ru/quarkexe.zip
[quote="mOleg"]читаем правила[/quote]
[quote] 7) обязательно указание на форт-систему, для которой написан код; версию системы. В случае уникальности форт-системы обязательна прямая ссылка, по которой она может быть найдена. [/quote]
Quark [url]http://www.msyst.ru/quarkexe.zip[/url]
|
|
|
|
Добавлено: Вс янв 27, 2008 01:27 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
garbler писал(а): просто я обычно коротким условием обрываю код сразу, чтобы не мешался, не люблю глубокую вложенность структур управления, так что, вот он и второй "шаблон"..... абсолютно правильное решение! я тоже так всегда делаю. white_TigR писал(а): угу. Кварк ) Просто он как то ближе мне...
читаем правила
[quote="garbler"]просто я обычно коротким условием обрываю код сразу, чтобы не мешался, не люблю глубокую вложенность структур управления, так что, вот он и второй "шаблон".....[/quote] абсолютно правильное решение! 8) я тоже так всегда делаю.
[quote="white_TigR"]угу. Кварк ) Просто он как то ближе мне...[/quote]
читаем [url=http://fforum.winglion.ru/viewtopic.php?t=719]правила[/url] 8)
|
|
|
|
Добавлено: Сб янв 26, 2008 13:17 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
угу. Кварк ) Просто он как то ближе мне...
угу. Кварк :))) Просто он как то ближе мне...
|
|
|
|
Добавлено: Сб янв 26, 2008 00:47 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
mOleg писал(а): прошу прощения, для какой системы данное решение? если для СПФ, то не хватает какой-то либы 8( garbler писал(а): а что это за система - надо тигру спрашивать
Это же Кварк.
[quote="mOleg"]прошу прощения, для какой системы данное решение? если для СПФ, то не хватает какой-то либы 8([/quote] [quote="garbler"]а что это за система - надо тигру спрашивать[/quote]
Это же Кварк.
|
|
|
|
Добавлено: Пт янв 25, 2008 11:42 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
mOleg писал(а): garbler писал(а): DUP 0 = IF 2DROP 0 EXIT THEN на самом деле по мелочи, просто бросилось в глаза, лучше так: DUP IFNOT NIP NIP EXIT THEN либо, если ifnot в системе отсутствует: DUP IF ELSE NIP NIP EXIT THEN потому что флаги в форте дважды проявлять не стоит вопрос не принципиальный на самом деле, не считайте за замечание, а скорее за примечание
ммм.... это не совсем флаг был, скорее длинна строки, поэтому я так "шаблонно"
и написал. да, думаю, замена адекватная, как вариант ещё так можно:
Код: ?DUP IF .... ELSE 0 AND THEN ( или 0 NIP или DROP 0 )
просто я обычно коротким условием обрываю код сразу, чтобы не мешался, не люблю глубокую вложенность структур управления, так что, вот он и второй "шаблон"..... если говорить о флагах, то тогда лучше ещё и cnotfind переписать с применением TRUE и FALSE Код: : (cnotfind) ( c s2 s1 --> t/f ) TRUE -ROT ?DO OVER I C@ = IF FALSE AND LEAVE THEN LOOP NIP ;
p.s. 2all: кстати, очень рекомендую книгу
А.Шень "Программирование. Теоремы и задачи"
изумительная вещь!
p.p.s. код со всеми правками здесь
[quote="mOleg"] [quote="garbler"] DUP 0 = IF 2DROP 0 EXIT THEN[/quote]
на самом деле по мелочи, просто бросилось в глаза, лучше так: DUP IFNOT NIP NIP EXIT THEN
либо, если ifnot в системе отсутствует: DUP IF ELSE NIP NIP EXIT THEN
потому что [url=http://fforum.winglion.ru/viewtopic.php?p=12119#12119]флаги в форте[/url] дважды проявлять не стоит 8)
вопрос не принципиальный на самом деле, не считайте за замечание, а скорее за примечание ;)[/quote]
ммм.... это не совсем флаг был, скорее длинна строки, поэтому я так "шаблонно"
и написал. да, думаю, замена адекватная, как вариант ещё так можно:
[code] ?DUP IF .... ELSE 0 AND THEN ( или 0 NIP или DROP 0 ) [/code]
просто я обычно коротким условием обрываю код сразу, чтобы не мешался, не люблю глубокую вложенность структур управления, так что, вот он и второй "шаблон".....
если говорить о флагах, то тогда лучше ещё и cnotfind переписать с применением TRUE и FALSE
[code] : (cnotfind) ( c s2 s1 --> t/f ) TRUE -ROT ?DO OVER I C@ = IF FALSE AND LEAVE THEN LOOP NIP ; [/code]
p.s. [b]2all:[/b] кстати, очень рекомендую книгу
[url=http://www.ozon.ru/context/detail/id/3614757/]А.Шень "Программирование. Теоремы и задачи"[/url]
изумительная вещь!
p.p.s. код со всеми правками [url=http://www.everfall.com/paste/id.php?c9lpgfmpsnke]здесь[/url]
|
|
|
|
Добавлено: Пт янв 25, 2008 11:41 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
mOleg писал(а): white_TigR писал(а): Код:CREATE SYMS 256 ALLOT CREATE CODE 10 ALLOT CREATE COUNT 10 ALLOT прошу прощения, для какой системы данное решение? если для СПФ, то не хватает какой-то либы 8(
это не для spf, но под ним запускается после пары корректировок
в начало записать это:
Код: : CLS ; IMMEDIATE : GOTOXY POSTPONE 2DROP ; IMMEDIATE : PRINT BEGIN DUP C@ WHILE DUP C@ EMIT 1+ REPEAT DROP ; : Recurs POSTPONE RECURSE ; IMMEDIATE
а в конец вот это: Код: S" aabcaaa" DROP variants . CR
а что это за система - надо тигру спрашивать
[quote="mOleg"][quote="white_TigR"]Код:CREATE SYMS 256 ALLOT CREATE CODE 10 ALLOT CREATE COUNT 10 ALLOT[/quote] прошу прощения, для какой системы данное решение? если для СПФ, то не хватает какой-то либы 8([/quote]
это не для spf, но под ним запускается после пары корректировок
в начало записать это:
[code] : CLS ; IMMEDIATE : GOTOXY POSTPONE 2DROP ; IMMEDIATE : PRINT BEGIN DUP C@ WHILE DUP C@ EMIT 1+ REPEAT DROP ; : Recurs POSTPONE RECURSE ; IMMEDIATE [/code]
а в конец вот это: [code] S" aabcaaa" DROP variants . CR [/code]
а что это за система - надо [b]тигру[/b] спрашивать :-)
|
|
|
|
Добавлено: Пт янв 25, 2008 11:25 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
вопрос писал(а): но алгоритм всё равно рекурсивный (конец строки - на самом деле начало) Другое дело - я бы потребовал доказательство, не отсеиваются ли при этом "законные" строки, т.к. не всё меняется со всем
с доказательством сложнее, всегда завидовал людям, знающим математику.
проверить можно так: для всех вариантов всех строк, скажем, длиной
до 5-6 символов сгенерировать все перестановки (подменой cnotfind) в setb
и сгенерировать перестановки без дублей исходным алгоритмом в seta
далее:
1) должно выполняться условие первого рода - cat seta | sort | uniq == cat seta | sort
2) должно выполняться условие второго рода - cat seta | sort == cat setb | sort | uniq
вот такой вот регрессионный тест....
[quote="вопрос"]но алгоритм всё равно рекурсивный (конец строки - на самом деле начало) Другое дело - я бы потребовал доказательство, не отсеиваются ли при этом "законные" строки, т.к. не всё меняется со всем[/quote]
с доказательством сложнее, всегда завидовал людям, знающим математику.
проверить можно так: для всех вариантов всех строк, скажем, длиной
до 5-6 символов сгенерировать все перестановки (подменой cnotfind) в setb
и сгенерировать перестановки без дублей исходным алгоритмом в seta
далее:
1) должно выполняться условие первого рода - cat seta | sort | uniq == cat seta | sort
2) должно выполняться условие второго рода - cat seta | sort == cat setb | sort | uniq
вот такой вот регрессионный тест....
|
|
|
|
Добавлено: Пт янв 25, 2008 11:18 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
garbler писал(а): mOleg писал(а): ничего, если я немного прокоментирую ваш код? с удовольствием, буду только рад garbler писал(а): DUP 0 = IF 2DROP 0 EXIT THEN
на самом деле по мелочи, просто бросилось в глаза, лучше так:
DUP IFNOT NIP NIP EXIT THEN
либо, если ifnot в системе отсутствует:
DUP IF ELSE NIP NIP EXIT THEN
потому что флаги в форте дважды проявлять не стоит
вопрос не принципиальный на самом деле, не счиатйте за замечание, а скорее за примечание
[quote="garbler"]mOleg писал(а): ничего, если я немного прокоментирую ваш код? с удовольствием, буду только рад[/quote] [quote="garbler"] DUP 0 = IF 2DROP 0 EXIT THEN[/quote]
на самом деле по мелочи, просто бросилось в глаза, лучше так:
DUP IFNOT NIP NIP EXIT THEN
либо, если ifnot в системе отсутствует:
DUP IF ELSE NIP NIP EXIT THEN
потому что [url=http://fforum.winglion.ru/viewtopic.php?p=12119#12119]флаги в форте[/url] дважды проявлять не стоит 8)
вопрос не принципиальный на самом деле, не счиатйте за замечание, а скорее за примечание ;)
|
|
|
|
Добавлено: Пт янв 25, 2008 04:23 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
white_TigR писал(а): Код:CREATE SYMS 256 ALLOT CREATE CODE 10 ALLOT CREATE COUNT 10 ALLOT
прошу прощения, для какой системы данное решение?
если для СПФ, то не хватает какой-то либы 8(
[quote="white_TigR"]Код:CREATE SYMS 256 ALLOT CREATE CODE 10 ALLOT CREATE COUNT 10 ALLOT[/quote]
прошу прощения, для какой системы данное решение?
если для СПФ, то не хватает какой-то либы 8(
|
|
|
|
Добавлено: Пт янв 25, 2008 03:49 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
garbler писал(а): mOleg писал(а):garbler спасибо за участие, но ваш код не полностью соответствует ТЗ 8( надо бы отсеивать уже встреченные комбинации. а они и отсеиваются, тут как раз всё корректно, на каждом шаге рекурсии символ каждого вида юзается только один раз. поскольку перестановки получаются из набора символов всегда все и нет ограничения на порядок их следования (перестановок), то достаточно просто хранить в хвосте нужные символы, не обращая внимания на их порядок.
было бы идеально, если бы вы хоть чуть-чуть прокоментировали свой код
(это у меня такое желание несбыточное есть
[quote="garbler"]mOleg писал(а):garbler спасибо за участие, но ваш код не полностью соответствует ТЗ 8( надо бы отсеивать уже встреченные комбинации. а они и отсеиваются, тут как раз всё корректно, на каждом шаге рекурсии символ каждого вида юзается только один раз. поскольку перестановки получаются из набора символов всегда все и нет ограничения на порядок их следования (перестановок), то достаточно просто хранить в хвосте нужные символы, не обращая внимания на их порядок.[/quote]
было бы идеально, если бы вы хоть чуть-чуть прокоментировали свой код 8)
(это у меня такое желание несбыточное есть 8)
|
|
|
|
Добавлено: Чт янв 24, 2008 23:55 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
garbler писал(а): mOleg писал(а):дайте пожалуйста ссылку на код garbler писал(а): mOleg писал(а):(если надо, могу разместить у себя). было-бы неплохо.... если можно. постоянного сайта у меня нет (безалаберность)
перенес примеры на Прологе и Перле, в сообщении оставил ссылки на них.
[quote="garbler"]mOleg писал(а):дайте пожалуйста ссылку на код [quote="garbler"]mOleg писал(а):(если надо, могу разместить у себя). было-бы неплохо.... если можно.[/quote] постоянного сайта у меня нет (безалаберность)[/quote]
перенес примеры на Прологе и Перле, в сообщении оставил ссылки на них.
|
|
|
|
Добавлено: Чт янв 24, 2008 23:51 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
garbler писал(а): может, лучше, для таких случаев раздел-(файло/исходнико)помойку на форуме создать?
http://everfall.com/paste/
[quote="garbler"] может, лучше, для таких случаев раздел-(файло/исходнико)помойку на форуме создать?[/quote]
http://everfall.com/paste/
|
|
|
|
Добавлено: Чт янв 24, 2008 22:21 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
mOleg писал(а): garbler спасибо за участие, но ваш код не полностью соответствует ТЗ 8( надо бы отсеивать уже встреченные комбинации. а они и отсеиваются, тут как раз всё корректно, на каждом шаге рекурсии символ каждого вида юзается только один раз. поскольку перестановки получаются из набора символов всегда все и нет ограничения на порядок их следования (перестановок), то достаточно просто хранить в хвосте нужные символы, не обращая внимания на их порядок. для того, чтобы ещё лучше увидеть разницу, рекомендую воспользоваться такой версией (cnotfind) Код: : (cnotfind) ( c s2 s1 --> t/f ) 2DROP DROP 1 ;
так мы получим полный перебор без учёта "дублей" символов, входящих в строку mOleg писал(а): ничего, если я немного прокоментирую ваш код?
с удовольствием, буду только рад mOleg писал(а): например, для такой последовательности: s" 100000001" variants CR . количество вариантов влезет на один экран для 80х25 не влезет, ибо 36 комбинаций p.s.mOleg писал(а): дайте пожалуйста ссылку на код постоянного сайта у меня нет (безалаберность) mOleg писал(а): (если надо, могу разместить у себя).
было-бы неплохо.... если можно.
или, может, лучше, для таких случаев раздел-(файло/исходнико)помойку
на форуме создать?
[quote="mOleg"][b]garbler[/b] 8) спасибо за участие, но ваш код не полностью соответствует ТЗ 8( надо бы отсеивать уже встреченные комбинации. [/quote] а они и отсеиваются, тут как раз всё корректно, на каждом шаге рекурсии символ каждого вида юзается только один раз. поскольку перестановки получаются из набора символов всегда все и нет ограничения на порядок их следования (перестановок), то достаточно просто хранить в хвосте нужные символы, не обращая внимания на их порядок.
для того, чтобы ещё лучше увидеть разницу, рекомендую воспользоваться такой версией (cnotfind)
[code] : (cnotfind) ( c s2 s1 --> t/f ) 2DROP DROP 1 ; [/code]
так мы получим полный перебор без учёта "дублей" символов, входящих в строку
[quote="mOleg"] ничего, если я немного прокоментирую ваш код? [/quote] с удовольствием, буду только рад
[quote="mOleg"] например, для такой последовательности: s" 100000001" variants CR . количество вариантов влезет на один экран ;)[/quote] для 80х25 не влезет, ибо 36 комбинаций
[b]p.s.[/b] [quote="mOleg"]дайте пожалуйста ссылку на код[/quote] постоянного сайта у меня нет (безалаберность)
[quote="mOleg"](если надо, могу разместить у себя).[/quote]
было-бы неплохо.... если можно.
или, может, лучше, для таких случаев раздел-(файло/исходнико)помойку
на форуме создать?
|
|
|
|
Добавлено: Чт янв 24, 2008 21:40 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
garbler писал(а): думаю, алгоритм будет несколько виднее на прологе/перле, их и прицеплю:
обратите пожалуйтса внимание на правила конкурса пункт 5.
дайте пожалуйста ссылку на код (если надо, могу разместить у себя).
[quote="garbler"]думаю, алгоритм будет несколько виднее на прологе/перле, их и прицеплю:[/quote]
обратите пожалуйтса внимание на [url=http://fforum.winglion.ru/viewtopic.php?t=719]правила конкурса[/url] пункт 5.
дайте пожалуйста ссылку на код (если надо, могу разместить у себя).
|
|
|
|
Добавлено: Чт янв 24, 2008 21:37 |
|
|
|
|