@bahridinovf
В свои 33 года решил учить программирования)
Начал учить пайтон. Проходим семинары и дадут задачки.
Проблема:
Например есть задача: Реализуйте алгоритм перемешивания списка. Без функции shuffle из модуля random
и я не знаю как подходить к этой задаче Я просто не могу понять с рисовать под них алгоритм. А если понимаю как создать алгоритм я смогу писать код, кривой но хоть что то
от того, что не могу понять, ухожу в отчаяния. Может мне дополнительно, что то учить еще?
Можете посоветоваться мне как выйти из этого ситуации. ☹️
По математики не силен ((
Может мне где то найти миллион задач и найти решения + разбираться как люди решали и пытаться понять логику дале повторит уже своим кодом и где то что то изменить.
Подскажите пожалуйста как мне поступить лучше. Спасибо.
Решения вопроса 0
Ответы на вопрос 6
@HemulGM
Неужели сложно обозначить шаги для решения задачи?
Нужно перемешать список. Что такое перемешать список? Это сделать так, чтобы элементы были на случайных местах. Что нужно сделать чтоб они были на случайных местах? Взять элемент и поменять его местами со случайным элементом. Что нужно чтоб выбрать случайное место? Взять функцию генерации случайных чисел и обозначить границы выборки случайных чисел.
Итого:
- Запускаем цикл от первого элемента до последнего
- Берём элемент, получаем случайное число в пределах размера массива
- Меняем местами текущий элемент и элемент под случайным числом
ВСЁ
И это работает почти с любой задачей
@Griboks
@mayton2019
По математики не силен ((
Не переживай сильно. Для 80% современных задач разработки тебе понадобиться только школьная математика.
Сложить умножить и процент посчитать. Всё остальное — технический дискурс что делать и как делать.
Высокая наука ушла в области datascience, AI, quantum-computing, и всякие формальные логические (тьфу) системы где теоретики занимаются онаниз…. эээ короче фигнёй страдают.
Что тебе понадобиться на самом деле. Структуры python. Библиотеки. Основы мульипоточки. Работа с файлами и сетью. Там не бох весть какая наука. Школьники разбираются. Вот… тут каждый день кодят дискорд и телеграм ботов.
Еще обрати внимание на операции со строками. Строки — основа современного бизнес-кода. Сравнение строк. Подстроки. Замены. Поиск по регулярке. Это должно быть выучено как молитва. Очень часто программист хорошо умеющий работать со строками выкрутится из любой ситуации. Распарсит json и так далее вручную.
@kaka888
По программированию рекомендую решать для начала самые простые задачи: на codewars.com такие задачи обозначены уровнем 8 kyu. Когда будете уверенно решать 8 kyu, можно будет переходить на 7 kyu и так далее.
@duff89
Я думаю аналогию Вы поняли, я лично в таких случаях просто рисую на бумаге схематично, что у меня есть и что мне нужно получить, потом расписываю более подробно и так далее. Становится понятнее
Также рекомендую иногда решать те же задачки с codewars.com/ или других ресурсов
@Jack444
from time import time
lister = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
def mix_list(old: list) -> list:
new = []
while old:
x = str(time()).split('.')[1]
x = list(map(int, [x[0], x[-1]]))
x = x[0] if x[0] <= x[1] else x[1]
if x > len(old)-1:
new.append(old.pop(0))
else:
new.append(old.pop(x))
return new
lister = mix_list(lister)
print(lister)