U>>я вам предложил один из вариантов ответа (правильный и, возможно, никому не нужный ответ (с))
М>алгоритм который ничего не делает с N объектами? вы считаете это правильный ответ? я бы предложил sleep(N!), хотя это и не алгоритм, но работать будет.
Не ну а че :)
for(int i = 0; i < factorial(n); i++){
doNothing();
}
очень даже O(n!) :)))
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! Следующий!
Здравствуйте, 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.
Здравствуйте, мыщъх, Вы писали:
М>Здравствуйте, 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();
}