Re[8]: Интервью в Intel (Мюнхен)
От: Esef Украина  
Дата: 27.03.12 21:31
Оценка:
U>>я вам предложил один из вариантов ответа (правильный и, возможно, никому не нужный ответ (с))
М>алгоритм который ничего не делает с N объектами? вы считаете это правильный ответ? я бы предложил sleep(N!), хотя это и не алгоритм, но работать будет.

Не ну а че :)


for(int i = 0; i < factorial(n); i++){
  doNothing();
}

очень даже O(n!) :)))
Re[9]: Интервью в Intel (Мюнхен)
От: dilmah США  
Дата: 27.03.12 21:37
Оценка:
E>for(int i = 0; i < factorial(n); i++){
E> doNothing();
E>}

E>очень даже O(n!)


в зависимости от оптимизатора в компиляторе это может быть совсем другое

Без оптиимизатора он вообще-то вычисляет factorial(n) на каждой итерации цикла, а значит будет O(n! * сколько вычисляется factorial).
А с оптимизатором этот цикл будет работать нисколько.

Кроме того int имеет фиксированный размер, поэтому этот цикл всегда будет O(1)

No hire! Следующий!
Re[9]: Интервью в Intel (Мюнхен)
От: мыщъх США http://nezumi-lab.org
Дата: 27.03.12 22:28
Оценка:
Здравствуйте, Esef, Вы писали:



U>>>я вам предложил один из вариантов ответа (правильный и, возможно, никому не нужный ответ (с))

М>>алгоритм который ничего не делает с N объектами? вы считаете это правильный ответ? я бы предложил sleep(N!), хотя это и не алгоритм, но работать будет.

E>Не ну а че



E>
E>for(int i = 0; i < factorial(n); i++){
E>  doNothing();
E>}

E>

E>очень даже O(n!)


курите определение алгоритма. у вас не алгоритм, а программма. factorial(n) -- инвариант. сколько раз он будет вычисляться? это же зависит от. какова сложность factorial? об этом мне нужно самому догадаться? я не знаток жабы и не в курсе как там это реализовано. а что на жаба ни один транслятор не осилит поскипать этот цикл, потому что он ничего не делает?

так что это не алгоритм. это кусок кода. написать цикл, кол-во интераций которого N! или log log N я сам могу. только это будет циклом, а не алгоритмом. кстати, ваш код еще и нерабочий. в int факториал очень быстро перестанет укладывается...
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Re[8]: Интервью в Intel (Мюнхен)
От: uzhas Ниоткуда  
Дата: 28.03.12 06:58
Оценка:
Здравствуйте, мыщъх, Вы писали:

U>>я вам предложил один из вариантов ответа (правильный и, возможно, никому не нужный ответ (с))

М>алгоритм который ничего не делает с N объектами? вы считаете это правильный ответ?
да, потому что класс O(1) вкладывается в O(log log N), который в свою очередь вкладывается в O(N!)
я даже дал ссылку на вики, чтобы мы одинаково себе представляли запись O(N)
Re[10]: Интервью в Intel (Мюнхен)
От: Esef Украина  
Дата: 28.03.12 07:36
Оценка:
Здравствуйте, мыщъх, Вы писали:

М>Здравствуйте, Esef, Вы писали:




Какие же вы скучные
Смайлики заметили?

М>курите определение алгоритма. у вас не алгоритм, а программма.


Которая реализует алгоритм, который ничего не делает

M>factorial(n) -- инвариант. сколько раз он будет вычисляться? это же зависит от. какова сложность factorial?

Сложность вычесления факториала O(n) при реализации в лоб. Ну тогда будет O(n*n!). Таки условие нарушенно.
M> об этом мне нужно самому догадаться? я не знаток жабы и не в курсе как там это реализовано. а что на жаба ни один транслятор не осилит поскипать этот цикл, потому что он ничего не делает?

Вот так лучше?
private void doNothing(){
//делать какую-то бессмысленую операцию чтобы не дать оптимизатору убрать цикл
}
....
int factorial = factorial(n);
for(int i = 0; i < factorial; i++){
  doNothing();
}
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.