Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Алгоритмы
|
|||
|---|---|---|---|
|
#18+
Aleksandr SharahovDima TЯ так и не понял это ноу-хау с MaxBaseForPower. Да там примитивно все. Пусть два самых уровня башни представляют собой башенку a^b. Тогда мы заменяем их одним эквивалентным уровнем ("склеиваем"), Понятно. Некоторые 3хуровневые тоже клеятся, Например 49^(2^2) = 7^(2^3) я такую тебе подсунул :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2016, 07:41 |
|
||
|
Алгоритмы
|
|||
|---|---|---|---|
|
#18+
Люди добрые, помогите. Настрочил корявенький код на Java. Эти тесты проходит. 23 9 2 2 2 2 2 2 99 2 9 19 9 99 99 99 99 99 99 98 2 9 19 8 25 34 99 75 2 99 99 92 99 7 99 99 78 98 99 90 99 99 5 98 99 99 8 2 34 5 99 99 99 2 2 35 5 98 99 99 16 2 33 4 2 2 4 5 4 3 98 99 98 98 4 4 4 4 4 4 3 3 3 3 3 4 2 2 2 2 2 3 64 2 2 2 3 2 3 2 2 2 4 3 3 3 2 2 2 2 1 3 3 2 2 2 2 1 3 2 1 2 3 0 7 0 5 1 2 2 ответ 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 3 4 5 2 49 4 5 4 3 2 7 2 11 4 2 2 49 32 2 ответ 3 2 1 При сдаче задачи на проверку на acmp.ru выдает ошибку на втором тесте "Wrong answer". Может кто знает входные данные для этого теста? Не могу понять, где ошибся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2017, 16:45 |
|
||
|
Алгоритмы
|
|||
|---|---|---|---|
|
#18+
SashaMercuryКнут, Скиена, Кормен. Приведите пожалуйста пример неоптимального кода, о котором вы пишите выше крута в жопу, бесполезная книга. Кнут мужик потрясающий, но книги пишет просто почти абсолютно бесполезные. Корме, Лейзерсон Риверст, Штайн (если не переврал) - книга, которой хватит на всё. разбита по главам, можно и нужно читать не все, а только общие темы и то, что конкретно сейчас нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2017, 19:20 |
|
||
|
Алгоритмы
|
|||
|---|---|---|---|
|
#18+
zitz1989, в этих случаях "помогите" не работает. Ты взялся за одну из самых сложных задач того ресурса, решать ее тебя никто не заставляет. Напрягай мозг, ищи что не учел в коде, топик почитай, может мысли какие появятся. Сам, сам, сам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2017, 19:40 |
|
||
|
Алгоритмы
|
|||
|---|---|---|---|
|
#18+
Dima T, Да, задача непростая. Но тем она и интересна. Пришлось вспомнить курс школьной алгебры. :) Мыслей по поводу задачи куча, но как лучше впихнуть невпихуемое- хз. Были бы входные данные теста- было бы проще, сразу стало бы ясно, где недоглядел. Но ничего, буду дальше думать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2017, 00:12 |
|
||
|
Алгоритмы
|
|||
|---|---|---|---|
|
#18+
ТриггерманEatsFullLemonsтехнический директор сказал, что мне нужно подтянуть основы алгоритмов, т.к. мой код не всегда самый оптимальныйНу да, да, конечно. А что вы такое супер-важное разрабатывать будете, что позарез нужен оптимальный код? Пишете софт для атомных реакторов? Или для управления самолётами? Ну будет ваша программа считать 0.2 сек вместо 0.1 сек, и бухгалтерша получит отчёт на 0.1 сек позже? И что? Там где говорят про алгоритмы и оптимизацию, там налицо явное непонимание вектора развития разработки прикладного ПО. как бы любой неоптимальный алгоритм на 0.2 вместо 0.1 на 10 миллионах будет работать два дня вместо одного, и чего ты нам тут будешь говорить про вектора развития? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2017, 00:41 |
|
||
|
Алгоритмы
|
|||
|---|---|---|---|
|
#18+
Час от часу не легче. Алгоритм сравнения написал, второй тест прошло. Теперь не хватает времени на тест(2,15-2,20 вместо положенных 2 секунд). Бьюсь над сокращением времени. Пузырьковую сортировку заменил на быструю- результат не изменился. На Java никто эту задачу не решил. Тешу себя надеждой, что дело не во мне, а в Джаве ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2017, 21:48 |
|
||
|
Алгоритмы
|
|||
|---|---|---|---|
|
#18+
Время в третьем тесте победил, но теперь выдает "Wrong answer" в тесте №3. Может кто подкинет еще данных для теста? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2017, 10:13 |
|
||
|
Алгоритмы
|
|||
|---|---|---|---|
|
#18+
Или может подскажет, где поступаю неверно: 1)При чтении данных башню типа N .. y 1 z .. преобразую в N-2 .. y. 2)Нормализую верха башен N .. x y = N-1 .. z, где z=x^y, z<500. Брал 500, т.к. 99^500~(10^2)^500=10^1000<10^1023-вместимость типа double. 3)Из метода сортировки передаю два массива(две башни) в метод boolean isBigger(short[] a, short[] b). 3.1) Сравниваю длину башен. Если одна из них длинней на 3 элемента, то она и больше. И наоборот. Иначе иду далее. N .. 2 2 2 2 2 == N-3 .. 2 65536 ~~ N-3 .. 99 9886 > N-3 .. 99 499. Это пример граничного случая, когда верх длинной башни состоит из "2", а верх короткой башни- 99^z(где z взят максимальным из пункта 2). 3.2) Добиваю меньшую башню единицами до размера больше башни. N-2 .. x y == N .. x y 1 1 3.3) Сравниваем башни. 3.3.1) Если этажность башен дополненных единицами равна а)равна 0(0 x)- сравниваем башни по x. б)равна 1(1 x y)- сравниваем по логарифму. ln(x^y)=y*ln(x) в)равна 2(2 x y z)- сравниваем по двойному логарифму. lnln(x^y^z)=ln(y^z*ln(x)=ln(y^z)+lnln(x)=z*ln(y)+lnln(x) г)больше либо равна 3(N .. u x y z)- считаем разность двойных логарифмов t. Пусть даны башни (N .. u x y z) и (N .. a b c d). Тогда: double t=(y^z*ln(x)-c^d*ln(b))+(lnln(u)-lnln(a)) Подсчет ведем именно в таком порядке, т.к. при double t=(y^z*ln(x)+lnln(u))-(c^d*ln(b)+lnln(a)) потеряем в точности, что приведет к ошибке. г')если t>0, то башня (N .. u x y z) больше. г'')если t<0, то башня (N .. a b c d) больше. г''')если t=0, то сравниваем нижестоящие элементы башни. Где первым попадется больший элемент, та башня и больше. Вот такой алгоритм. Полностью код не публикую, т.к. во-первых он сильно корявенький и в нем черт ногу сломит, а во-вторых он уже наверное близок к прохождению. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2017, 11:38 |
|
||
|
Алгоритмы
|
|||
|---|---|---|---|
|
#18+
Дополню. Сразу после публикации предыдущего поста решил поиграться со значениями z из пункта 2. При установке 10<=z<=160 третий тест проходит, но выдает "Wrong answer" в пятом тесте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2017, 11:50 |
|
||
|
Алгоритмы
|
|||
|---|---|---|---|
|
#18+
zitz1989 б)равна 1(1 x y)- сравниваем по логарифму. ln(x^y)=y*ln(x) Ты в курсе что double надо совсем по другому сравнивать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2017, 12:54 |
|
||
|
Алгоритмы
|
|||
|---|---|---|---|
|
#18+
Dima T, нет, не в курсе. Просветите пожалуйста, если не сложно. Плюс понял, почему z должен быть значительно меньше меньше 500. double хранит до 1,7е+308. Число 10^1023 взял с конспекта переписанного с JavaRush.ru. Либо JR обманул, или я переписал не то. Грубо говоря, должно быть так z<150 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2017, 13:02 |
|
||
|
Алгоритмы
|
|||
|---|---|---|---|
|
#18+
Dima T, у меня в коде это выглядит так: Код: java 1. 2. max- длина массивов дополненных единицами. Первых две позиции в массивах я выделил под грубый хэшкод(сейчас он в реализации не участвует, но лень код переписывать) и номер башни. На позициях>=3(с индексом >=2) находятся сами элементы башен. По-этому пусть Вас не смущает то, что длина массивов на 2 больше количества элементов башни. Такой подход ошибочен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2017, 13:09 |
|
||
|
Алгоритмы
|
|||
|---|---|---|---|
|
#18+
zitz1989Dima T, нет, не в курсе. Просветите пожалуйста, если не сложно. Плюс понял, почему z должен быть значительно меньше меньше 500. double хранит до 1,7е+308. Число 10^1023 взял с конспекта переписанного с JavaRush.ru. Либо JR обманул, или я переписал не то. Грубо говоря, должно быть так z<150 Да, double хранит до 1,7е+308, но не хранит все 308 десятичных разрядов, там только первые 15-16. Гугли про погрешности. Тут можешь почитать . Про погрешности раздел 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2017, 13:24 |
|
||
|
Алгоритмы
|
|||
|---|---|---|---|
|
#18+
Dima T, Да, про мантиссу слыхал. Спасибо за подсказку. Погуглил, числа с плавающей точкой через > < = сравнивать нельзя. Проверка должна быть вида (X-Y>эпсилон). Осталось определиться с вычислением "эпсилон" на основе X и Y. Еще раз спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2017, 13:33 |
|
||
|
Алгоритмы
|
|||
|---|---|---|---|
|
#18+
Бьюсь головой об стену. Код: java 1. 2. 3. 4. 5. 6. 7. При эпсилон =aT*1.0e-16 не проходит 5 тест. При =aT*1.0e-11 не проходит 10 тест. При промежуточных значениях =aT*1.0e-15..=aT*1.0e-12 не проходит 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2017, 16:44 |
|
||
|
Алгоритмы
|
|||
|---|---|---|---|
|
#18+
Всё. 4 дня, 182 попытки(большая часть из них при подборе эпсилон). Теперь можно и выпить. Переписал код, массив вместо short сделал int, нормализацию вел до 2e+9. Немного изменил метод нахождения большей из двух башен. Dima T, боооольшущее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2017, 18:49 |
|
||
|
Алгоритмы
|
|||
|---|---|---|---|
|
#18+
zitz1989Бьюсь головой об стену. И дальше будешь биться. Ищи обход стены. zitz1989Всё. 4 дня, 182 попытки(большая часть из них при подборе эпсилон). Теперь можно и выпить. Я решил и мое время до сих пор лучшее. По количеству букав не на первом месте. Из-за их глупых рейтингов по количеству букав смотрю на свой код год спустя как на китайскую грамоту, я смутно вспоминаю как я это решил, 100500 оптимизаций, в итоге говнокод прошедший проверку. Да и не уверен я что на последний исходник смотрю, т.к. не было цели сохранить решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2017, 19:31 |
|
||
|
Алгоритмы
|
|||
|---|---|---|---|
|
#18+
zitz1989, я так понимаю ты не школьник и не студент, решаешь просто для себя. Если так, то или можешь или не можешь, третьего не дано, а вариант "могу, но с чужой помощью" - это вообще не вариант в реальной жизни, это означает "не могу" даже при положительном результате. Мой совет: отложи эту задачку и порешай что-нибудь попроще. Со временем и на нее ответ найдешь. А под спойлер не заглядывай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2017, 19:45 |
|
||
|
Алгоритмы
|
|||
|---|---|---|---|
|
#18+
Dima T, наверное не так меня поняли. Я решил ее. Трудности вызвало: -превышение времени выполнения программы. Перепробовал различные сортировки массива, ничего не помогло. В итоге, как говорится, дело было не в бобине, дол**еб сидел в кабине. Сортировка работала быстро. Медленно работал метод, выводящий порядок башни. Он в цикле для каждой башни из отсортированного массива искал ее индекс в неотсортированном. -сравнение башен. Знал, что double обрезает дробное число, знал про мантиссу. Да почему-то как-то и не подумал. Сравнивал как целочисленные. -погрешности. Сначала считал по одной формуле, где double умножается на double. Одно урезанное число умножаем на другое. Из-за этого и не проходил 12 тест. Время у меня не лучшее(хотя мог бы немного улучшить, если бы вернул идею с хэшкодом для башен одной высоты), памяти сожрал почти больше всех(можно решить изменив массив на byte, добавить в код массив с шапками башен и позицией этой шапки). Но теплит душу мысль о том, что я единственный решил задачу на Java. Мелочь, а приятно. И да, я не школьник, не студент. Просто решил в свои 27 лет вникнуть в программирование. Еще раз спасибо за подсказку про сравнение чисел с плавающей точкой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2017, 20:27 |
|
||
|
Алгоритмы
|
|||
|---|---|---|---|
|
#18+
Dima T, а по поводу рейтинга... Дурное это дело. Код должен быть в меру короток. Лучше будет на 20 символов больше, но переменные будут называться своими именами, а не "a", "b", "c", "x", "y", "z". Время выполнения и занимаемый объем памяти должен быть в приоритете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2017, 20:32 |
|
||
|
Алгоритмы
|
|||
|---|---|---|---|
|
#18+
zitz1989Я решил ее. Молодец! Поздравляю! Честно. Важно что решил, неважно как. Java не С, есть свои накладные расходы, как по времени, так и по памяти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2017, 20:38 |
|
||
|
Алгоритмы
|
|||
|---|---|---|---|
|
#18+
Может пускай тест остается, вроде и не выдает решение задачи, но способствует пониманию некоторых нюансов. В ближайшее время попробую немного оптимизировать код, верну массив ключей для быстрого сравнения. Думаю и время, и память немного снизятся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2017, 20:48 |
|
||
|
Алгоритмы
|
|||
|---|---|---|---|
|
#18+
Интересная задача. Я тоже попробовал. Все упомянутые здесь тесты прошёл но пока 3й официалный не смог. неверный ответ. Только для удовлетворения любопытства, поделитесь тайным знанием. Тестовыми файлами или просто в ответами на пару вопросов в приватном канале littlesuspense эт live и в самом com. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2017, 13:56 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=39414678&tid=1340102]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
169ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
| others: | 270ms |
| total: | 551ms |

| 0 / 0 |
