Так бабло в двоичной плавающей точке хранить - вообще моветон: ваши 10% в ней превращаются в периодическую дробь, и на ровном месте будет ошибка округления.8K wrote: ↑28 Aug 2020 22:30Да я как бы не против нулей или бесконечностей со знаком. Но вычитая 1 из 1, минус ноль не получится. При умножении или делении - согласен.
Видимо, исходный бюджет был слегка меньше, чем показывался, и действительно внутри хранится с плавающей точкой. Т.е. не ровно 50 000, а где-то 49 999.99999. То есть деление все же было (например, наверху раскидали проценты между подразделениями).
Big O на интервью
-
- Уже с Приветом
- Posts: 1964
- Joined: 11 Mar 2015 01:12
Re: Big O на интервью
-
- Уже с Приветом
- Posts: 8210
- Joined: 27 Mar 2016 23:56
Re: Big O на интервью
по моему любой процессор просто не умеет всётаки делить полностью точно
-
- Уже с Приветом
- Posts: 2741
- Joined: 17 Jul 2000 09:01
- Location: Одесса -> Лос-Анджелес -> Делавер -> Мэриленд -> Вирджиния. Хочу снова в Одессу.
Re: Big O на интервью
Да что там процессор! Я сам никогда не могу точно разделить на три части обычное яблоко.
А я все чаще замечаю, что меня как будто кто-то подменил...
-
- Уже с Приветом
- Posts: 10396
- Joined: 04 Feb 2004 14:14
- Location: Edgewater, NJ
Re: Big O на интервью
А вот если бы процессор разбирался в степенях логарифма с большой О, то наверняка точно поделил бы.
-
- Уже с Приветом
- Posts: 12065
- Joined: 15 Feb 2002 10:01
- Location: TX
Re: Big O на интервью
Только О(н) для одинокого цикла, всеми константами можно принебречь при достaточно большом н.Mmodel wrote: ↑27 Aug 2020 04:34 Привет,
Пугают как-бы при наёме что могут про биг О спросить.
Интересуюсь что тут такого коварного с ним могут спросить на интервью?
вроде как надо подсчитать шорст сценарио, т.е. если даже дают код и строки кода то надо брать каждую строку за один степ и дальше всякие лоопс за Н*Н ну и это всё сложить.Биг О нотатион ис а матхематицал нотатион тхат десцрибес тхе лимитинг бехавиор оф а фунцтион шхен тхе аргумент тендс тошардс а партицулар валуе ор инфиниты.
Допустимто это будет О(н+н*н)фунцтион(н) {
досометхинг();
фор(и=0; и<n;i++){
dosomething();
}
}
даже если досометхинг не всегда срабатывает.
Вроде как функция стремиться и функция доходит и не идёт дальше одно и тоже в Цомпутер Сциенце.
Наверное могут спросить сколько алгоритм жрёт ЦПУ, а сколько меморы в бест цасе и шорст цасе и баланце бетшеен тхем используя всякие алгоритмы.
Допустим бинары сеарч жрёт меньше всего ЦПУ, но больше всего меморы хттпс://ен.шикипедиа.орг/шики/Бинарысеарчалгоритхм
Для двойного цикла О(н^2) and so on.
Всего 6 классов сложности, даны в порядке убывания еффективности.
< O(1) - denotes constant running time
O(logn) -denotes logarithmic running time
O(n) - denotes linear run. time
O(nlogn) - denotes log-linear run. time
O(n^c) - denotes polynomial run. time, c=const
O(c^n) - exponential run time >
Я класс брала в <MIT>, там рассказывали. А на интервью v < Chase> конкретно спрашивали слышала ли я о <Big О> в виду не молодого возраста.
-
- Уже с Приветом
- Posts: 5479
- Joined: 10 May 2013 05:00
- Location: FL
Re: Big O на интервью
Ничего себе какие коварные женщины бывают...Likenew wrote: ↑03 Sep 2020 04:53
Только О(н) для одинокого цикла, всеми константами можно принебречь при достaточно большом н.
Для двойного цикла О(н^2) and so on.
Всего 6 классов сложности, даны в порядке убывания еффективности.
< O(1) - denotes constant running time
O(logn) -denotes logarithmic running time
O(n) - denotes linear run. time
O(nlogn) - denotes log-linear run. time
O(n^c) - denotes polynomial run. time, c=const
O(c^n) - exponential run time >
Я класс брала в <MIT>, там рассказывали. А на интервью v < Chase> конкретно спрашивали слышала ли я о <Big О> в виду не молодого возраста.
-
- Уже с Приветом
- Posts: 10396
- Joined: 04 Feb 2004 14:14
- Location: Edgewater, NJ
Re: Big O на интервью
Забыли еще одну, седьмую, написатьLikenew wrote: ↑03 Sep 2020 04:53Только О(н) для одинокого цикла, всеми константами можно принебречь при достaточно большом н.Mmodel wrote: ↑27 Aug 2020 04:34 Привет,
Пугают как-бы при наёме что могут про биг О спросить.
Интересуюсь что тут такого коварного с ним могут спросить на интервью?
вроде как надо подсчитать шорст сценарио, т.е. если даже дают код и строки кода то надо брать каждую строку за один степ и дальше всякие лоопс за Н*Н ну и это всё сложить.Биг О нотатион ис а матхематицал нотатион тхат десцрибес тхе лимитинг бехавиор оф а фунцтион шхен тхе аргумент тендс тошардс а партицулар валуе ор инфиниты.
Допустимто это будет О(н+н*н)фунцтион(н) {
досометхинг();
фор(и=0; и<n;i++){
dosomething();
}
}
даже если досометхинг не всегда срабатывает.
Вроде как функция стремиться и функция доходит и не идёт дальше одно и тоже в Цомпутер Сциенце.
Наверное могут спросить сколько алгоритм жрёт ЦПУ, а сколько меморы в бест цасе и шорст цасе и баланце бетшеен тхем используя всякие алгоритмы.
Допустим бинары сеарч жрёт меньше всего ЦПУ, но больше всего меморы хттпс://ен.шикипедиа.орг/шики/Бинарысеарчалгоритхм
Для двойного цикла О(н^2) and so on.
Всего 6 классов сложности, даны в порядке убывания еффективности.
< O(1) - denotes constant running time
O(logn) -denotes logarithmic running time
O(n) - denotes linear run. time
O(nlogn) - denotes log-linear run. time
O(n^c) - denotes polynomial run. time, c=const
O(c^n) - exponential run time >
Я класс брала в <MIT>, там рассказывали. А на интервью v < Chase> конкретно спрашивали слышала ли я о <Big О> в виду не молодого возраста.
-
- Уже с Приветом
- Posts: 1964
- Joined: 11 Mar 2015 01:12
Re: Big O на интервью
Их можно сколько угодно придумать с математической точки зрения. А с практической - всё, что больше - безнадёга.
-
- Уже с Приветом
- Posts: 12065
- Joined: 15 Feb 2002 10:01
- Location: TX
Re: Big O на интервью
За что купила, за то и продаюIvanGrozniy wrote: ↑03 Sep 2020 11:26Забыли еще одну, седьмую, написатьLikenew wrote: ↑03 Sep 2020 04:53 Только О(н) для одинокого цикла, всеми константами можно принебречь при достaточно большом н.
Для двойного цикла О(н^2) and so on.
Всего 6 классов сложности, даны в порядке убывания еффективности.
< O(1) - denotes constant running time
O(logn) -denotes logarithmic running time
O(n) - denotes linear run. time
O(nlogn) - denotes log-linear run. time
O(n^c) - denotes polynomial run. time, c=const
O(c^n) - exponential run time >
Я класс брала в <MIT>, там рассказывали. А на интервью v < Chase> конкретно спрашивали слышала ли я о <Big О> в виду не молодого возраста.
Все претензии к MIT
-
- Уже с Приветом
- Posts: 12065
- Joined: 15 Feb 2002 10:01
- Location: TX
Re: Big O на интервью
Хуже не бывает
-
- Уже с Приветом
- Posts: 10396
- Joined: 04 Feb 2004 14:14
- Location: Edgewater, NJ
Re: Big O на интервью
Мы рассматриваем здесь с точки зрения алгоритмов. Поэтому если не будете знать о факториальной функции при необходимости оценки такого алгоритма, то впросак на интервью можете попасть. Таких алгоритмов ну очень много. Например list of all permutations.
Last edited by IvanGrozniy on 03 Sep 2020 17:25, edited 1 time in total.
-
- Уже с Приветом
- Posts: 10396
- Joined: 04 Feb 2004 14:14
- Location: Edgewater, NJ
Re: Big O на интервью
Кстати посмотрел лекцию у них. Писателю этой лекции незачет!Likenew wrote: ↑03 Sep 2020 16:51За что купила, за то и продаюIvanGrozniy wrote: ↑03 Sep 2020 11:26Забыли еще одну, седьмую, написатьLikenew wrote: ↑03 Sep 2020 04:53 Только О(н) для одинокого цикла, всеми константами можно принебречь при достaточно большом н.
Для двойного цикла О(н^2) and so on.
Всего 6 классов сложности, даны в порядке убывания еффективности.
< O(1) - denotes constant running time
O(logn) -denotes logarithmic running time
O(n) - denotes linear run. time
O(nlogn) - denotes log-linear run. time
O(n^c) - denotes polynomial run. time, c=const
O(c^n) - exponential run time >
Я класс брала в <MIT>, там рассказывали. А на интервью v < Chase> конкретно спрашивали слышала ли я о <Big О> в виду не молодого возраста.
Все претензии к MIT
-
- Уже с Приветом
- Posts: 5552
- Joined: 20 Mar 2001 10:01
- Location: SFBA
Re: Big O на интервью
О, вопрос на засыпку: копирование строк в цикле от 1 до N. Зависит от языка программирования, конечно, и прочих тонкостей.
Увидев друга, Портос вскрикнул от радости...
-
- Уже с Приветом
- Posts: 12139
- Joined: 15 Feb 2010 10:32
- Location: Pacifica, CA
-
- Уже с Приветом
- Posts: 5552
- Joined: 20 Mar 2001 10:01
- Location: SFBA
Re: Big O на интервью
У вас есть массив строк. Его надо скопировать. Например, std::vector<std::string> на C++. Или то же самое на Питоне или Яве.
Копирование одной строки не всегда O(1), особенно на C++. Перековавшиеся джависты - зло.
Так себе задачка для затравки. Можно поговорить про small string optimization, mutable vs immutable, copy on write, etc.
Last edited by 8K on 03 Sep 2020 19:50, edited 1 time in total.
Увидев друга, Портос вскрикнул от радости...
-
- Уже с Приветом
- Posts: 12139
- Joined: 15 Feb 2010 10:32
- Location: Pacifica, CA
Re: Big O на интервью
-
- Уже с Приветом
- Posts: 5552
- Joined: 20 Mar 2001 10:01
- Location: SFBA
-
- Уже с Приветом
- Posts: 12139
- Joined: 15 Feb 2010 10:32
- Location: Pacifica, CA
-
- Уже с Приветом
- Posts: 5552
- Joined: 20 Mar 2001 10:01
- Location: SFBA
Re: Big O на интервью
Я и говорю, джависты программируют на С++, и хрен втолкуешь разницу между передачей параметров по значению или по ссылке. Вектора так и летают туда-сюда.
Не примите на свой счет, я о своем, наболевшем. Трудно найти C++ разработчика без Java background.
Не примите на свой счет, я о своем, наболевшем. Трудно найти C++ разработчика без Java background.
Увидев друга, Портос вскрикнул от радости...
-
- Уже с Приветом
- Posts: 707
- Joined: 12 Mar 2003 22:29
- Location: Moscow->Bay Area, CA
Re: Big O на интервью
В общем случае О(n x m), где n -число строк в векторе, m- средняя длина строки.
The philosophy of one century is the common sense of the next. --Henry Ward Beecher
-
- Уже с Приветом
- Posts: 5552
- Joined: 20 Mar 2001 10:01
- Location: SFBA
Re: Big O на интервью
В случае С++ и без всяких вывертов в имплементации строк.
А в общем случае строки, скорее, immutable и их копирование будет O(1), т.е. Krys-Krys со своей джавистской колокольни где-то права. Тогда на интервью я бы копнул дальше. Например, спросил то же самое про сортировку. Часто игнорируют стоимость сравнения ключей. Тут бы это m и всплыло, опять же в зависимости от распределения.
В реальности же, к сожалению, приходится ограничиваться вариациями на тему написания bubble sort, кто справился - тот и в дамках. Не тот контингент.
Увидев друга, Портос вскрикнул от радости...
-
- Уже с Приветом
- Posts: 12139
- Joined: 15 Feb 2010 10:32
- Location: Pacifica, CA
Re: Big O на интервью
Я не замечала чтоб на интервью где-то так глубоко капали, но я на Джаве, да.8K wrote: ↑03 Sep 2020 22:14В случае С++ и без всяких вывертов в имплементации строк.
А в общем случае строки, скорее, immutable и их копирование будет O(1), т.е. Krys-Krys со своей джавистской колокольни где-то права. Тогда на интервью я бы копнул дальше. Например, спросил то же самое про сортировку. Часто игнорируют стоимость сравнения ключей. Тут бы это m и всплыло, опять же в зависимости от распределения.
Скопировать строки вообще наверное нельзя в Джаве по описанной вами причине. Можно скопировать ссылку на старую строку, String strCopy = str, это будет O(1) действительно. Так же можно создать новую строку из старой, тут я не знаю наверняка какое будет O, думаю что O(k) где к - длина строки - String strCopy = String.valueOf(str); - в этом случае это будет deep copy.
-
- Уже с Приветом
- Posts: 5552
- Joined: 20 Mar 2001 10:01
- Location: SFBA
Re: Big O на интервью
Вспоминается бессмертное во валит, гад!
Увидев друга, Портос вскрикнул от радости...
-
- Уже с Приветом
- Posts: 15526
- Joined: 27 Sep 2007 22:53
Re: Big O на интервью
Так вы же сами горорили о копировании, а не о перемещении.
-
- Уже с Приветом
- Posts: 5552
- Joined: 20 Mar 2001 10:01
- Location: SFBA
Re: Big O на интервью
Я вижу на tech screen, что он передает параметр-массив по значению. Спрашиваю, знаком ли с концепцией O-большого, прошу написать руками копирование массива (обычный цикл с поэлементным копированием) и дать оценку (time and space complexity). Вижу, не понимает, что bi = ai не всегда O(1) операция, а просто запомнил, что если цикл на N элементов, то автоматически O(N). Не видит неявных вложенных циклов.Мальчик-Одуванчик wrote: ↑04 Sep 2020 00:05Так вы же сами горорили о копировании, а не о перемещении.
Типа как bead sort, который в теории O(1), а на практике фигушки.
Увидев друга, Портос вскрикнул от радости...