Re: последовательность | |
---|---|
akvvohinc Сообщений: 4216 Откуда: Москва Дата регистрации: 11.11.2008 |
Эта строка не соответствует ТЗ:
Ну, и алгоритм очевидно неправильный:
Выше я предложил простой и понятный вариант из 9 строк, затем совместными усилиями его чуть ускорили, добавив еще пару строк. Теперь ты предлагаешь такой же в принципе, но чуть измененный вариант из 20 строк, работающий немного медленней и пока неправильно. Так что главный вопрос - какова цель? Выиграть долю процента на миллионе операций? Но пока никто такой цели и не ставил. Исправлено 7 раз(а). Последнее : akvvohinc, 29.05.20 05:16 |
Re: последовательность | |
---|---|
Taran Автор Сообщений: 13624 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Ну и славно.
|
Re: последовательность | |
---|---|
Chemberzhy Сообщений: 13142 Откуда: Измаил Дата регистрации: 28.04.2009 |
Фуф, выдохнул
------------------ Что-то с памятью моей стало, всё что было не со мной- помню. |
Re: последовательность | |
---|---|
Taran Автор Сообщений: 13624 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Злодей ;) Ждал полемики? Хочу быть правильно понятым. Лично мне было интересно сравнить скорость парсинга через массив и getwordnum, а также влияние "рыхлого" do case...endcase. Ну до кучи другие варианты, поскольку...ну интересно мне. Я сделал, результатами поделился. Я как-бы более практик, чем умный. Все. ;) |
Re: последовательность | |
---|---|
Taran Автор Сообщений: 13624 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Не спора ради... Вероятно эта функция когда либо понадобится мне (если её не было раньше), почему бы не сделать универсальной? В твоём примере "> 2" меняем на "# 2" и готово. Накладных расходов ноль. По поводу Лично я однозначности не вижу. Разрыва нет, значит запятой не должно быть. Х.з. может мне образования не хватает. ++ Но у lulgu и у ТС "1,2" преобразуется в "1-2". Исправлено 1 раз(а). Последнее : Taran, 29.05.20 09:48 |
Re: последовательность | |
---|---|
Ydin Сообщений: 7648 Откуда: Киев Дата регистрации: 16.12.2005 |
Такая запись является "упаковкой" и, скорее всего, нужна потом для "распаковки". Поэтому корректно и 1,2 и 1-2. |
Re: последовательность | |
---|---|
Taran Автор Сообщений: 13624 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Спорно. Если когда либо придётся работать с этой строкой и на основе её строить чего-либо, то при дефисе это будет типа between 1, 2. Либо это будет два отдельных цикла. |
Re: последовательность | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
Чтобы не было таких раночтений, надо чётко изложить ТЗ.
Например, указать, что используются только натуральные числа (не помню ноль считается таким или нет). Что исходная последовательность чисел разделяется запятыми. Повтор чисел возможен (или невозможен). Числа могут следовать в произвольном порядке. Максимально допустимое число - такое-то. Дефис применяется только в том случае, когда речь идёт о трех подряд числах, отличающихся друг от друга на 1. В остальных случаях числа разделяются запятыми. Последнее число в последовательности завершает выходную строку - никаких знаков после тако числа не ставится. Вот примерно такие правила. При наличии такого ТЗ можно и код писать. Исправлено 1 раз(а). Последнее : Simple777, 29.05.20 10:06 |
Re: последовательность | |
---|---|
Taran Автор Сообщений: 13624 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Ну ты загнул.
А оно ТС надо. Он решил и забыл. Программист должен сам. В том числе и изменить существующий тех.процесс и мир. ,OFf Пятница, у бывшей днюха, пивасик в фаворе. |
Re: последовательность | |
---|---|
Chemberzhy Сообщений: 13142 Откуда: Измаил Дата регистрации: 28.04.2009 |
Я тебя умоляю, дружище! Просто стёб. Я и сам подвязался ради раскоксовки мозга и по причине нестандарта задачи, про которую в хелпе ничего не сыщешь и решение требует творческого мышления. Жму руку! ------------------ Что-то с памятью моей стало, всё что было не со мной- помню. |
Re: последовательность | |
---|---|
Taran Автор Сообщений: 13624 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Балбес. Сань, я это понял. И реплику и тебя по жизни. Я любя и угорая. (Травы нету, только махорка). |
Re: последовательность | |
---|---|
Crispy Сообщений: 18571 Дата регистрации: 16.05.2005 |
ТЗ нужно не ТС. ТЗ нужно ВТП. Кстати таки хорошо ТЗ у Симплы сформулировано было. ------------------ В действительности все иначе, чем на самом деле. (Антуан де Сент-Экзюпери) Исправлено 1 раз(а). Последнее : Crispy, 29.05.20 13:50 |
Re: последовательность | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
Это я ещё не старался.
|
Re: последовательность | |
---|---|
akvvohinc Сообщений: 4216 Откуда: Москва Дата регистрации: 11.11.2008 |
Если корректно и 1,2, и 1-2, то тем более непонятно, зачем выполнять дурацкую работу по замене одного корректного варианта на другой. Если бы любой из нас на основе примеров автора пытаясь понять, что же ему нужно, увидел пример подобной замены, то безусловно понял бы это однозначно: 1,2 - неверно 1-2 - верно |
Re: последовательность | |
---|---|
akvvohinc Сообщений: 4216 Откуда: Москва Дата регистрации: 11.11.2008 |
Хорошо, но неправильно. Особенно эта фраза:
Возрастающая последовательность натуральных чисел, разделенных запятыми. Исправлено 1 раз(а). Последнее : akvvohinc, 29.05.20 17:02 |
Re: последовательность | |
---|---|
akvvohinc Сообщений: 4216 Откуда: Москва Дата регистрации: 11.11.2008 |
Что он сам хотел - вопрос неоднозначный. Его функция для "1,2" возвращает те же "1,2", хотя, судя по тексту, он собирался сделать "1-2". PS Судя по всему, он работает с нестандартной настройкой SET EXACT ON. Только в этом случае его функция работает, а ранее и Криспа, и я полагали, что она ничего не делает. ИТОГО: если "1,2" надо преобразовывать в "1-2", то твой алгоритм работает правильно, а мое Правило 2 надо изменить так: 2) Правило вывода символа перед выводимым числом: - выводится "пусто", если это первое число; - выводится ",", если разность текущего и предыдущего чисел больше 1; - иначе выводится '-' При этом функция сокращается на пару строк, но чуть замедляется:
Вновь можно ее ускорить, вынеся обработку последнего числа за цикл (но "красоты" это не добавит ):
Исправлено 9 раз(а). Последнее : akvvohinc, 29.05.20 19:08 |
Re: последовательность | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
Я ж говорю, что не старался. Просто "от вольного написал". К тому же использовать математические термины довольно рискованно - leonid не дремлет. Дожитается "в засаде" [ин]градиента. Что же касаемо 1,2 или 1-2, то если речь идёт (вроде бы) о списке печатаемых листов, то сгодятся оба варианта. Но для "строгости решения" вариант записи 1,2 предпочтительнее, потому как дефис подразумевает таки, что тире "сокрыло" числа "между", а между 1 и 2 натуральных чисел нет. Исправлено 1 раз(а). Последнее : Simple777, 29.05.20 18:48 |
Re: последовательность | |
---|---|
Ydin Сообщений: 7648 Откуда: Киев Дата регистрации: 16.12.2005 |
Налейте в стакан и устаканьтесь!
Задача (ТЗ) была из последовательности одного вида перевести в другого вида.
И хорошо! Автору явно времени не хватало и он спросил и написал сам и от Вас получил. И забыл! А тут гонки пошли и у каждого свои ТЗ. И все правы. Просто перейдите на утверждение ТЗ, ведь интересно! Потом уже, кто тогда будет прав?! Лучшее - враг хорошего. Оно часто и на хер никому не нужно, как тут. Да после разминки побегать - это логично. Даже когда уже забыли, не просят... А мышцы завелись, играют. Резвитесь тогда. Lulgu в затылок дышит. У него свое ТЗ! Исправлено 1 раз(а). Последнее : Ydin, 29.05.20 20:18 |
Re: последовательность | |
---|---|
lulgu Сообщений: 1838 Дата регистрации: 30.11.2016 |
Вроде, тогда уж функция совсем сокращается:
Для второй функции можно так эстетики добавить: ... ret = ret+IIF(k>1,IIF(VAL(arr(k))-VAL(arr(k-1))>1,',','-')+arr(k),'') RETURN ret Исправлено 1 раз(а). Последнее : lulgu, 29.05.20 20:22 |
Re: последовательность | |
---|---|
Ydin Сообщений: 7648 Откуда: Киев Дата регистрации: 16.12.2005 |
Легок на помине!
Пора ему уже зелень собирать. Для затравки предлагаю в ТЗ: - числа не упорядочены, могут быть иррациональные, комплексные и .Null. Исправлено 3 раз(а). Последнее : Ydin, 29.05.20 20:35 |
© 2000-2024 Fox Club  |