ПРОГРАММИРОВАНИЯКак научиться? Имею ввиду не выучить синтаксис, а именно научиться решать задачи.Я просто как-то не догоняю.Вот, например, задача: дан массив чисел, найти и вывести все числа которые повторяются. Вывести однократно. Я сделал цикл, который сравнивает каждое число со следующими. При этом добавил условие, что если индекс чисел одинаковый, то пропускается итерация.Т.е. берется число 1, сранивается с числами 2,3,4...и т.д. Далее берем число 2 и сраниваем с 1,3,4...И что дальше?Если записать в переменную, то там останется только последнее из повторяющихся чисел. Что делать дальше? и как? Массив? Но как объявить безразмерный массив? или как-то по-другому можно сделать? Вот как я должен научиться такое решать?
На каком языке пишешь?
Если это python, то есть специальный "массив", который называется tuple, в нем нет повторений
Оп, все просто. Если дан массив, то обязательно дан его размер. Если не дан, то он считается динамическим. А задача решается проще простого: представь, что ты работорговец и среди всех рабов тебе нужно выяснить, какие национальности у тебя повторяются. Ты строишь их в шеренгу, берешь первого и сравниваешь со всеми остальными. Если встретился хоть один с той же национальностью - заносишь его в другой массив этих национальностей. И так с каждым, предварительно проверяя, что такая национальность еще не бралась (то есть отсутствует в том массиве национальностей. Ну, или используешь коллекцию "множество", которое исключает повторения.)
>>163305671 (OP)Какието ограничения есть на числа в массиве? Например только целые и не больше скажем 1000?
>>163306158С#
>>163306219Сажи тебе, долбаеб, tuple - это кортеж, и он неизменяемый, повторы в нем допускаются. А без повторений как раз set, то есть множество.
>>163306305Целые числа. Случайные
>>163306298Так не, я нешел способ найти одинаковые числа Я не догоняю что с ними дальше делать? Заносить в массив? Но его нужно о сперва создать и указать размерность.
>>163305671 (OP)> Если записать в переменную, то там останется только последнее из повторяющихся чисел. Так записывай в массив, хуле ты.
>>163306438ArrayList. Гугли. Позволяет добавлять в конец новые элементы. Но лучше использовать HashSet, потому что там по умолчанию элементы не повторяются, тогда алгоритм вообще простейший.
Нашел - вывел, нашел - вывел
>>163306373Можешь сделать Dictionary, в котором ключем будет int, а записью bool. Проходишся по массиву, если в словаре нет записи с этой цифрой (нет записи у которой ключ равен текущей цифре из массива) то добавляешь ее в словарь, bool ставишь на false. Если есть, то bool ставишь на true. Потом выводишь ключи всех записей в словаре у которых bool равен true.Один раз всего прйтись по массиву надо, заместо дохуя.
>>163306570Не подходит, у него числа должны быть выведены только 1 раз
>>163306597Нашел, завершил цикл, вывел
>>163306438>Но его нужно о сперва создать и указать размерность.Очевидно, повторяющихся элементов будет не больше, чем в исходном массиве. Так что создавай такого же размера и храни в отдельной переменой количество этих повторяющихся элементов.
>>163306528>>163306583Блядь, эти задачи не на знания финтифлюшек из апи, а на умением алгоритмы составлять. Такую хуйню по идее нужно делать только самыми базовыми штуками.
>>163305671 (OP)>>163305671 (OP)>Как научиться? Имею ввиду не выучить синтаксис, а именно научиться решать задачи.а нахуй оно тебе надо?я вот умею решать задачи, в итоге щас сижу как фуфел за лаптопом, и разбираю какую-то хуйню муйню, которую принёс манагер. Скушна, лучшеб в геологи пошёл. Или в физики ядерщики.
>>163306800А плотят сколько?
>>163306800Будто там бы ты не сидел над какой-нибудь унылой фигней
>>16330682650 в 700к мухосранске, рашка, джава>>163306874ну хуй знает, последнее время я только сопли за нубами подтираю и баги фиксю. Ебаны интерпрайз
>>163306640Так в этом массиве лишние элементы будут нулями забиты. Как я их потом аыведу без нулей?
>>163307197> и храни в отдельной переменой количество этих повторяющихся элементов.
>>163305671 (OP)sort(a)for (i=0:a.length-1)if (a != a[i+1]) print(a)
>>163307497жопочтецмы вам перезвоним
>>163307550Не надо звонить, меня моя работа устраиваетПеречитал условие. ОП даун
sort(a)i=0while(i < size-1) {if (ai == ai++) {print(ai)while(i<size-1 && ai == ai++)}}
>>163305671 (OP)Короче, ты зря проверяешь каждый раз массив сначала без текущего, проверяй со следующего элемента по отношению к текущему. А то выходит, что ты сравнил 1 с 2, потом 1 с 3, а дальше сравниваешь 2 с 1, что уже было.
>>163310447А вообще, ОП, задрочи алгоритмы, что-то типа "Алгоритмы. построение и анализ." Кормена.
>>163307362А я смогу создать массив размерности "переменная", если эта пеоеменная уже потом определяется?
>>163310447Ну понятно, да. Но как это сделать?
>>163305671 (OP)Тут 2 варианта:1. Сортируй массив и обходи один разsort(arr);for(int i = 0; i < length(arr); ++i){ if(arr == arr[i+1]){ print arr; tmp = arr; while(arr[++i] != tmp); }}2. Используй set(апи или сам напиши бинарное дерево, это несложно)Set<int> setfor(int i = 0; i < length(arr); ++i){set.insert(arr);}for(int i = 0; i < length(set); ++i)print set
>>163305671 (OP)Чет мне кажется раньше эту задачу уже вбрасывали тут. Только там было еще ограничение на линейное время выолнения и констрантную память, и в таком виде у нее нет решения. Анон троллил двач так.
>>163317353>ограничение на линейное время выолнения и констрантную память, и в таком виде у нее нет решенияНа самом деле есть, если в условии будет указан макс значение.
>>163305671 (OP)>научиться решать задачиБЕРЕШЬ@РЕШАЕШЬИ больше никак
>>163317157И что? Работает? Просто моя твоя не понимать. Я на с# только синтаксис знаю.{1,2,2,3,4,4,5,6}Нужно чтобы вывелось в итоге: 2,3У тебя так сработает?
бамп
>>163306219В питоне есть еще более простой вариант.>>> a = [1, 2, 3, 2, 4, 1, 2, 2, 2]>>> set(a){1, 2, 3, 4}
>>163305671 (OP)Не знаю, как в других, но в питоне есть метод count()>>> a = [1, 2, 3, 2, 4, 1, 2, 2, 2]>>> a.count(1)2
>>> a = [1, 2, 3, 2, 4, 1, 2, 2, 2]>>> from collections import Counter>>> Counter(a)Counter({2: 5, 1: 2, 3: 1, 4: 1})
https://www.codewars.com/Оп, тут можешь немного поучиться именно задачи простенькие (и не очень, на высоких уровнях) решать.Если не можешь решить - открываешь решение и смотришь, как люди решали и делаешь из этого выводы.
>>163305671 (OP)А если просто:1- отсортировать массив по возрастанию\убыванию2- пройтись сравнением от начала и до конца3- при необходимости го то 1Должно сработать же.
>>163305671 (OP)Читай книги/публикации по алгоритмам, скачивай открытые исходники, изучай их, найди ресурс с задачами по твоему ЯП и задрачивай их. Придумывай себе задачи и реализуй их на ЯП. Выкладывай код на критику или подобный сайт, где проведут код-ревью.
>>163306747ну двухмерный массив возьми
Ловите простую задачу, которую может даже школьник решить.Дана пирамида как на картинке. На вводе приходит целое число, вам нужно вернуть сумму всех чисель на этом ряду.Допустим при вводе 1 - вернет 1. При 2 - вернет 8 и так далее.
Я бы брал каждый элемент n входного массива и присваивал единицу элементу n другого пустого массива. Потом вывел на экран номера элементов второго массива, значение которого == true.
>>1633197812, 4 может?Вообще может быть много подходов, но если ты не можешь в элементарный синтаксис языка тебе надо его доработать на менее сложных задачках просто чтоб отложился, потому что ты ни один листинг прочитать не сможешь.
>>> a = [1, 2, 3, 2, 4, 1, 2, 2, 2]>>> b = set(a)>>> [i for i in b if a.count(i) > 1][1, 2]
Не спрашивать совета на двачах, для начала ;)Лучше всего просто сидеть над задачей, пока тебя не осенит. Это самое охуенное ощущение, ради которого стоит этим заниматься. А если уж задача вот просто никак не хочет сдвигаться с места, то лучше найти ее решение от толкового человека, а тут половина питоноебов, которые привыкли не решать задачи, а юзать системные функции, которые их решают.Вообще, учиться лучше на языках низкого уровня, питон для больших дядей.Конкретно твоя задача проще всего решается перебором или созданием дополнительного массива, в который ты заносишь только повторяющиеся числа. Динамический массив в C# есть разумеется и проще всего его реализовать системным классом List<T>Даю алгоритм, а ты попытайся закодить:List<int> введенный массивList<int> массив с повторамипока (не пройдем весь введеный массив){ если (элемент введенного массива не содержится в массиве с повторами) { проверяем, если ли его повторы во введенном массиве и если есть хотя бы 1 повтор, заносим его в массив с повторами}}Выводим массив с повторами (можно заранее отсортировать для красоты)
>>163324440Мы вам перезвоним.
>>163324132Вот выводит только последний. Если добавить сам вывод в последний цикл, ото будет выводить все одинаковые числа 2,2,3,3, например. Не подскажите что исправить?static void Main(string[] args) { int[] arr1 = new int[] { 1, 2, 2, 3, 3, 4, 5 }; int index1 = 0; for (int i = 0; i < arr1.Length; i++) { for (int j = 0; j < arr1.Length; j++) { if (i == j) continue; else if (arr1 == arr1[j] ) { index1 = arr1; Console.WriteLine(index1); } } }
>>163324440>а тут половина питоноебов, которые привыкли не решать задачи, а юзать системные функции, >проще всего его реализовать системным классом List<T>А слабо без системных плюшек?
>>163324532Так и знал, что надо РНР учить было, сейчас зарабатывал бы 300к/сек
>>163324440Ну конечно же лучше каждый раз изобретать велосипед и биты перебирать. Я понимаю, что есть места, где это необходимо, но применять низкоуровневое программирование везде - это полный тупизм.Это как для того, чтобы что-то написать, ты изобретаешь ручку и бумагу, создаешь их с нуля на станках, которые ты так же изобретаешь и создаешь с нуля.
>>163324556Послушай, тебе уже несколько раз сказали два правильных решения. Будет контрпродуктивно писать за тебя код. Извини.
>>163324440>проще всего решается перебором или созданием дополнительного массиваВот из-за таких уебанов как ты нынче даже сраный калькулятор требует не менее 512Мб оперативки, а ОС жрут ресурсы как не в себя. Тебя вообще к программированию и технике подпускать нельзя.
>>163305671 (OP)>Вот, например, задача: дан массив чисел, найти и вывести все числа которые повторяются.Нет таких задач в программировании, не трать время зря.
>>163305671 (OP)Сейчас сижу, читаю этот тред, нихуя понять не могу, о чем он... Сравни 2 и 3, сравни 1 и 2, сравни 3, 1 и 2, а затем посмотри на массив. Ебанутые какие-то.мимо-гуманитарий
>>163324807Зато он выебывается, что не использует встроенные методы и чужие библиотеки. Тупой пидрила короче.
>>163324721vi или vim стоит практически на каждом сервере, этот ваш емакс я не видел ни разу.
>>163324633ОП говорит, что учится на С#, вот я и описал, как бы я это делал на С#. На паскале каком-нибудь пришлоось бы поебаться с двумя вещами:1) Объявление динамического массива2) Функция Contains(T), которая определяет, есть ли в массиве T.Первая решается минут за 5, со второй пришлось бы поебаться:public bool Contains<T>(T x){ ret = false; int i = 0; while (i < массив.Length && !ret) { if (массив == x) {ret = true} ++i;} return ret;}
>>163324666Человек учится. Я на работке как бы тоже биты не перебираю и юзаю системные плюшки направо и налево, но учиться на языке, который мало того, что за тобой мусор убирает, так еще и кучу задач решает за тебя это так же глупо, как не переходить на высокоуровневые языки, когда пришло время.
>>163324832А какие есть?
>>163324834Не завидуй. Для матана много воображения нужно.
>>163324916Ты рекомендовал не использовать системные функции, но сам использовал системную.
Создаешь мапу <Число, Количество повторов>, проходишь по массиву и для каждого числа создаешь запись/прибавляешь повтор если уже создано.Потом выводишь те ключи, значения при которых > 1. Сложность O(N), этого хватит.мимо-джаваист
>>163324998Как раз таки лучше начать с простого. Ты же не будешь садиться сразу на шоссейный велосипед или горный? Ты сначала оседлаешь трехколесный, потом может быть пересядешь на двухколесный, но с страховочными колесиками или пропустишь этот шаг.Так же и тут. Вместо огромного объема знаний и основ и перекладывание бит - можно начать с чего-то простого, которое похоже на другие языки, но симпатичнее и проще, а потом уже переходить на более сложные языки если в этом будет необходимость.
>>163324832>Нет таких задач в программированииБазовая задача для новичков. Решается в 2 действия опубликованных ещё при Ленине без введения дополнительного массива, написания велосипеда и выстрела в ногу. Просто головой подумать надо.
>>163325100Создать класс, сущность базы данных, связать элементы класса с интерфейсом, создать интерфейс и так далее. Никакие "найдите повторяющиеся числа в массиве" никогда не встречаются в реальном программировании ни в каком виде. Для нахождения того что нужно скорее всего уже написано метод, но это еще и не нужно.
>>163325298Я понимаю, что это можно сделать в двойном цикле, но в реальном программировании нет таких задач, только в блядских учебниках.
>>163325370>>163325327Давайте ссылки на своих гитхабы.
>>163325370>в реальном программировании нет таких задачЛюбой алгоритм поиска.
>>163325425Это всё я написал и у меня нет гитхаба. А должен быть?Ну очевидно можно еще сортировку сделать и сравнивать потом n с n+1 а потом проскакивать все многократные повторения. >>163325494Ты утверждаешь, что это требуется в любом алгоритме поиска?
>>163305671 (OP)> Вот, например, задача: дан массив чисел, найти и вывести все числа которые повторяются. Вывести однократно. Изучай стандартную библиотеку своего языка.Разбивай задачу на более мелкие и смотри как их можно решить.
>>163325527> у меня нет гитхаба.Значит ты простой кукарекающий петушок, который не имеет отношения к программированию.Так что пиздуй в свой петушинный угол.
>>163325669Почему же? Я закончил мгу и работаю в энтерпрайзе, и я имею прямое отношение к программированию.
>>163325707Ну так неси пруфы, перекладывать бумажек.Ебучий фантазер
>>163325527Это алгоритм по поиску значения и елси ты пишешь одни хелловорлды и сидишь на сосаче, то это не значит, что никому такие вещи не нужны. Уметь в такие вещи надо. Или мы получим очередного Васяна с бесконечными велосипедами и костылями в простых вопросах.
>>163325742github.com/torvaldsДержи
Что и требовалось доказать.
>>163325776Пошли маневры. Нужно уметь признавать свои обсеры. Если так хочешь доказать, что я не прав, потому что ты агрессивный мудак - то приведи пример, где в реальной жизни может понадобиться данный поиск повторений и однократный вывод.
Где ошибка и как сделать правильно?static void Main(string[] args) { int[] arr1 = new int[] { 1, 2, 2, 3, 3, 4, 5 }; массив создаем int index1 = 0; for (int i = 0; i < arr1.Length; i++) здесь будет браться число, которое будет сравниваться со всеми остальными { for (int j = 0; j < arr1.Length; j++) здесь идет сравнение как раз 1 числа с остальными { if (i == j) continue; это чтобы не сранивать 1 с 1. else if (arr1 == arr1[j] ) а вот тут находим как раз одинаковые числа. а вот что дальше делать? { index1 = arr1; если записать в перемнную, то будет только 1 число сохранено.если сразу на вывод тут же, то будет выведено 2,2,3,3, а надо 2,3 Console.WriteLine(index1); } } }
>>163325742С чего ты взял, что я тебе должен что-то доказывать?
>>163325298Ну так напиши, а не кидайся понтами.
>>163325866>не могу решить простую задачку для школьников>считаю себя прогроммистом>нинужо! неиспользуется! кукареку!>все обосрались!Ты так толстишь или серьёзно такой даун? С твоей тухлой логикой 3\4 школьной программы можно под нож пускать просто потому, что 95% ей не воспользуются.
>>163325937Что написать?
>>163325284Плюсую. Никакого смысла пугать людей сложностями нет, поэтому всякие programming 101 и начинают с черепахи и сложения.Понятиям вычислительной сложности в любом случае научат на алгоритмах, так что тут лоулевел тоже мимо.
>>163325776Двачую этого
>>163326038Ну что значит, не может решить? Если в языке есть например есть конструкция list.count(value x), почему бы ее не юзать?У нас нет граничных условий.
>>163326073Решение отличное от "создать в памяти коллекцию для отслеживания количества повторов".
>>163326171Потому что суть задания тогда пропадает. Ты сам как бы должен ее написать.Нас так и учили: давали задание изобрести велосипед, а потом говорили: молодцы, но (СЮРПРИЗ) в языке это уже есть.В результате и мозги научаются алгоритмическому мышлению и потом необходимость в велике пропадает.
>>163325878Во втором цикле i к j приравняй, затем при встрече одинаковых элементов проверяй наличие этого элемента в новом массиве, если нет - заноси. Затем просто выводи получившейся массив и все
>>163326038Так я же решил, почитай мои посты. >С твоей тухлой логикой 3\4 школьной программы можно под нож пускать просто потому, что 95% ей не воспользуются.Полностью согласен с этим, я считаю, что было бы лучше, если бы в школе давали больше полезного знания и меньше бесполезного.
>>163325878https://ideone.com/KbmmZ8
>>163326434j к i верней
>>163305671 (OP)>Я просто как-то не догоняю.Все когда-то не догоняли. Терпение и практика.
>>163326038>просто потому, что 95% ей не воспользуютсяне 95%, а 100%
>>163326435И правильно. Нужно сократить всю историю до ВОВ. Русский язык до пары сотен слов и похуй на все правила, все равно мы не на диктанте большую часть времени. По математике оставить только сложение и вычитание. В химии только формулу спирта и то, что Менделеев ее придумал и он был Русским. Биологию нужно запретить, там пенисы и вагины в итоге обсуждают, греховно. Географию привязать только к изучению своего города или района и ключевые места в нем (магазины могут покупать рекламу в учебнике). Астрономию заменить на астрологию и научить 12 знакам зодиака и умению определять свой и вычитывать будущее в бесплатных газетах. Вот тогда заживем. И времени на поднятие скален будет больше.
>>163326450Да, работает. Спасибо. Буду разибраться.
>>163326435>Так я же решилТкни носом в алгоритм, будь бобр. А то я только упоминание про 2 цикла видел, что есть просто - пальцем в небо.Я предложил банальную сортировку и проход по массиву одной переменной. Проще и надёжнее ты эту задачу не решишь.
>>163326907ОП, могу повторить, что, подозреваю, эта задача по алгоритмам и тебе стоит довести элементарщину до подкорки перед тем как в это лезть. С алгоритмической точки зрения задача решена плохо, если что.
>>163326272>>163327050
>>163327050Слушайте этого
>>163326846> Нужно сократить всю историю до ВОВ.Да и после, история вообще не нужна, это просто занимательная информация не полезнее классической музыки или художественной литературы. > Русский язык до пары сотен слов и похуй на все правила, все равно мы не на диктанте большую часть времени.В общем-то да, единственная функция лингвистического языка - обмен информацией. Если знаний языка достаточно для однозначного обмена информацией - значит язык человек знает. Общие правила объяснить надо на уровне "казнить нельзя помиловать", в остальном же пустая трата времени, и полезно может быть только в качестве занимательной информации лингвистам на уровне исследований задорнова. >По математике оставить только сложение и вычитание.К сожалению большинству людей математика не нужна, как бы я её не любил. Не сложение и вычитание, побольше конечно, но производные никому нахуй не нужны. >В химии только формулу спирта и то, что Менделеев ее придумал и он был Русским. Химия вообще не нужна.>Биологию нужно запретить, там пенисы и вагины в итоге обсуждают, греховно.А вот биология нужна, но там объясняют всякую хуйню про аллельные гены, а потом люди не знают чем вирус от бактерии отличается, и что при вирусной инфекции нельзя лечиться антибиотиком. В биологии можно сделать огромный минус бесполезной и огромный плюс полезной информации. >Географию привязать только к изучению своего города или района и ключевые места в немАналогично можно было бы рассказывать полезную информацию про разные страны, а не изучать блядские субъекты эрэфии и рисовать контурные карты. > Астрономию заменить на астрологиюАстрономию не изучают в школах, слава аллаху
>>163327050>Я предложил банальную сортировку и проход по массиву одной переменной.Так и я предложил в том же посте, на который ты мне ответил: >>163325527>Ну очевидно можно еще сортировку сделать и сравнивать потом n с n+1 а потом проскакивать все многократные повторения. Какой же ты желчный долбоеб.
>>163327234Лол, что у человека в голове, то и в ИДЕ, точно.Ты хоть раз задумывался что в 7 лет нельзя определить, чем человек будет заниматься?
>>163327281>желчный долбоебТащемта, я просто предложил решение, а вот ты кукарекать начало про "нинужно" и кидаться говном. И кто тут у нас желчный долбоёб?
>>163327405И что дальше? Может человек хочет вообще заниматься тем, что в школе не проходят? Почему нужно обязательно нажраться этого бесполезного говна? Если у ребенка проблемы с определением профессии - то родителям пожалуй стоит этим заняться и поизучать разное. И как показывает практика, школа не гарантирует, что человек будет знать, чего он хочет. Очень многие не знают в 11 классе какие егэ сдавать.
>>163327546Бро а скажи лвл свой и сколько лет опыта. Просто интересно.
>>163327546>Тащемта, я просто предложил решениеНет, ты на меня накинулся с оскорблениями и начал обсирать без оснований. Вот например:>а вот ты кукарекать начало>про "нинужно"Ты всё еще не доказал обратного, только говном метаешься.>и кидаться говномНе проецируй, этим ты занимаешься. Я лишь сделал тебе замечание, что ты желчный злобный мудак, и оно не безосновательное, оно основано на неуместных оскорблениях, вместо аргументов. >И кто тут у нас желчный долбоёб?Всё еще ты.
>>163327405Можно. Локализация функциональных зон
>>163305671 (OP)>Если записать в переменнуюПиши функциональщину, будь мужиком.
>>163305671 (OP)А сразу распечатать найденное повторяющееся число не пробовал?
>>163327678Да как хочешь, поехавший.
>>163327766Это я поехавший-то? Это ты, и я даже знаю, что у тебя за диагноз: нарциссическое расстройство личности.
>>163327841Ты уже и психиатром заделался, что диагнозы по постам раздаёшь? Психиатр-погроммист чтоле, лол?
>>163305671 (OP)Не боись, у меня всегда такая хуйня что все кажется сложным, а потом через пару месяцев я удивляюсь, как я это не понимал раньше.
>>163327979Интересуюсь психиатрией, и не только. А ты кроме троллинга на дваче ничем больше не интересуешься? Видимо да.
>>163327559Во сколько предполагается лет поступать на высшее и сколько там учиться? Сколько тратить на переподготовку, если что? Так-то из школы вроде после 9 класса никто не запрещает валить в никуда. Работать младше у нас все равно нельзя. Чем заниматься?
>>163328062>Чем заниматься?Self improvement. Поиском и развитием своих талантов, а не выбором из сортов говна в школе.
>>163305671 (OP) Реши эту задачу сам в своей голове. Запиши по пунктам что ты делал. Переведи свой псевдокод в сисярп или на чем ты там пишешь.
Array(12,1,1,2,2,3,4,5,3,5,6,7,8,9,9,8,8,10,11).groupBy(identity) .withFilter {case (_, l)=> l.length > 1} map(_._2) foreach(l => println(l.head))
>>163328220А если массив 2 гига данных?
>>163305671 (OP)>Я просто как-то не догоняю.Ставь задачу и думай, как её решить. Делай различные улучшения и задачи конкретно под свои нужды. Например напиши сортировку двач картинок по общей цветовой палитре. Или детектор наготы, чтобы сортировать прон.
>>163328337Говнокодер пососет хуец
>>163327742Но тогда оно распечатаетмя столько раз, сколько повторяется
Помню в школе меня одноклассник одной времяубивалке научил. Берем тетрадь в клеточку и прописываем цифры от 1 до 15, причём, двузначные числа пишутся в 2ух клетках. И длина массива была фиксированной - 9 элементовПолучалось что-то вроде:1-2-3-4-5-6-7-8-9 (десятку пропускаем)1-1-1-2-1-3-1-4-15потом начинаем зачёркивать те цифры, которые находятся рядом и равны по горизонтали или диагонали. Потом зачёркиваем те, которые дают в сумме 10. Потом повторяем с равными и т.д., пропуская зачёркнутые. В результате получается что-то вроде0-2-3-4-5-6-7-0-00-0-0-0-1-3-1-4-05Когда сделать уже ничего невозможно, то просто переписываем дальше те цифры, которые остались и повторяем всё заново.Я много времени на уроках убил на это занятие, варьируя разные параметры. Когда подрос, то забыл про эту головоломку, но недавно вот вспомнил и всё не могу автоматизировать этот процесс, т.к. ленивое хуйло.А вообще, как задачка по программированию - интересная штука. Вот это может решить кто?
>>163328337А в чём проблема с 2мя гигами?
>>163328674Как ты их забьешь в свою программу? Через ctrlc ctrlv что ли?
>>163328047>>163327979>>163327841>>163327766>>163327678>>163327546>>163327281Вы такие пуси. Прям как семейная пара ссоритесь :3
>>163328382Вангую, что пососёт хуец пользователь, а говнокодеру ещё и производители памяти приплатят за поддержку продаж их китайской рассыпухи втридорога.
>>163328703А как опу надо"забивать" их в свою программу? Или в смысле нужна функция, принимающая на вход массив?
>>163328670Я тоже в такую хуйню играл и помнится даже какой-то простой способ нашел, как быстро выиграть, но мне сказали, что я читер и так нельзя было делать, хотя все по правилам было, но забил хуй потом на нее.
>>163328851Ну может он файл подключит, не ебу. Но в твоей программе это выглядит нереальным.
>>163328859>помнится даже какой-то простой способ нашел, как быстро выигратьА я находил - просто там правила немного меняешь и через пару переписываний у тебя там все цифры сходятся в нули. А если по-хардкору, то у меня просто уже внимания нехватало по полстраницы переписывать и сравнивать и я обсерался. Интересно, что думала моя маман, глядя на эти цифры в тетрадях. Наверное, что у неё выдающийся аутист растёт.
>>163328897Ну давай уточним, может я где-то неправильно понимаю: если повторяющиеся элементы встречаются строго один за другим, тогда можно сделать решение для любого размера файла и стримить файл. Если повторяющиеся элементы разбросаны рандомно по массиву, его всё равно надо грузить целиком в память. Или я не прав? (я недавно в кодинге)
>>163329006>А я находилИ я находилсельфикс
>>163329105> его всё равно надо грузить целиком в память.Нет. Можно отсортировать и потом уже повторяющиеся будут встречаться один за другим. Сортировка тоже не требует грузить массив целиком в память.
>>163329278>Сортировка тоже не требует грузить массив целиком в памятьА где он тогда сортируется?
>>163329410По очереди же. Весь целиком одновременно грузить не надо.
>>163329410Он имел ввиду, что памяти под второй массив выделят не надо. Для решения ОПовской задачи тут используется памяти ровно как в одном элементе массива - сперва для сортировки, а затем для сравнения. Входящие данные, обычно, тут не учитываются как оперативная память.
>>163323866Размер строк известен?
>>163329472Ты имеешь в виду external sorting?
>>163329410В стеке.
>>163329658Нет, просто в отдельный момент сортировки сравниваются только два элемента, а не все сразу. Можно распараллелить, но весь массив в память все равно в один момент не загрузится.
Сука бля.Сортируешь массив по порядку. Потом сравниваешь соседние позиции.
k:=0for j:=1 to n dok:=k+1for i:=1 to n doif a[j]=a then b[k]:=a[j]Потом сортируешь пузырьком и выводишь все элементыНадеюсь, не проебалсязатрахал паскашь, мимо-хуй из 11 класса
>>163329909паскаль*быстрофикс
>>163329909*a[j]=aеще один
>>163329909Да сука, короче а(джи)=а(и)
На самом деле сортировка более емкий процесс, чем поиск повторений, он она в себя включает этот поиск. Так проще написать, но дольше вычислять.
>>163329778А можно пример кода, сортирующий ебического размера файл? (если можно на Java, Scala или Python, ну может C я тоже пойму)
>>163329849Нет, нужно ещё один массив выделить для создания в памяти коллекции повторов с номерами элементов, а потом можно и ещё один - отзеркалить входящие данные. И елозить, елозить этими массивами друг по другу, используя коллекцию как смазку. А потом тебя в майкрософт кодить возьмут - там таких любят.
>>163329656В смысле, на картинке же все ясно. Каждый след ряд больше предыдущего на 1 цифру.
>>163330050Так же как и любая другая сортировка. Просто твоя подразумевает введение все чисел непосредственно в программу.
>>163330050Не было в задаче этого бреда.
>>163323866Хуйня же, номер строки не изменяется, меняются номера столбоцов, по ним и считаешь:от 1 до (скольки-то там)строка:=веденному числусумма:=сумма+элемент(строка не изменяются, столбцы зависящие от переменной в условии цикла)
>>163329656Даю небольшую подсказку если еще не дошло. Посмотри суммы хотя первых 3-4 рядов и подумай, что они тебе напоминают.
>>163328220Можно корочеdef sht[T](arr: Array[T]) = arr.groupBy(identity).collect { case (x, l) if l.length > 1 => x } foreach(println)
>>163330389Все гораздо проще. Номер строки в кубе и будет суммой всех чисел в строке.
>>163330558Слишком выебисто самому там что-то определять и выискивать закономерности, пограмма же считает за меня
>>163305671 (OP)Не пойму, тебе нужно задачку решить или решить вопрос "как научиться кодить"? Я не очень хороший программист, наверное сделал бы функцию для этого всего, в ней объявил бы массив, в который записываются числа, и если такое число уже есть, в этом массиве, его бы не выводил, если нету - выводил бы число и забивал бы в локальный массив. Чем плох такой подход - этот локальный массив занимает место в памяти, если чисел много - хуёво будет. По хорошему, нужно сначала отсортировать числа в массиве, затем проверять каждое число в цикле на схожесть с предыдущим. >Как научиться? Имею ввиду не выучить синтаксис, а именно научиться решать задачи.В универах учат вышмат, алгоритмы и структуры данных и т.д. Тебе тоже следует задрочиться алгоритмами, на них ведь все строится.>Но как объявить безразмерный массив?В скриптовых языках и так не задаёшь размер для массива, в С++ вроде есть для этого объекты array и vectorНа самом деле задача изишная
>>163330731Тебе буквально нужно посмотреть на 1 8 27 и понять, что это кубы.
>>163330832Ну смотри, чтобы написать пару лишних строк у меня ушло меньше времени, чем на выискивание и понимание алгоритма
>>163305671 (OP)Ещё один смырдяй полез в программирование и не может решить задачку для 1 класса. Рака жопы тебе.
>>163331369Ну это потому что ты ленивый и тебе проще построить новый куб и пропустить одно место, чем тупо прорубить дверь лол.
>>163331530Еще один гений, который родившись знал всё и вся на свете. Как же вас дохуя, гениев таких.
>>163331530Учитывая количество мамкиных девелоперов, гордо решающих за n^2, еще посмотрим, мож этот чему и получше научится.
>>163323866Там задачка просто на внимательность, а не на алгоритмы и логику.мимо
>>163332150>гордо решающих за n^2Непонел о чём ты.
>>163330049А вот об этом никто не подумал.
>>163332411https://ru.wikipedia.org/wiki/%D0%92%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D0%B0%D1%8F_%D1%81%D0%BB%D0%BE%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D1%8C_%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D0%B0
>>163332422Все об этом знают - не намного сортировка дольше, чем поиск совпадений. И там, и там используется операция сравнения много раз.И вообще, это звучит как оправдание.
>>163332673Насколько же ты ебанутый, что на простой вопрос отсылаешь человека на википедию со статьёй, длиной с хуй твоей мамки.
>>163306747HashSet, связный список - это не финтифлюшки из какого-то API (wtf?). Это базовые структуры данных.Тебе надо знать о них, уметь ими пользоваться. Тебе не обязательно реализовывать их каждый раз с нуля, но лучше знать как они устроены и в каких ситуациях работают быстро и когда медленно.Нет смысла ограничиавть себя, не используя настолько базовые и необходимые структуры данных. Ты все равно придешь к использованию связного списка, когда тебе понадобится массив с изменяемой длиной. Или сделаешь так как сделан List в C# - там внутри объявляется массив определенной длины и когда место заканчивается просто создается новый в 2 раза больше и в него копируется все из старого. Оба эти подхода имеют свои сильные и слабые стороны как с точки зрения производительности при различных операциях, так и по потреблению памяти.Тебе не нужно пытаться ограничить себя только статичными массивами. Такие структуры данных как связаные списки, деревья, хешсет тот же - это базовые вещи, тебе необходимо использовать их, чтобы эффективно решать задачи, а не изобретать каждый раз велосипед.
>>163330756>затем проверять каждое число в цикле на схожесть с предыдущим. И вот у тебя массив 1 1 2 2 2 2 3 3 4И у тебя выведутся 1 2 2 3 т.к. 2 если сравнивать с соседними то повторяется несколько раз.
>>163330049Но при сортировке ты не сравниваешь каждый с каждым.Cортировка nlog(n).По методу сортировки nlog(n) сортировка + n проход по массиву => nlog(n) + n = n(log(n) + 1) => nlog(n)Вложенные циклы дадут тебе n*n = n^2
>>163333125Ну так выводи только тогда когда есть совпадения с переменной, в которую, сходу пишется только изменившееся (первое) число.Требуется же вывести повторяющиеся число, а первое - не повторное.
>>163333125Если его отсортировать по порядку, можно выводить число, после того как вывел одно, записываешь его в переменную, проверяешь следующее число на равенство с числом хранящимся в переменной перед выводом, где я ошибся?
>>163332822>И там, и там используется операция сравнения много раз.Но сортировка - это еще и куча присваиваний и обменов данными в памяти.
>>163332975Ну вот такая она, русская вики. Читал бы средний двачер по-английски, было б короче.
>>163333488>Но при сортировке ты не сравниваешь каждый с каждым.Как и при поиске.
>>163333573переменная всегда хранит же только 1 число. т.е. ты выведешь только 1 из всех повторяющихся.
>>163333709Входящий отсортированный массив: 1 1 1 2 2 2 2 3 4 4Переменная берёт только первое число - когда оно не равно содержащемуся в ней: (1) 1 1 (2) 2 2 2 (3) (4) 4 - все без скобок выводятся, а те, что в скобках - в переменную.Цикл же длиной в массив.
>>163333678Никто не даст такой гарантии. Да и n*n/2 (например в среднем) это все равно порядок n^2
>>163334226Как можно сделать быструю сортировку - так же можно сделать и быстрый поиск.
>>163333709пиздец ты тормоз.Я давно ничего не писал, поэтому не помню как там в с++ передаётся в фукцию массив, но вот как нужно делать:int mass[n]; // отсортированный массивvoid(*int mass){int temp; // та самая переменная хранящая число которое уже было for(var i = 0; i < n; i++){ if(temp != mass){ std::cout << mass << std::endl; temp = mass; }else continue; }}В коде ошибки наверняка будут, но суть не в синтаксисе
>>163305671 (OP) static void Main(string[] args) { int[] input_array = new int[] { 1, 1, 3, 5, 7, 9, 9, 9, 11, 11, 13, 13, 13, 13, 15 }; int a = input_array.Max(); int[] temp_array = new int[a]; for (int i = 0; i < input_array.Length; i++) temp_array[input_array-1] +=1; for (int i = 0; i < temp_array.Length; i++) if (temp_array > 1) Console.WriteLine(i+1); Console.Read(); }
>>163305671 (OP)Блять, нахуя вы решаете эти тупые задачи? Это НЕ помогает
>>163306318Безразмерный массив в шаре - это List<int> в твоем случае, няша.
>>163334613Прикольно. А какой алгоритм быстрого поиска числа в несортированном массиве?
>>163305671 (OP)Тут есть люди с опытом программирования на с#?Пишу функцию, которая считает в файлах количество каких-нибудь символов. Как мне файл передать в функцию? Какого типа указать этот параметр?