[Ответить в тред] Ответить в тред

02/12/16 - Конкурс визуальных новелл доски /ruvn/
15/11/16 - **НОВЫЙ ФУНКЦИОНАЛ** - Стикеры
09/10/16 - Открыта доска /int/ - International, давайте расскажем о ней!


Новые доски: /2d/ - Аниме/Беседка • /wwe/ - WorldWide Wrestling Universe • /ch/ - Чатики и конфочки • /int/ - International • /ruvn/ - Российские визуальные новеллы • /math/ - Математика • Создай свою

[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 154 | 5 | 51
Назад Вниз Каталог Обновить

Аноним # OP  26/05/17 Птн 12:07:40  153851859  
D9oo29vOZ5E.jpg (32Кб, 870x288)
Сап двач. Есть массив. В нем N+1 чисел. Все числа принимают значения от 1 до N. Нужно указать, какой элемент в массиве повторяется. Повторений может быть сколько угодно.

Нужно это сделать за линейное время и константу памяти
Аноним 26/05/17 Птн 12:09:53  153851900
бамп
Аноним 26/05/17 Птн 12:12:36  153851973
Можно сделать за один проход с выделением памяти под ещё один такой же массив. Итерируешь исходный массив, во второй массив кладешь 1 по индексу значения этого элемента. Если там уже есть 1 - значит повтор
Аноним 26/05/17 Птн 12:17:37  153852082
for i 1 to n+1 do
Begin
For j 1 to n+1 do
if a=a[j] then inc(k);
if k>1 then write (a, 'повторяется');
k:=0;
End;
Аноним 26/05/17 Птн 12:18:22  153852102
>>153852082
После if a(i), макаба кушает квадратные скобки
Аноним 26/05/17 Птн 12:21:06  153852200
14888859234910.jpg (4Кб, 160x160)
>>153852082
>Линейное время
>Вложенные циклы
Аноним 26/05/17 Птн 12:22:06  153852241
>>153851859 (OP)
Сортируешь, в цикле сравниваешь два рядом стоящих.
Или выделяешь еще один массив и ++ по индексу.
Аноним 26/05/17 Птн 12:23:07  153852280
>>153852200
Я не ебу что такое линейное время.
Аноним 26/05/17 Птн 12:25:36  153852380
>>153852280
Я заметил, ебанат ленивый
Аноним 26/05/17 Птн 12:26:21  153852413
>>153852241
> Сортируешь
> линейное время и константу памяти
Аноним 26/05/17 Птн 12:27:30  153852472
>>153851973
Массив будет не такой же, а размером с максимальное число.

>>153852280
>>153852241
Надеюсь не будущий программист.

А так, очевидный хэш-подход. Если число ограниченно, тупо делаешь второй массив, как писал первый чувак.
Аноним 26/05/17 Птн 12:28:24  153852521
Посмотри как мультимножества зделоны, ихние экземпляры такими подсчетами занимаются. collections.Counter в python, например.
Аноним 26/05/17 Птн 12:29:23  153852574
>>153852472
Ты долбаеб? Констанстная память? Какое нахуй хеш еблан?????

>>153851859 (OP)
Еблан тупой блядь, иди на хуй из моего IT.
Подсказка - пройтись XOR-ом.
Аноним 26/05/17 Птн 12:30:31  153852628
>>153852574
Хеш не бывает константным?
Аноним 26/05/17 Птн 12:45:07  153852676
>>153852574
>>153852628
Дурацкий двач. Ну так что, уёбок? Чем тебе развернуть массив на максимальное число не константно? Хэш-функция F: x->x. Это же не метод цепочек какой-нибудь.
Аноним 26/05/17 Птн 12:45:38  153852689
Кретины, блядь.
https://pastebin.com/tnhNKhra
Аноним 26/05/17 Птн 12:46:31  153852718
>>153851859 (OP)
>Все числа принимают значения от 1 до N
Суммируешь массив, затем вычитаешь из него сумму чисел от 1 до N (формула n*(n-1)/2), получаешь искомый ответ.
Аноним 26/05/17 Птн 12:46:54  153852729
>>153852574
> Еблан тупой блядь, иди на хуй из моего IT.
> Подсказка - пройтись XOR-ом.
Сам пройдись, довен. О результатах доложишь.
Аноним 26/05/17 Птн 12:47:59  153852771
>>153852718
> Повторений может быть сколько угодно.
Ещё один дебил
Аноним 26/05/17 Птн 12:48:10  153852776
>>153852413
Массив чисел можно отсортировать за линейное время. Radix sort, все дела.
Аноним 26/05/17 Птн 12:48:13  153852778
>>153852689
>массив на N

Нормально
Аноним 26/05/17 Птн 12:48:22  153852783
>>153852729
Ну так он прав же. Ассоциативность ксора.

>>153852676-кун
Аноним 26/05/17 Птн 12:48:27  153852785
>>153851859 (OP)
сортируешь масив любым из способов
сравниваешь предыдущее и следущее, если совпадают выписваешь в третий масив
Аноним 26/05/17 Птн 12:48:33  153852791
>>153852776
За сколько памяти, еблан
Аноним 26/05/17 Птн 12:49:04  153852808
>>153852785
Три массива

ОХУЕННО
Аноним 26/05/17 Птн 12:49:33  153852818
>>153852783
повторений сколько угодно. Бляяяя, откуда вы дауны лезете?
Аноним 26/05/17 Птн 12:49:41  153852821
>>153852771
Это как, блядь? У тебя по условию может повторяться только одно число (одно - 1). Или ты хочешь сказать, что одно число может повторяться несколько раз?
Аноним 26/05/17 Птн 12:49:47  153852826
>>153852791
А вот это не помню.

Вообще вангую что у задачи нет решения, тут раньше был такой анон, который создавал подобные треды с нерешаемой задачкой, пока наконец кто-то не накормил его хуями с пруфами что решить ее невозможно с теми ограничениями памяти и времени что он указывал.
Аноним 26/05/17 Птн 12:49:54  153852829
>>153852689
Ну и высер
Аноним 26/05/17 Птн 12:50:04  153852836
1
Аноним 26/05/17 Птн 12:59:51  153852868
>>153852826
Да как так блядь? Если число ограниченно, то всё есть. Как сортировка повтором.

хэш-кун

>>153852818
Окей, да.
Аноним 26/05/17 Птн 13:00:54  153852886
>>153851859 (OP)
https://ideone.com/dsYRDh
уебывай чмо
Аноним 26/05/17 Птн 13:02:35  153852929
>>153852886
Надеюсь тебя к кодерству не подпустят с такой писаниной
Аноним 26/05/17 Птн 13:04:05  153852966
>>153852783
Где он прав, блядь? Ксор поможет только если в массиве все числа имеют пару, кроме одного искомого. Тогда ксор уберёт пары и останется результат. У опа задача совершенно противоположная.
Аноним 26/05/17 Птн 13:04:53  153852991
>>153851859 (OP)
Квиксорт с тремя партишнами. = O(n)
Проходимся по массиву и проверяем єлемент с предидущим = O(n)
2O(n) = O(n)
Правда костанта памяти не війдет, так как квиксори O(n)
Аноним 26/05/17 Птн 13:04:54  153852992
>>153852821
> Или ты хочешь сказать, что одно число может повторяться несколько раз?
Это. Я не оп, но других вариантов я не вижу.
Аноним 26/05/17 Птн 13:05:05  153852999
>>153852886
Я в гугле работаю, хуйлоблядь.
Аноним 26/05/17 Птн 13:05:40  153853020
>>153852886
Единственное правильное решение кстати.
Аноним 26/05/17 Птн 13:06:03  153853034
>>153852991
>Квиксорт с тремя партишнами. = O(n)
>Квиксорт
>O(n)
Мы вам не перезвоним, уебывайте.

мимо-разработчик-в-IT-компании
Аноним 26/05/17 Птн 13:06:12  153853040
>>153852778
>>153852829
По делу есть, что сказать, или кукарекание только?
Аноним 26/05/17 Птн 13:07:37  153853098
>>153853040
мы вам перезвоним, если коротко
Аноним 26/05/17 Птн 13:09:13  153853167
5gzSQTwkrB8.jpg (315Кб, 1440x2160)
Аноны, откуда начать учить кодинг на питоне, что бы понимать о чем вы трёте в треде?
Аноним 26/05/17 Птн 13:09:32  153853179
>>153853098
> кококо
Я понял.
>>153852886
Спиздил моё решение, да так, что стало нечитаемо вообще. Молодец.
Аноним 26/05/17 Птн 13:12:18  153853281
Untitled.png (61Кб, 639x1070)
>>153853179
Я не спиздил. А взял с сасайта, который мне рекомендовал вот этот чувак. geeksforgeeks.org
Аноним 26/05/17 Птн 13:12:30  153853291
>>153852689
Поясни механику решения. Я ее не совсем могу раздуплить.
Мы пробегаемся от 1 до N, берем элемент массива, стоящего по этому номеру, затем берем элемент массива, стоящего по номеру предыдущего элемента и умножаем на -1, а затем проверяем, что если элемент больше нуля - то он повторяется. Почему оно работает?
Аноним 26/05/17 Птн 13:15:25  153853419
>>153853291
Здесь нету никакой логики. Это как олимпиадные задачки. Где нужно найти хакерское решение из предоставляемых данных. Ок, есть всякие разделяй-охуевай, динамическое программирование, метод ветвей и границ, бектракинг, рекурсия, гридди-алгоритмы, битовая магия, однопроходные алгоритмы. Тут нет логики. Ты сам должен её придумать, опираясь на свои знания и опыт в построении алгоритмов.

>>153853281 - кун

Аноним 26/05/17 Птн 13:18:04  153853536
>>153853419
Но если оно работает - то на чем-то основано решение. На математическом факте там, да хотя бы просто детализируй алгоритм.
Аноним 26/05/17 Птн 13:18:42  153853574
>>153852966
Да, я даун. Уже писал выше.
Аноним 26/05/17 Птн 13:24:24  153853822
>>153853419

{1 2 3} сработает на таком алгоритме?

i = 0
a = 1
a[1] = 2
a[1] := -2

i = 1
Повторяется 2. Как так?
Аноним 26/05/17 Птн 13:26:28  153853936
>>153853822
Не важно. В задании сказано, что повторения есть всегда.
Аноним 26/05/17 Птн 13:26:59  153853960
>>153853291
Смотри, если бы не было ограничения на память, то задача решалась бы так. Есть массив чисел от 0 до N. Мы выделяем массив размером N и заполняем его нулями. Далее итерируем по исходному массиву и для каждого встреченного числа m мы увеличиваем счётчик во втором массиве по индексу m на единицу. Та ячейка массива, где значение больше единицы, соответствует числу, которое повторялось. Поскольку у опа есть ограничение на память, мы можем использовать исходный массив для хранения счётчика (вернее, его кастрированной формы - видели число чётное количество раз - знак плюс, нечётное - минус). Поскольку нас интересуют только значения 1 (не повторяется) и 2 (повторяется как минимум два раза), этого достаточно.
Аноним 26/05/17 Птн 13:40:27  153854740
>>153853960
Вот теперь понял. Ты охуеннен.
Аноним 26/05/17 Птн 13:46:14  153855031
>>153854740
Спасибо :3
Аноним 26/05/17 Птн 13:48:07  153855127
>>153853960
Ебать.
Аноним 26/05/17 Птн 13:49:48  153855229
>>153855127
>>153853960
А если повторяется четыре раза, то хуйня будет.
Аноним 26/05/17 Птн 13:50:52  153855286
>>153853822
Это си плюс ебаное, там массивы с 1 нумеруются.
Аноним 26/05/17 Птн 13:54:38  153855511
>>153855229
А мы не ждём, что оно четыре раза повторится. Повторилось два - давай досвиданье, ответ готов.
Аноним 26/05/17 Птн 13:54:59  153855529
>>153851859 (OP)
А кто-нибудь уже предлагал тупо сложить все числа в массиве?
Аноним 26/05/17 Птн 13:59:47  153855800
Пиздец вы тупые.

Сложить всё и вычесть N*(N+1)/2.
Всё. Время линейное, память константная.
Аноним 26/05/17 Птн 14:00:18  153855837
>>153855529
Ту так это сразу "мы вам перезвоним" же.
Аноним 26/05/17 Птн 14:00:54  153855859
>>153855800
И переполнение типа более чем на 90% случаев
Аноним 26/05/17 Птн 14:06:02  153856153
>>153855859

У тебя "больше чем в 90% случаев" массивы больше 2^32 элементов?

Ну хорошо - тогда уточнение: выполнять все операции по модулю P, где P > N+1 и не делится на 2.
Аноним 26/05/17 Птн 14:06:11  153856166
>>153855800

Сделай это на массиве
1 2 3 4 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 9 10
Условиям задачи он удовлетворяет.
Успехов, кек.
Аноним 26/05/17 Птн 14:09:31  153856357
>>153856153
Триггер тут "Сложить всё". Меня однажды завалили на этой задачке в яндексе, когда устраивался. Сказали мол переполнение будет, досвидос.
Аноним 26/05/17 Птн 14:14:20  153856633
>>153851859 (OP)
Берем переменную-аккумулятор равную нулю.
Пробегаемся по массиву и ксоким аккумулятор с индексом элемента и со значением по этому индексу.
Аноним 26/05/17 Птн 14:15:16  153856687
>>153856357
В перле не будет.
Аноним 26/05/17 Птн 14:16:38  153856760
>>153851859 (OP)
Просуммировал всё и вычел n(n+1)/2, получил результат.
Аноним 26/05/17 Птн 14:21:20  153857003
>>153856760
Нихуя не понял.
Возьмем массив [1, 1, 1]
Просуммируем, получится 3.
Вычитаем 3(3+1)/2, получается 6.
ЧЯДНТ?
Аноним 26/05/17 Птн 14:21:39  153857017
>>153857003
то есть получается -3.
Аноним 26/05/17 Птн 14:23:06  153857099
>Нужно указать, какой элемент в массиве повторяется.
А вообще вы похоже неправильную задачу решаете.
Нужно указать элемент, а не значение. То есть ответом должны быть индексы.
Аноним 26/05/17 Птн 14:26:14  153857250
>>153857003
>Возьмем массив [1, 1, 1]
Так ты бери который имеет смысл по условию.
n = 3,
{1,2,2}
1+2+2 = 5
3(4)/2 = 6
6-5 = 1
1+5 = 6
6/2 = 3
Ответ: третий элемент.
ОЧЕВИДНО ЖЕ
Аноним 26/05/17 Птн 14:27:49  153857333
>>153857250
>третий элемент
>третий
Но тут только нулевой, первый, и второй.
Аноним 26/05/17 Птн 14:28:18  153857359
Бля, я решил.

for i in array:
    array.pop(i)
    if i in array:
        print(i)
Аноним 26/05/17 Птн 14:29:12  153857408
>>153857359
Время не константное.
За питонизм получаешь золотого змея. За него же получаешь кресты точены на стул.
Аноним 26/05/17 Птн 14:29:41  153857426
>>153857250
В условии сказано что количество повторений может быть любым.
Из этого следует что числа не обязаны принимать каждое значение, они только МОГУТ.
Аноним 26/05/17 Птн 14:30:03  153857440
>>153857359
>if i in array:
Тут неявно O(n). Общее время будет O(n^2).
Не говоря уже что нельзя менять длину листа когда обходишь его
Аноним 26/05/17 Птн 14:30:38  153857473
>>153857426
Тогда это не решается.
Аноним 26/05/17 Птн 14:31:04  153857500
>>153857408
Что значит константное/неконстантное время? Я не погромист.
Аноним 26/05/17 Птн 14:31:41  153857541
>>153857440
>нельзя менять длину листа когда обходишь его
Кто мне запретит?
Аноним 26/05/17 Птн 14:31:48  153857548
>>153857473
Идиот слепой, выше уже всё решили.
Аноним 26/05/17 Птн 14:33:30  153857639
>>153857548
>>> a = [0,1,2]
>>> for i in a:
... a.pop(i)
...
0
Traceback (most recent call last):
File "<console>", line 2, in <module>
IndexError: pop index out of range

>Кто мне запретит?
Аллах.
Аноним 26/05/17 Птн 14:34:31  153857689
>>153857639
>>153857541
Аноним 26/05/17 Птн 14:36:02  153857768
>>153857548
>https://ideone.com/dsYRDh
Ты про эту хуйню? За такой код в продакшене тебя отпиздят после работы. Код должен быть читабельным, а не макачьими плясками. Уволен нахуй, уёбок.
Аноним 26/05/17 Птн 14:36:44  153857807
>>153857639
for i in array:
if i in array.pop(i):
print(i)
а так?
Аноним 26/05/17 Птн 14:38:02  153857871
>>153857768
Всё читаемо же, если ты не довн.
Мимо
>>153857807
Очевидное TypeError: argument of type 'int' is not iterable
Ты толстишь что ли?
Аноним 26/05/17 Птн 14:41:19  153858044
>>153857871
Нет, не читаемо, все хуита, а ты дебил и позер. Пошел на хуй.
Аноним 26/05/17 Птн 14:42:16  153858095
>>153858044
Но ведь если ты не можешь прочитать простенький код, то дебил - это ты. Зачем вообще ты сидишь в треде по алгоритмам? Пиши на пыхе что-нибудь, запихивай данные в базу. На это ты сгодишься.
Аноним 26/05/17 Птн 15:01:24  153859123
>>153857871
Почему сразу толстишь, я просто эникейщик.
Аноним 26/05/17 Птн 15:28:25  153860600
>>153851859 (OP)
n = rand(1,100);
a = generate_rand_array(1,n);
for i 1 to n+1 do
{
if (a > n) {
z = a - n;
} else {
z = a;
}
if (a[z] > n) { echo i . 'пиймав на вила'; }
else {a[z] = a[z] + n}
}
не прогонял. z - твоя константа, время линейное
Аноним 26/05/17 Птн 15:30:18  153860698
>>153860600
n = rand(1,100);
a = generate_rand_array(1,n);
for i 1 to n+1 do
{
if (a > n) {
z = a - n;
} else {
z = a;
}
if (a[z] > n) { echo i . 'пиймав на вила'; }
else {a[z] = a[z] + n}
}
быстрофикс
Аноним 26/05/17 Птн 15:31:34  153860763
>>153860698
сука йобаная вакаба не ест скобочки с i

n = rand(1,100);
a = generate_rand_array(1,n);
for p = 1 to n+1 do
{
if (a[ p ] > n) {
z = a[ p ] - n;
} else {
z = a[ p ];
}
if (a[ z ] > n) { echo i . 'пиймав на вила'; }
else {a[ z ] = a[ z ] + n}
}
Аноним 26/05/17 Птн 15:38:26  153861108
>>153860763
Ну напиши ты в ideone или в wepaste хотя бы.
Аноним 26/05/17 Птн 16:25:19  153861713
>>153861108
https://ideone.com/GWyt8R
Аноним 26/05/17 Птн 16:30:21  153861877
>>153861713
>https://ideone.com/GWyt8R
>пиймав на вила
Проiiграв.
Аноним 26/05/17 Птн 16:34:11  153862028
>>153861713
Вроде должно работать, наверно. Принцип как тут.
>>153852886
Аноним 26/05/17 Птн 16:35:19  153862075
Оп-хуй, пили ещё задач. Годно.
Аноним 26/05/17 Птн 16:41:21  153862292
>>153853167
Это не питона вопрос, а алгоритмов.
Python Algorithms isbn: 978-1-4302-3238-4
Аноним 26/05/17 Птн 16:41:57  153862319
>>153851859 (OP)
Что значит какой элемент повторяется? Что если несколько элементов повторяются?
Аноним 26/05/17 Птн 16:58:47  153862387
>>153851859 (OP)
Суммируешь все элементы массива
Вычитаешь из массива сумму от 1 до N
Аноним 26/05/17 Птн 16:59:10  153862399
>>153862319
По условию повторяется только один.
Аноним 26/05/17 Птн 17:00:32  153862441
>>153862387
>Вычитаешь из массива сумму от 1 до N
из суммы, конечно же
Аноним 26/05/17 Птн 18:55:58  153864179
>>153851859 (OP)
Не знаю ОП тут ли ты. Решается хэш таблицей. Хэш таблица это такая штука... короч, в шарпе есть хэш таблица и при добавлении в нее элемента, она (функция Add) выдает тру если элемент в таблице уже был. Считаешь Тру перебором значений первичного массива. Радуешься жизни.
Аноним 26/05/17 Птн 18:57:48  153864259
>>153864179
добавлю. хэш таблица выдает за О(1), поэтому при n элементах получается ровно линейное время.
Аноним 26/05/17 Птн 19:18:56  153865203
>>153864259
> и константу памяти
И тут ты соснул с проглотом
Аноним 26/05/17 Птн 19:21:30  153865331
Бля, ебать ребята вы умные. Как стать таким же?
Аноним 26/05/17 Птн 19:23:13  153865429
>>153862387
Чот взлольнул. И ведь работает.
Аноним 26/05/17 Птн 19:51:15  153866817
>>153865331
а нихуя. у тебя может быть дохуя повторений одного числа
Аноним 26/05/17 Птн 19:52:13  153866870
>>153866817
По условию не может.
Аноним 26/05/17 Птн 19:52:41  153866906
>>153866870
Ах ты ж блядь, в глаза долблюсь. Ну ладн.
Аноним 26/05/17 Птн 19:57:39  153867171
Циклически проходишь по массиву, каждый непосещенный элемент a ставишь на место a[a], элемент с его места переставляешь так же. Когда очередное попадает в ячейку, где стоит такое же число, как и должно быть, ты нашёл повтор (одно число стоит на месте, другое ты переместил). Линейное время работы (одна операция с каждым элементом), две переменные (указатель на элемент массива и временная переменная).
Аноним 26/05/17 Птн 19:59:02  153867248
>>153867171
Двач портит разметку. Каждый элемент массива перемещаешь в ту ячейку, индексом которой является значение этого элемента.
Аноним 26/05/17 Птн 19:59:14  153867260
>>153867171
у нас есть победитель
Аноним 26/05/17 Птн 19:59:53  153867294
>>153851859 (OP)
Иксором все элемнты проходишься и получаешь ответ, задача для 5б класса.
Аноним 26/05/17 Птн 20:02:03  153867392
>>153867171
Лоллирую. Когда вместо программирования используют логику.
Аноним 26/05/17 Птн 20:05:05  153867558
>>153867392
Лол, когда не знают, как описывают алгоритмы.
Аноним 26/05/17 Птн 20:08:11  153867708
>>153867558
Ну, вот если бы оно работало для произвольных чисел а не для [1..n], вот тогда это хотя бы как-то можно было назвать. Охуеть, блядь, алгоритм.
Аноним 26/05/17 Птн 20:09:49  153867771
>>153867708
ты довн, оно и должно работать для [1..N]
Аноним 26/05/17 Птн 20:13:27  153867936
>>153867708
ТИМЛИД ВРЫВАЕТСЯ В ПОМЕЩЕНИЕ
@
СЫЧЁВ БЛЯДЬ СРОЧНО У НАС ПРОЕКТ НЕ ЗАКРЫТ ПИШИ ЕБАНЫЙ МОДУЛЬ
@
КИДАЕТ ТЗ НА СТОЛ, ЗАТЯГИВАЕТСЯ ВЕЙПОМ, ХЛОПАЕТ ДВЕРЬЮ
@
ВЕЧЕРОМ ВВАЛИВАЕТСЯ В ОФИС, ПРОСИТ ПОКАЗАТЬ, ЧТО СДЕЛАЛ ЗА ДЕНЬ
@
А НУ НОРМ НО ЧОТ МОГЛО БЫТЬ ЛУЧШЕ, ТЫ НЕ МОГ СДЕЛАТЬ ЧТОБ ПОД ЛЮБЫЕ ВХОДНЫЕ РАБОТАЛО А НЕ ТОЛЬКО КАК В ТЗ?
@
ПРЕМИЮ ТВОЮ ВЫПИШУ НА СЕБЯ
Аноним 26/05/17 Птн 21:00:07  153870241
>>153867171
лел. конечно собъется когда вдруг на месте i сгенерится число i.
>>153851859 (OP)
создаешь зануленный массив длинной N+1
проходишь по оригинальному массиву, i во втором массиве сравниваешь с нулем. если да - меняешь на единичку, если нет - каунтер повышаешь на единичку.
Аноним 26/05/17 Птн 21:06:12  153870576
>>153862292
Но алгоритм потом вбиваете же в какой-нибудь язык программирования
Аноним 26/05/17 Птн 21:08:36  153870718
>>153870241
а вероятность первого пункта - 1- (n!)/(n)^n
что по формуле Стирлинга стремится к 1 для больших n. Учи матан>>153867171
Аноним 26/05/17 Птн 21:09:19  153870764
>>153870241
пардон ый элемент
Аноним 26/05/17 Птн 21:09:39  153870777
>>153870764
iтый блять
Аноним 26/05/17 Птн 21:12:45  153870950
>>153870718
и тервер.
Аноним 26/05/17 Птн 21:20:04  153871373
>>153851859 (OP)
myarray = ()
foreach(array as elem){
if( not_in_array( myarray, elem ) ) {
myarray[elem]++
}
}
unset(myarray, elem = 1)

foreach(myarray as key val){
print key 'повторяется' val 'раз'
}
Аноним 26/05/17 Птн 21:37:54  153872398
>>153870777
>>153870950
>>153870764
>>153870718
Я не прав. Тот парень со сменой элементов прав. Сорян. Красавчик че.
Аноним 26/05/17 Птн 21:38:12  153872414
>>153870777
>>153870950
>>153870764
>>153870718
Я не прав. Тот парень со сменой элементов прав. Сорян. Красавчик че.
Аноним 26/05/17 Птн 21:39:01  153872461
Складываешь все числа, считаешь сумму от 1 до n по формуле, вычитаешь из первого второе
Аноним 26/05/17 Птн 21:41:23  153872602
>>153851859 (OP)
>N+1
>от 1 до N
Ебать ты тупой. То есть, допустим у нас есть масив длиной 6 (N=5) с числами 1 2 3 4 5? Где ещё одно число, сучка?
Аноним 26/05/17 Птн 21:48:13  153873003
>>153872602
Хуя ты довен.
Аноним 26/05/17 Птн 21:48:26  153873019
>>153872414
Единственно что нужно добавить. Что после сравнения и перемещения нужно снова проверить перемещенный с того места элемент и если его i не совпадает - переместить(т.е. запустить рекурсию по элементу до тех пор пока либо не переберется весь массив (тогда значение в ячейкие совпадет с порядковым номером) либо пока не найдём равное значение. Тогда из рекурсии выходим и идём к следующему элементу
Аноним 26/05/17 Птн 21:49:23  153873072
>>153851973
[eq
Аноним 26/05/17 Птн 21:55:00  153873370
>>153872602
>1 2 3 4 5
Может быть и
1 2 3 4 5 5
и
1 2 3 4 4 4
Аноним 26/05/17 Птн 21:59:17  153873590
Суммируешь все элементы и вычитаешь сумму от 1 до N
thread ne chital
Аноним 26/05/17 Птн 22:00:01  153873634
>>153873590
Бля, я даун, они ж повторяться могут
Аноним 26/05/17 Птн 22:24:58  153875082
>>153873370
Бля я думал это по порядку типа [1; N] (что даже читается "от единицы до N").
Аноним 26/05/17 Птн 22:26:18  153875153
>>153873003 >>153873370
Блять нельзя написать "каждое число". Взяли написали "все числа".
Аноним 26/05/17 Птн 22:33:01  153875550
>>153851859 (OP)
Если в массиве повторяется только одно число, а все остальные от 1 до Н, то элементарно - считаем за константу арифметическую последовательность от 1 до Н, затем за линейное время считаем сумму всех элементов и за константу вычитаем одно из другого. Это ответ.
Аноним 26/05/17 Птн 22:33:58  153875609
>>153875550
еще один тред не читал. довен
Аноним 26/05/17 Птн 22:36:28  153875761
>>153851859 (OP)
>N+1
>от 1 до N
>Повторений может быть сколько угодно
Нет, в таком случае повторение может быть только одно.
Аноним 26/05/17 Птн 22:37:17  153875809
>>153873370
>1 2 3 4 4 4
Не может, потому чтов этом нет 5
Аноним 26/05/17 Птн 22:42:21  153876139
>>153875809
может не быть пятерки. единственное ограничение на массив - элементы не превосходят N
Аноним 26/05/17 Птн 22:52:52  153876773
14894310145050.jpg (32Кб, 604x352)
Я не кодер, но задача показалась мне интересной.
Что значат 2 условия в ОП посте?
Аноним 26/05/17 Птн 22:59:33  153877207
сверяешь первый со вторым и до конца массива - учитываешь результат (строишь алгоритм так чтоб при совпадении не попало в повторное сравнение).
сверяешь второй с третьим и до конца массива (строишь алгоритм так чтоб при совпадении не попало в повторное сравнение).
и так далее.
Аноним 26/05/17 Птн 23:02:05  153877366
>>153876773
У любого алгоритма (обычно имеется ввиду однообразно повторяющиеся, циклические штуки) есть сложность. Например, если обработка 10 элементов (цифр, например) требует 100 циклов вычислений, то алгоритм имеет степень сложности nn - квадратичный. "Линейная" сложность - это когда на n элементов нужно n+a или, в худшем случае, na при a<n циклов.

Константа памяти - конкретно здесь значит хуйню, но в общем случае имеется ввиду, что памяти для решения выделяется конечное количество, причём логически "подходящее" под условие задачи, чтобы для итерации 10 целочисленных значений твоей проге не требовалось 10 Гб памяти.
Аноним 26/05/17 Птн 23:02:56  153877422
>>153877366
Блядская разметка.
Аноним 26/05/17 Птн 23:13:50  153878007
>>153877366
>конкретно здесь значит хуйню
Конкретно здесь это означает, что нельзя создать контейнер размера N, в котором отмечать, встречалось такое число или нет.
Аноним 26/05/17 Птн 23:35:39  153879413
>>153877366
>"Линейная" сложность - это когда на n элементов нужно n+a или, в худшем случае, na при a<n циклов.
А вот тут какая? >>153877207
Аноним 27/05/17 Суб 00:58:38  153882616
>>153879413
Ещё немного, и будет "пузырёк".
Аноним 27/05/17 Суб 01:39:26  153883923
>>153853960
очень хорошо, а что мы делаем когда все биты заняты чем-то полезным.
Аноним 27/05/17 Суб 06:05:03  153888499
>>153851859 (OP)
Достаточно попробовать выстроить массив по порядку. Если a != i, то меняем местами элементы a и a[a], если они равны, то печатаем результат и выходим
Аноним 27/05/17 Суб 06:24:39  153888685
https://pastebin.com/wsTQ2sak
Аноним 27/05/17 Суб 06:59:45  153889110
https://pastebin.com/bZEwWVAi
Аноним 27/05/17 Суб 07:03:44  153889172
>>153889110
Ой, извините, совсем хуйню написал, не читайте, пожалуйста.
Аноним 27/05/17 Суб 08:51:09  153890888
>>153852991
Хохлогромист

[Назад][Обновить тред][Вверх][Каталог] [Реквест разбана] [Подписаться на тред] [ ] 154 | 5 | 51
Назад Вверх Каталог Обновить

Топ тредов
Избранное