Сап котаны, помогите решить задачку на питоне, препод зверь, пятерку за лабу не поставит так просто, а сдавать уже после выходных. Вуз не называю, ибо деанон.
>>215111354Как создать список/массив из 100 натуральных чисел и вывести их на экран "спиралью к центру?" одним циклом?
>>215111464>>215111655Малолетний дебил, тебя спросили про конкретный вопрос#: бля, какие аргументы для arraylist подойдут? И вообще, пиздуй на киберфорум, там многим помогают. Мне, например, всегда помогали с конкретными вопросами.
>>215111126 (OP)Нарисуй часть спирали. Первые 10-15 чисел. Выпиши, как изменяются координаты вывода каждого числа. Дальше цикл от 1 до 100 и изменение координат по выявленной тобой (надеюсь) закономерности.мимо
>>215111817Спасибо, ты мне очень помог!С этого момента тебе больше никогда не повезет в жизни, проверяй.
что такое по спирали? как это должно выглядеть? нарисуй и я тебе решумимо программист, у которого все плохо с дизайном и абстракцией
>>215111817Ну у меня мысль просто значения в индексах циклами перебить, но это как то долго все и пиздец, мне кажется есть способ проще
>>215112062>С этого момента тебе больше никогда не повезет в жизни, проверяйхаха, ну обиженка пиздосда к тому же верун
>>215111126 (OP)Что такое "вывести числа спиралью"?ЯННПКаким образом генерируются числа?Какие ограничения на их диапазон?Что такое спираль? Спираль может быть прямоугольной, а может быть дебиановской. Как внутрь спирали вписывается число, имеющее несколько десятичных разрядов? (а десятичных ли?)Что такое экран? Какие у него размеры?Может это произвольные числа, читающиеся с клавиатуры/из файла, и окажется, что на экран 80х25 надо вывести числа, среди которых 10^10500
Гугли "скатерть улама"А вообще, оп, ты не особо умный раз такую херню написать не можешь. Сам подобное мог написать в классе 9.
>>215112071Вот как на пике!Подчеркнутое синим должно быть плавным, овальным, ровным. Это я просто ржал!
>>215111126 (OP)Не можешь решить такую элементарную задачу - отчисляйся и пиздуй в армию, на завод или куда там тебя, такого тупого, ещё возьмут.
>>2151120710 1 2 3 4 5 6 7 8 935 36 37 38 39 40 41 42 43 1034 63 64 65 66 67 68 69 44 1133 62 83 89 85 86 87 70 45 1232 61 82 95 96 97 88 71 46 1331 60 81 94 99 98 89 72 47 1430 59 80 93 92 91 90 71 48 1529 58 79 78 77 76 75 74 49 1628 57 56 55 54 53 52 51 50 1727 26 25 24 23 22 21 20 19 18
>>215111126 (OP)print ('0 1 2 3 4 5 6 7 8 9')print ('35 36 37 38 39 40 41 42 43 10')print ('34 63 64 65 66 67 68 69 44 11')print ('33 62 83 89 85 86 87 70 45 12')print ('32 61 82 95 96 97 88 71 46 13')print ('31 60 81 94 99 98 89 72 47 14')print ('30 59 80 93 92 91 90 71 48 15')print ('29 58 79 78 77 76 75 74 49 16')print ('28 57 56 55 54 53 52 51 50 17')print ('27 26 25 24 23 22 21 20 19 18')
>>215112388У тебя слишком много неявных предположений1) Фиксированный размер ячейки для записи числа2) Фиксированное направление письма в разных частях витка (не факт, что по вертикали и числа не пишутся вертикально)3) Фиксированный метод генерации чисел. В сочетании с п. (1) он дает тривиальный метод предварительного расчета размеров спирали. Хотя если предположение (1) верно, то этот пункт не имеет большого значения (только заранее определить максимальную длину записи числа).Ну и форма спирали простая.
>>215112750работает, спасибоа как можно к числам, которые имеют 1 цифру, прибавть 1 отступ спереди через условие?
Ну подумай башкой эвристически. Даю наводку:1) Центр условно пусть имеет координаты (0; 0) (потом в систему координат новую перенесёшь, если надо, на наименьшее значение абсциссы/ординаты; надеюсь, не надо объяснять)2) Нам надо ебануть спираль. Спираль это что такое? По сути, окружность, у которой радиус всё время уменьшается или увеличивается. Как узнать "радиус" точки? Ввести полярные координаты. Как их вводить? Через тригонометрические функции, разумеется.3) Потом циклом делаешь так, чтобы координаты высчитывались каждыми n значений с уменьшающимся радиусом. У тебя получается сетка с уже готовым массивом координат для каждой точки. Реализуешь их вывод по координатам и всё
>>215112750По спирали, сука. У тебя код выводит числа в строку. Когда переходит к следующей десятке (10, 20, 30) делается перевод строки и снова числа в ряд печатаются.
>>215113004Алсо, я не математик и не программист, просто не даун. Но рекомендую прислушаться. Если препод разрешает сторонние библиотеки, то проще будет. Консольным выводом заёбно будет спираль рисовать
>>215113124Да куда уж проще блять. Полярные координаты(радиус) это по факту как уравнение окружности, только с другого боку
>>215113004может определение более вероятной траектории ебануть через машинное обучение? можно снять 9999999 часов игрового процесса в змейку, когда игрок её скручивал в спираль и определить более оптимальную траекторию скручивания для успеха, и числовой ряд составить именно по этой траектории?Просто в задании сказано что можно 1 циклом
Представь это в виде таблицы, пускай, 5x5. Посмотри, что происходит со столбцами и строками на каждом переходе вправо, спуске, переходе влево и подъёме.
Как же я проигрываю каждый раз с этих постов от местных макак, которые с серьёзным и надменным лицом пишут что-то про отчисление и заводы с защитой сапогов.
>>215113463я могу сделать каждый переход это цикл и перебиндить индексы со значениями, но это долго все, мне кажется есть способ быстрее
>>215113609Как я это вижу:1. Надо сделать, как вот тут >>2151130042. Надо написать функцию, которая сообразно с этими данными какую-то модель для консольного вывода реализует, я пока её не продумал, щя будет
>>215113808Это криво заданное условие.Похожую задачу я делал на олимпиаде классе в 10м (дохуллиард лет назад), и там под спиралью понималась эта квадратная спираль, как жаваскриптер нарисовал.Я только ХЗ, как это оформить одним циклом без использования библиотек, позволяющих произвольно перемещать курсор.
>>215114161в условии написано, что можно сделать это только одним циклом.Т.е. больше ничем, только 1 цикл и задача решена.
>>215111126 (OP)Ты тупой?Создаешь массивИнициализируешь массив заполняешь числами от 0 до 99 циклом например.Выводишь полученный массив циклом.
>>215111126 (OP)хуя двач отупелуже час прошел никто не смог решить задачку по информатике для 8 класса
>>215113280>>215112931for i in range(1,101): if (i < 10): print(" " + str(i), end=" ") elif ((i%10==0) and (i >= 10)): print(i, end="\n") else: print(i, end=" ")спираль готова
>>215111126 (OP)>пятерку за лабу не поставит так простоПридется, поиграть с его питоном.Вообще пиздец конечно. Пятерку он захотел.Собственно в программистской части тут никакого ума нет, print в цикле. Математику главное вспомнить, полярные координаты, перевод в декартовы координаты, синуса в ануса. Тогда можно рассчитать строки с числами и вывести на экран.
>>215111126 (OP)Короче ОП, мы посовещались всем двачем и решили твою задачу. Берешь пикрелейтед и отправляешь преподу с таким текстом:"Привет, %prepodname%. Твою задачу решали всем двачем целую ночь. Результат прикладываю. Имей в виду, что мне очень нужна оценка "5" Иначе мы тебя затравим Спасибо за интересную задачу и высокую оценку моей работы!Пока"Абу благословил этот пост.
>>215115367Ты погромист? Я думал среди погромистов все мужикастые мужики и нет пидоров, как на заводе...
>>215111126 (OP)забей хуй на доп.задачу "одним циклом"просто заполни двумерный массив этой спиралью, потом выведи
Бля, что тут сложного, ебнуть двумерный массив, заполнять параллельно с выводом и менять вывод относительно позиции в одном цикле, хуею с вас.
>>215116533думаю, надо сперва определить размеры спирали, только чтобы потом в них не завязнуть. Для этого надо понять, "замкнута" ли спираль или нет, т.е. ограничена ли она в своём квадрате отображения. Ну это первое математическое из того куда копать
>>215115888>Бля, что тут сложного, ебнуть двумерный массив, заполнять параллельно с выводом и менять вывод относительно позиции в одном цикле, хуею с вас.Для этого надо перемещать курсор на произвольную позицию, это в контексте пистоновой консольки требует какого-нибудь ncruses и тривиализует задачу.Гораздо интереснее найти формулу, которая по координатам ячейки [n%10,n/10] будет вычислять стоящее там число.Тогда можно честно залить это дело одним циклом, переводя строку каждые 10 шагов.
>>215113553у твоей спирали, x=y=10 при количестве цифр 100. Возможно, что размеры получаем деля на 10. Первая проблема маткопания решена
>>215116887>Гораздо интереснее найти формулу, которая по координатам ячейки [n%10,n/10] будет вычислять стоящее там число. Тогда можно честно залить это дело одним циклом, переводя строку каждые 10 шагов.Под позицией я имел ввиду координаты, но не формулу, а попроще, условием, условий бы штук 10 вышло через елиф, зато цикл один.
>>215112689если это важно постановщику, он должен так и написать, а не ебать мозги в предположении, что решать задачу будет телепат
>>215119444в обратную сторону закрутил, теперь ещё +1 спираль делатьhttps://www.youtube.com/watch?v=70MBLQu6mPE
смотрю я на ваши гениальные решения, аноны, и не вижу в них списка, массива, который в итоге создается по условию задачи
ЛОЛ ОРУ С ДВАЧА ЕБАНОГО Был помню работы/зарплаты тред 80% анонов это програмисты с зп 300кк И где же они сейчас? Пхахаха бля))
>>215119905Хули я вообще должен время на идиота тратить? Надеюсь, ты вылетишь и не будешь множить толпу тупых джуниоров.
>>215120022Я не ОП во первых, а во вторых отписалось по проблеме 2,5 анона. Что то нихуя не сходится статистика с тем тредом, где 80% тим лидов и 20% типичных снг'шных бомжей
>>215111126 (OP)Твоя спираль в полярных координатах - r=r0*phi, а квадрат - это круг, если взята метрика max(|x0-x1|,|y0-y1|). Дальше сам.
>>215120166Как тимлид с 300кк/нс могу сказать, что индивиды, которые щелкают такие вот олимпиадные задачки, редко добиваются успеха на реальном рыночке. Почему - хз.
>>215120489Да, смекаю, им интересно только повниманиеблядствовать в тредах о зарплате из их манямирка
Мысли вслух.Будем рассматривать немного другую спираль. А именно, уламовскую. Я взял с википедии рисунок.При желании она приводится к той, которую тут рисуют, преобразованием координат и вычитанием из 100 числа в ячейке (чтобы развернуть направление)Координаты как на рисунке, центр имеет координаты (0,0).Эту спираль можно разделить на 4 части диагоналями - правую, левую, верхнюю и нижнююПравая и левая части это |x|>|y|, верхняя и нижняя - наоборотДля правой части (x>0, |x|>|y|):S[x,y]=(2x-1)^2+x+yДля левой части (x<0, |x|>|y|):S[x,y]=(2x)^2-x-y+1Для верхней части (y>0, |y|>|x|):S[x,y]=(2y)^2-x-y+1Для нижней части (y<0, |y|>|x|):S[x,y]=(2y-1)^2+x+yМожно заметить, что уравнения сильно похожи с точностью до слагаемого в скобках и сделать какую-нибудь замену c максимумом, но лень думатьЧтобы посчитать точки на диагоналях, можно в паре мест неравенство на нестрогое поменять.При таком раскладе 100 будет стоять, кажется в S[-4,5]Чтобы эту фигню написать, надо преобразовать координаты.Пусть наш массив A индексуется с 0, тогдаA[n]->A[n%10,n/10].Первая координата - столбцы, идут справа налево, начинаются с 0Вторая координата - строки, идут верху вниз, начинаются с 0Тогда A[i,j]=100-S[i-4,5-j], где i=n%10, j=n/10
>>215120952это опять к искусству постановки задачи. я бы таких постановщиков с оп-пика, которые пишут, что нихуя не понятно что точно им нужно, ногой в анус, как панина сношал бы.
>>215121011Во-первых, в условии не оговорено, как должна закручиваться спираль.Во-вторых, в посте расписано, как перейти от спирали от центра к спирали К центруПроще рассчитать спираль от центра и трансформировать
>>215111126 (OP)Нарисуй в фотошопе спираль из цифр, сохрани в ЖПГе и выведи на экран. Все условия задачи будут соблюдены.
Пиздец, вам реально интересно этим заниматься? Это же какая-то смесь ебучей математики и иностранного языка, а это были самые скучнейшие уроки в школе.Или это только выглядит так? А на самом деле подобно написанию какой-нить картины или музыки? мимогаражныйкузьмич
>>215121459>А на самом деле подобно написанию какой-нить картины или музыки?че ебан?ты просто говоришь программе сделай шаг влево, сделай шаг вправо, добавь цифрыи всёлюбой справится, но все ленивые
>>215121459Бля, ну это как машину собрать и она потом едет, как починить стул и потом сидеть на нём, что-то такое
>>215121459>Или это только выглядит так? А на самом деле подобно написанию какой-нить картины или музыки?Смотря чем заниматься конкретно. Применений же масса.Шлепать какой-нибудь интерпрайз это пиздец депрессия и безысходность, а вот делать игры это настоящее искусство.
>>215121486Исключительно заслуга интернета, куча сайтов = куча скриптов на js, не вижу это как хоть какое-то преимущество
>>215121459Иди нахуй, самые интересные уроки в школе мы на них еще в контру и кваку играли а ты наверное был тем довеном что физру или труд ебанный любил?
>>215121525Но это-же пиздец скучно со стороны по крайней мереТут есть те кому это реально доставляет, а не тот кто повёлся на 300к/сек?>>215121526То есть просто механическая работа, верно?
>>215121646Неп, география была любимой.Потом история, мхк, литература, обществознание и биология.Труда не было, физру из-за ебучего волейбола ненавидел.
>>215121459Суть в том чтобы заниматься этим так, чтобы не заниматься.Быстренько дошёл до проблемы реализации, а дальше над ней думаешь, думаешь. День подумал, не нашёл решение. Неделю подумал, не нашёл решение. Забросил поделие, вернулся через месяц, а уже ничего из собой написанного не понятно.Это интересно.
У мя на тимусе (или чем-то подобном) аж 2 решения есть:1) Прогоняешь в циклах2) Используешь шаги до границы массива, после чего разворот.А вот вам мат.пруф что за 1 цикл задачу в общем виде не решить:Нам нужно побывать в каждой клетке матрицы минимум по разу, а за один цикл мы можем пройти только по строке или колонке конечно, можно матрицу заменить одномерным массивом, но это уже читерство для дибилов
>>215121681>То есть просто механическая работа, верно?Не особо, представь что тебе дали бесконечное количество металла, краски, топлива и самые йоба-инструменты и из этого ты можешь сделать любую йоба-машину, какую захочешь. Придумал розовый Разрушитель3000 из мэд макса? Кабриолет из 80? Машину из флинстоунов? Берёшь инструменты и делаешь любую из них. Есть место для творчества в общем, так что не назвал бы механической работой, за исключением случаев, когда ты делаешь проект для кого-то, а не для себя.
>>215121887>Нам нужно побывать в каждой клетке матрицы минимум по разуЭто если уравнением на каждую клетку матрицы нельзя решить. Где пруф что нельзя?
>>215121641Как там в 2005 году?Js уже давно является языком общего назначения. На нем уже давно крутится не только веб, но и серверная часть, а также во всю развиваются мобильные и десктопные направления.
>>215121887Пишешь уравнение спирали, генерирующее для номера элемента его позицию в квадратной матрице консоли, используешь лишь однозначные числа (не запрещено), профит, проход за один цикл.
>>215121681>Тут есть те кому это реально доставляетты не сможешь получать много, если тебе это не доставляетты выгоришь нахуй и полностьюты не найдешь среди хороших погроммистов тех, кто повелся тупа из-за денег, они все альтруисты и гедонисты, а
>>215121681>Но это-же пиздец скучно со стороны по крайней мереда абсолютно однохуйственно, что машину строить, что дом, что прграмму.Есть цель - есть инструменты - ты делаешь результатесли интересная задача, наоборот азарт захватывает
>>215121965Спасибо анон, более-мение понятно.Мне просто сложно свой опыт и мировозрение перенести в эту тему:Тип металл и краска понятны с детства, когда тебе отдали велик, ты его разъебал, а потом выправил и подкрасил. Плюс они ограничены, а инструменты для написания кода нет. А по поводу творчества - разве все програмисты не работают на условного богатого дядю бизнесмена? В каких случаях програмист делает что-то для себя и при этом получает за это деньги?
Препод Петросян. Надо сначала создавать пустой массив, внутри обрисовывая спираль числами, а в пустые элементы записывать пробел, а потом вывести массив одной итерацией. Можно оба пункта вывести за один цикл, но это будет пиздец, а не код.
>>215112335Одним циклом изъебываться даже не буду, но задача элементарная, при достижении следующего порядка у тебя по координатной сетке идёт x++, затем y--, потом x--, потом y++, соответственно тебе нужно аккумулировать число n+9, и каждый следующий элемент n проверять на аккумулированный элемент, и если он равен - перещелкивать x/y.Как перенести это на питона дрочи сам, я тебе бесплатно код писать не буду, со стековерфлоу все утянешь.Вообще задача ебланская (подозреваю, как и вуз), и с такими знаниями тебя даже в сраные джуны не возьмут.
>>215122665Пиши. В чем проблема? Это обычный язык общего назначения. Возможности ровно те же, что и у C#/Java/Python и подобных.
>>215122399>>215121976Примерно так: (только границы еще менять надо)int t=1, i=0; j=0;while(t<=n*n){while(j<n){m[j]=t; j++; t++;}while(i<n){m[j]=t; i++; t++;}while(0<=j){m[j]=t; j--; t++;}while(0<=i){m[j]=t; i--; t++;}}Тут границы надо правильно описать, они будут меняться, но мне лень.
>>215122853Хуй знает анонче, наверное стоит синтаксис подучить, когда я рос, он считался чисто веб-языком, поэтому я к нему не был расположен и как-то обходился без него, но наверное стоит присмотреться
>>215122997Современные стандарты (начиная с 2015) это уже вообще другой язык. Тут и классы нормальные и async/await которые до сих пор мало куда завезли, генераторы и прочая малафья.
function matrix = reverseSpiral(n) matrix = (-spiral(n))+n^2; if mod(n,2)==0 matrix = flipud(matrix); else matrix = fliplr(matrix); end end %reverseSpiral
SPIRALM CSECT USING SPIRALM,R13SAVEAREA B STM-SAVEAREA(R15) DC 17F'0' DC CL8'SPIRALM'STM STM R14,R12,12(R13) ST R13,4(R15) ST R15,8(R13) LR R13,R15 ---- CODE LA R0,0 LA R1,1 LH R12,N n LR R4,R1 Row=1 LR R5,R1 Col=1 LR R6,R1 BotRow=1 LR R7,R1 BotCol=1 LR R8,R12 TopRow=n LR R9,R12 TopCol=n LR R10,R0 Dir=0 LR R15,R12 n MR R14,R12 R15=nn LA R11,1 k=1LOOP CR R11,R15 BH ENDLOOP LR R1,R4 BCTR R1,0 MH R1,N AR R1,R5 LR R2,R11 k BCTR R2,0 BCTR R1,0 SLA R1,1 STH R2,MATRIX(R1) Matrix(Row,Col)=k-1 CH R10,=H'0' BE DIR0 CH R10,=H'1' BE DIR1 CH R10,=H'2' BE DIR2 CH R10,=H'3' BE DIR3 B DIRXDIR0 CR R5,R9 if Col<TopCol BNL DIR0S LA R5,1(R5) Col=Col+1 B DIRXDIR0S LA R10,1 Dir=1 LA R4,1(R4) Row=Row+1 LA R6,1(R6) BotRow=BotRow+1 B DIRXDIR1 CR R4,R8 if Row<TopRow BNL DIR1S LA R4,1(R4) Row=Row+1 B DIRXDIR1S LA R10,2 Dir=2 BCTR R5,0 Col=Col-1 BCTR R9,0 TopCol=TopCol-1 B DIRXDIR2 CR R5,R7 if Col>BotCol BNH DIR2S BCTR R5,0 Col=Col-1 B DIRXDIR2S LA R10,3 Dir=3 BCTR R4,0 Row=Row-1 BCTR R8,0 TopRow=TopRow-1 B DIRXDIR3 CR R4,R6 if Row>BotRow BNH DIR3S BCTR R4,0 Row=Row-1 B DIRXDIR3S LA R10,0 Dir=0 LA R5,1(R5) Col=Col+1 LA R7,1(R7) BotCol=BotCol+1DIRX EQU LA R11,1(R11) k=k+1 B LOOPENDLOOP EQU LA R4,1 iLOOPI CR R4,R12 BH ENDLOOPI XR R10,R10 LA R5,1 jLOOPJ CR R5,R12 BH ENDLOOPJ LR R1,R4 BCTR R1,0 MH R1,N AR R1,R5 BCTR R1,0 SLA R1,1 LH R2,MATRIX(R1) Matrix(i,j) LA R3,BUF AR R3,R10 CVD R2,P8 MVC 0(4,R3),=X'40202120' ED 0(4,R3),P8+6 LA R10,4(R10) LA R5,1(R5) B LOOPJENDLOOPJ EQU WTO MF=(E,WTOMSG) LA R4,1(R4) B LOOPIENDLOOPI EQU ---- END CODE L R13,4(0,R13) LM R14,R12,12(R13) XR R15,R15 BR R14 ---- DATAN DC H'5' max=20 (20*4=80) LTORG P8 DS PL8WTOMSG DS 0F DC H'80',XL2'0000'BUF DC CL80' 'MATRIX DS H Matrix(n,n) YREGS END SPIRALM
Пока k=0, k<100, k++ Если (flag == 0 И x+1 <= 9 И a[x+1][y] пустой)) { x++; } Если (flag == 1 И y+1 <= 9 И a[x][y+1] пустой)) { y++; } Если (flag == 2 И x-1 >= 0 И a[x-1][y] пустой) { x--; } Если (flag == 3 И y-1 >= 0 И a[x][y-1] пустой) { y--; } Если (a[x][y] не пустой) { flag = (flag + 1) % 4; continue; } a[x][y] = k;}ВывестиНаЭкран(a);Что думаешь о таком псевдокоде, анон? Пишу с телефона, проверить не могуи не надо ебаться с кругами
>>215133950Ну с 2 циклами и у меня получилось, первым двумерный массив создаем, вторым змейку двигаем.
пару месяцев назад какой-то лярве писал такую же лчмоки-чмоки только на плюсах. если вспомню где валяется код, мб скину
>>215111126 (OP)Потратил 10 сек на гугл твоей задачи. Нашел кстати. Ссылку в образовательных целях офк кидать не буду
>>215135676я сейчас сходил посрать, и в процессе решил, что не буду нихуя тебе кидать. если оп не в состоянии придумать или нагуглить такой алгоритм, то нечмоки-чмоки ему в эту профессию вообще соваться
>>215136020Ну и у меня тут 5 чисел но можно сделать 10x10.Если сдашся пиши на фейкомыло rogalmaks@gmail.ru. За энную сумму напишу за тебя
>>215136077Добавлю, что квадратной спиралью за один цикл это элементарно блять эвристически подбирается, но мне лень и я хотел красивую спираль архимедовскую
Опxyй обьясни что ты имеешь ввиду спиралью к центру - сам квадратный массив в котором цифры идут спиралью как я показывал на пикриле выше или график функции на которой множество чисел будет изображено спиралью??
>>215124644Да, конечно, глядя на такие решения, и понимаешь разницу между собой-быдлокодером и инженером.
>>215111126 (OP)Формально ты можешь просто захардкодить этот список уже готовым лол. И согласно условию задачи к этому не доебаться.
>>215124912Ну можешь тогда начмоки-чмоки идти, потому что джс в этом коде не сильно отличается от питона и его легко понять мимо анон
>>215111126 (OP)>>215140051как написано в задаче: https://jsfiddle.net/1au8n39w/14/как понял двач: https://jsfiddle.net/1au8n39w/16/