в чем разница? Кроме того Хаскелль статически типизированный язык и для списков произвольной вложенности надо будет изобретать тип наподобие деревьев, и это будет уже далеко не 1 строчка.
Ага, хотя я бы не назвал второй вариант большим извратом, тк рекурсивные алгоритмы в форме лямбд записываются более элегантно. Вот чисто итеративный вариант будет извратом.
единственный комментарий: можно убрать «or» из цикла:
mergeto = lambda dst,lst: reduce(lambda a,b: a.extend(b) if type(b) is list else a.append(b), lst, dst) or dst
merge = lambda lst: mergeto([], lst)
Надо было попробовать) Вон ниже пишут, что все равно фан и опыт.
Я не вполне понял вопрос, какая разница в каких координатах орбиты? ВМ отдавала декартовы, моя программу внутри (в основном) считала в полярных.
Я не пользовался системами контроля версий, поэтому из исходников представить, что было в первые сутки не возможно) Комментариев там нет, а формулы выглядят примерно так, чтобы занимать меньше места:
На самом деле особого смысла прикручивать к Matematic'е другие языки программирования нет, её встроенный язык достаточно продвинут сам по себе (например на нем например написана WolframAlpha). Хотя если нужно, то есть интерфейс — MathLink. В поставке есть примеры для Си, Джавы и Дот.Нет.
К Пиону я её не пытался приделать, просто использовал как визуализатор, с обменом данными через файлы. Да и кстати решить эту задачу на самой Математике можно было в два счета, но это все-таки не спортивно, тк это не ЯП общего назначения)
Если есть желание посмотреть, что на неё вытворяют есть интересный сайт demonstrations.wolfram.com/ там куча примеров от школьной программы, до ядерной физики
Matematica действительно очен хороший инструмент. Чего нет там, обычно есть на functions.wolfram.com/. Еще есть www.wolframalpha.com/, но к сожалению эллиптическим секторам её еще не научили)
За местом я не гнался, кажется где-то во второй сотне. На все просто не хватило рук. Даже если бы я не отвлекся в воскресенье, то результат все равно до первой двадцатки было мало шансов допрыгнуть. В следующий раз буду участвовать хотя бы вдвоем с кем-то, уже должно быть легче. А так приходилось метаться между кодом и математикой (разными к тому же).
Удобство в том, что для каждой новой функции производные пишутся один раз. Остальное получается автоматически из алгебраических свойств дифференцирования.
mergeto = lambda dst,lst: reduce(lambda none,b: dst.extend(b) if type(b) is list else dst.append(b), lst, dst) or dst
merge = lambda lst: mergeto([], lst)
единственный комментарий: можно убрать «or» из цикла:
mergeto = lambda dst,lst: reduce(lambda a,b: a.extend(b) if type(b) is list else a.append(b), lst, dst) or dst
merge = lambda lst: mergeto([], lst)
К тому же я предлагаю вам решить задачку в конце, способом аналогичным Варинту 3. И мы сравним с моим, аналогичным Варианту 6.
Я не вполне понял вопрос, какая разница в каких координатах орбиты? ВМ отдавала декартовы, моя программу внутри (в основном) считала в полярных.
Я не пользовался системами контроля версий, поэтому из исходников представить, что было в первые сутки не возможно) Комментариев там нет, а формулы выглядят примерно так, чтобы занимать меньше места:
Хотя я же написал «К вечеру субботы все работало и решало 4 первых сценария «по двум точкам»». Это части первой задачи.
К Пиону я её не пытался приделать, просто использовал как визуализатор, с обменом данными через файлы. Да и кстати решить эту задачу на самой Математике можно было в два счета, но это все-таки не спортивно, тк это не ЯП общего назначения)
Если есть желание посмотреть, что на неё вытворяют есть интересный сайт demonstrations.wolfram.com/ там куча примеров от школьной программы, до ядерной физики
Чтобы не быть полным оффтопом) удобный аддон для сохранения состояния кучи вкладок Session Manager
e*d=0