:: Игры Разума
Re: Задача о перестановках
sphinx

Сообщений: 31166
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
Мне вариант Андрея (matod) понравился больше - по крайней мере запускается на массиве из 10 элементов. С рекурсией кода мало, но и эффективность низкая.


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive
Re: Задача о перестановках
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
medstrax
Код хорош, пара нюансов - for i = 1 to len(m.str)
не стоит так делать, вычисление счетчика лучше вынести из цикла.
Нет смысла, выражение вычисляется только 1 раз - при запуске цикла.


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Задача о перестановках
medstrax
Забанен

Сообщений: 5964
Дата регистрации: 23.03.2007
Разве? А если длина строки где-то внутри цикла изменилась?
Ratings: 0 negative/0 positive
Re: Задача о перестановках
matod

Сообщений: 3062
Откуда: Иркутск
Дата регистрации: 31.10.2001
Цитата:
Разве? А если длина строки где-то внутри цикла изменилась?

Фокса это уже волновать не будет. Начальное значение счетчика цикла и конечное значение вычисляются только при старте цикла и в дальнейшем не меняются. В хелпе про FOR...ENDFOR есть ремарка на этот счёт.



Исправлено 1 раз(а). Последнее : matod, 15.12.09 05:54
Ratings: 0 negative/0 positive
Re: Задача о перестановках
Goodwin
Автор

Сообщений: 3539
Откуда: Омск
Дата регистрации: 03.05.2006
Мои пять копеек
local lnDepth
lnDepth=9
create Cursor OutCrs(Letters c(lnDepth))
local lnI, lnSize, lcList, laPart(lnDepth)
lnSize=1
lcList=''
for lnI=1 to lnDepth
laPart(lnI)=lnSize
lnSize=lnSize*lnI
lcList=lcList+chr(asc('A')+lnI-1)
endfor
for lnLine=0 to lnSize-1
lcIn=lcList
lcOut=''
lnRow=lnLine
for lnPos=lnDepth to 1 step -1
lnOffset=int(lnRow/laPart(lnPos))+1
lnRow=lnRow%laPart(lnPos)
lcOut=lcOut+SubStr(lcIn, lnOffset, 1)
lcIn=stuff(lcIn, lnOffset, 1, '')
endfor
insert into OutCrs values(lcOut)
if lnLine%1000=0
_vfp.statusbar=str(lnLine*100/lnSize, 4, 2)+'%'
endif
endfor
brow


------------------
Что мы знаем о лисе?
Ничего. И то не все.
(С)Б. Заходер




Исправлено 1 раз(а). Последнее : Goodwin, 15.12.09 13:43
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 5 (Гостей: 5)

© 2000-2024 Fox Club 
Яндекс.Метрика