Re[26]: offtopic
От: Ночной Смотрящий Россия  
Дата: 09.10.13 20:46
Оценка:
Здравствуйте, ins-omnia, Вы писали:

IO>Тут объяснили, что для многих областей этого не требуется.


Программирование на языке C# в эти области не входит.

IO>А у вас — это точно РФ?


Точно. Я даже больше скажу — Москва.

НС>>ИМХО, не стоит по себе о других судить.

IO>Не стоит. Я этого и не делаю.

А на основании чего тогда ты решил, что другие действуют по старинке, и только ты зришь в корень? Сложность и объемность задач с 2003 года только выросла, программирование на C# 5.0 и FW 4.5 это сильно больше и хитрее, чем на C#/FW 1.1, и я не понимаю с какого фига требования нужно снижать, и человек, ниасиливший как следует ссылки, на C# 1.1 программировать не мог, а на 5.0 вдруг запрограммирует как из пушки.
Re[31]: offtopic
От: Ночной Смотрящий Россия  
Дата: 09.10.13 20:50
Оценка:
Здравствуйте, Erop, Вы писали:

E>Ага! Таки вопрос с хитрецой, и потом с уточняющим таки. Тогда понятнее всё становится и почему то таки решение, и почему его предлагают...


Проблема то остается — даже после наводящих вопросов подавляющее большинство справиться с задачей не может.

E>А почему бы прямо не написать в вопросе "с расходом памяти O(1)"? Ну тупо итерацию одну сэкономишь как бы...


Хочется посмотреть на ход мысли.
Re[29]: offtopic
От: Ночной Смотрящий Россия  
Дата: 09.10.13 20:50
Оценка:
Здравствуйте, Erop, Вы писали:

НС>>Но это, вобщем то, неважно. Суть тут не в конкретном коде, а в том что, если заранее задать правильный вариант, то часто можно подобрать такое требование, чтобы именно это решение было лучше. И именно поэтому доказательство правильности варианта путем замены исходной задачи логически некорректно.


E>Ну так мы не про задачу же, а про модель реального кода, как бы.


Вот поэтому ты меня и не понимаешь. Я то как раз про задачу, а не про модель реального кода.

E>Про дополнительное образение к Next заитриговал. Завтра может найду сообщение с твоим кодом и посмотрю. Что-то никак не могу придумать на кой оно надо.


Элементов потому что n, а ссылок n-1 + null.
Re[27]: offtopic
От: ins-omnia СССР  
Дата: 09.10.13 21:06
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>А на основании чего тогда ты решил, что другие действуют по старинке, и только ты зришь в корень? Сложность и объемность задач с 2003 года только выросла, программирование на C# 5.0 и FW 4.5 это сильно больше и хитрее, чем на C#/FW 1.1, и я не понимаю с какого фига требования нужно снижать, и человек, ниасиливший как следует ссылки, на C# 1.1 программировать не мог, а на 5.0 вдруг запрограммирует как из пушки.


Так это разная сложность. Ты же не утверждаешь, что в 5.0 появились какие-то новые фундаментальные концепции?
Тем более такие, которые требуют для понимания классического базы алгоритмов/структур данных.
Многие нововведения как раз направлены на то, чтобы было легче писать бойлерплейт не заморачиваясь низкоуровневыми деталями.

Да, а почему ты объединяешь сложность задач и сложность платформы? Вроде чем сложнее и специфичнее задача, тем меньше пользы от фишек платформы.
Задача конечно может быть сложной, но не специфичной. Типичный "кроваый энтерпрайз" например. Но это же как раз область, где рулят совсем другие
скилы, к алгоритмам имеющие отдаленное отношение.
Откуда же его [независимый суд] взять, если в нем такие же как мы? (c) VladD2
Re[30]: offtopic
От: Erop Россия  
Дата: 09.10.13 21:06
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Элементов потому что n, а ссылок n-1 + null.



prev = 0;
for( i = 0; i < v.count; i++ ) {
    v[i] = prev;
    prev = v[i];
}
return prev;
Не?..
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[28]: offtopic
От: Ночной Смотрящий Россия  
Дата: 10.10.13 10:01
Оценка:
Здравствуйте, ins-omnia, Вы писали:

IO>Так это разная сложность.


А неважно. Важно что ссылки никуда не делись.

IO> Ты же не утверждаешь, что в 5.0 появились какие-то новые фундаментальные концепции?


Утверждаю. Как минимум поддержка короутинов двух видов и некоторых конструкций ФП.

IO>Многие нововведения как раз направлены на то, чтобы было легче писать бойлерплейт не заморачиваясь низкоуровневыми деталями.


Легче, но только человекам с хорошим бекграундом.

IO>Но это же как раз область, где рулят совсем другие

IO>скилы, к алгоритмам имеющие отдаленное отношение.

Эта область настолько обширна, что там рулят почти любые программистские скилзы.
Re[31]: offtopic
От: Ночной Смотрящий Россия  
Дата: 10.10.13 10:01
Оценка: :)
Здравствуйте, Erop, Вы писали:

E>
prev = 0;
E>for( i = 0; i < v.count; i++ ) {
E>    v[i] = prev;
E>    prev = v[i];
E>}
E>return prev;
Не?..


Это чего вообще такое? Особо извращенный способ заполнить массив интов нулями?
Re[29]: offtopic
От: ins-omnia СССР  
Дата: 10.10.13 13:22
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>А неважно. Важно что ссылки никуда не делись.


Ты считаешь, что человек, который не осилил задачу на односвязный список, не понимает что такое ссылки?
При условии, что он раньше этих списков не видел.

IO>> Ты же не утверждаешь, что в 5.0 появились какие-то новые фундаментальные концепции?

НС>Утверждаю. Как минимум поддержка короутинов двух видов и некоторых конструкций ФП.

Если уж на то пошло, чем дальше в функциональные дебри, тем дальше от концепции ссылок. Но это уже оффтопик.

IO>>Многие нововведения как раз направлены на то, чтобы было легче писать бойлерплейт не заморачиваясь низкоуровневыми деталями.

НС>Легче, но только человекам с хорошим бекграундом.

Что такое хороший бекграунд? Дискретная математика и Кнут? Это конечно хороший бекграунд, но здесь он не особо нужен.
Или ты думаешь, что человек, которого магическая сила не потянула изучать Кнута, не сможет ослить Линк и асинки?
Не такие это сложные концепции. Ничего принципиально более сложного, чем процедурное программирование там нет.
Люди, которые не знают вообще ничего, кроме жабаскрипта усваивают подобные концепции без труда и применяют их
в своём коде.

Я бы тут заменил "хороший бекграунд" на "общую вменяемость". Думаю, что даже задача на списки может служить для её проверки.
Но естественно при условии вменяемости собеседующего. Т.е. не "переверни мне список на бумажке, ааа ты даже не понял, что
я имел в виду односвязный список, пшел нафиг петеушник". Можно сначала спросить чела, слышал ли он о такой струкруте,
если нет показать ему, спросить как бы он перевентул такой список. Если нарисовать это на бумажке, чел должен догадаться и
объяснить в двух словах. Ну и после написать код. Главное не пытаться читать мысли и не заставлять чела читать мысли.
Но если кандидат говорит, что знает об этой структуре, но не может показать, значит скорее всего тупой или профессиональный зубрила.
Как-то так.
Откуда же его [независимый суд] взять, если в нем такие же как мы? (c) VladD2
Re[32]: offtopic
От: Erop Россия  
Дата: 10.10.13 14:27
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Это чего вообще такое? Особо извращенный способ заполнить массив интов нулями?


исправленному псевдокоду верить
E>>
E>>    v[i].next = prev;
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[30]: offtopic
От: Ночной Смотрящий Россия  
Дата: 10.10.13 19:42
Оценка:
Здравствуйте, ins-omnia, Вы писали:

IO>Ты считаешь, что человек, который не осилил задачу на односвязный список, не понимает что такое ссылки?


Да.

IO>При условии, что он раньше этих списков не видел.


Там нечего видеть, конструкция предельно тривиальная.

IO>Если уж на то пошло, чем дальше в функциональные дебри, тем дальше от концепции ссылок.


Ничуть.

IO>Что такое хороший бекграунд?


Умение оперировать ссылками в голове, к примеру.

IO>Можно сначала спросить чела, слышал ли он о такой струкруте,


Зачем? В вопросе есть код узла, этого любому нормальному человеку достаточно, даже если он слово "односвязный список" никогда не слышал.
Re[33]: offtopic
От: Ночной Смотрящий Россия  
Дата: 10.10.13 19:42
Оценка: +1
Здравствуйте, Erop, Вы писали:


E>исправленному псевдокоду верить

E>>>
E>>>    v[i].next = prev;
E>


Ну то есть в итоге ты воспроизвел правильное решение практически 1 в 1, но при этом зачем то заменил обход списка индексированным доступом.
Re[34]: offtopic
От: Erop Россия  
Дата: 10.10.13 20:59
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Ну то есть в итоге ты воспроизвел правильное решение практически 1 в 1, но при этом зачем то заменил обход списка индексированным доступом.


Ну я же говорю тебе, что между ними таки моно общего
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[35]: offtopic
От: Ночной Смотрящий Россия  
Дата: 10.10.13 21:22
Оценка: :)
Здравствуйте, Erop, Вы писали:

E>Ну я же говорю тебе, что между ними таки моно общего


Ну вот устраняем из твоего решения ненужную сущность — промежуточный массив или список — и получаем самое простое решение
Re[36]: offtopic
От: Erop Россия  
Дата: 10.10.13 21:38
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Ну вот устраняем из твоего решения ненужную сущность — промежуточный массив или список — и получаем самое простое решение


Опять за рыбу деньги

Я и правда могу написать сразу то решение, которое ты называешь "правильное".
Мало того, мне так кажется, что даже если писать то, которое ты называешь "хуже", естественно его писать похоже на то, которое "правильное"
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[10]: offtopic
От: Abyx Россия  
Дата: 10.10.13 22:52
Оценка: 3 (1) :)
Здравствуйте, -n1l-, Вы писали:

N>Пффф, пока вы тут писали эту простыню, я взял листочек и ручку набросал схему ссылок и решил задачу двумя разными способами.

N>Первый способ O(n) с использованием нескольких вспомогательных ссылок.
N>Второй способ O(n*n)с использованием стека, чисто как эксперимент, так что публиковать его не буду.

N>
N>        static void ReverseOne(ref Element list)
N>        {
N>            Element current = list;
N>            Element previous = null;
N>            Element result = null;


N>            while (current!=null)
N>            {
N>                previous = current;
N>                current = current.Next;
N>                previous.Next = result;
N>                result = previous;
N>            }

N>            list = result;
N>        }
N>


N>Знание алгоритмов и структур данных позволяет решать задачу более элегантно и понятно.


Это называется "элегантно и понятно"?!
я смотрю на этот говнокод и вижу кучу присваиваний, какую-то мешанину из previous current Next.
это нифига непонятно, и уж точно не элегантно.

понятный код выглядит вот так: (C++)
Item* reverse(Item* list)
{
    Item* reversedList = nullptr;

    while (auto item = slice(list))
        prepend(reversedList, item);

    return reversedList;
}

(полный код — http://coliru.stacked-crooked.com/a/5c03760ffe9063ae)

каждая примитивная операция должа иметь свое имя, тогда код становится понятным.

что характерно, никакого знания алгоритмов и структур данных тут не нужно.
у односвязного списка есть только две операции — отрезание головы и добавление в начало.
и так уж получилось, что как их не комбинируй, список всегда будет разворачиваться
так что для разворота списка, вместо заучивания структур данных, надо просто написать интерфейс списка, и задача решится сама собой
In Zen We Trust
Re[10]: offtopic
От: Abyx Россия  
Дата: 10.10.13 22:54
Оценка:
Здравствуйте, -n1l-, Вы писали:

N>Пффф, пока вы тут писали эту простыню, я взял листочек и ручку набросал схему ссылок и решил задачу двумя разными способами.

вдогонку: "пфф ололо схема ссылок на листочке".

N>Это вообще детские задачи. Вот я на работе решал задачку.

а мы все только формы клепаем, ага.
In Zen We Trust
Re[11]: offtopic
От: -n1l-  
Дата: 11.10.13 02:22
Оценка:
Здравствуйте, Abyx, Вы писали:
A>а мы все только формы и веб-мордыклепаем, ага.
Именно.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.