Хабиб Изадха , Рашид Бехзадидуст - Решение трудных и увлекательных задач на Python
Название: | Решение трудных и увлекательных задач на Python | |
Автор: | Хабиб Изадха , Рашид Бехзадидуст | |
Жанр: | Python | |
Изадано в серии: | неизвестно | |
Издательство: | ДМК Пресс | |
Год издания: | 2024 | |
ISBN: | 978-5-93700-280-8 | |
Отзывы: | Комментировать | |
Рейтинг: | ||
Поделись книгой с друзьями! Помощь сайту: донат на оплату сервера |
Краткое содержание книги "Решение трудных и увлекательных задач на Python"
Цель данной книги – укрепить навыки логического рассуждения и развить творческое мышление, представив и решив 90 не самых простых задач на Python. Задачи изложены доходчиво и сжато, снабжены алгоритмами и комментариями, что помогает читателям следить за процессом их решения и понимать его суть. Издание предназначено читателям с базовыми знаниями языка Python, которые стремятся вывести свои способности на новый уровень. Книга будет полезна студентам, преподавателям, разработчикам, а также участникам соревнований по программированию.
Читаем онлайн "Решение трудных и увлекательных задач на Python". [Страница - 55]
230
Глава 7. Разные задачи
возвращает найденную позицию. Если число отсутствует, то алгоритм
добавляет два новых числа в множество посещенных чисел, проверяет
остальную часть строки на наличие целевого числа и переходит к следующей строке. Этот процесс повторяется до тех пор, пока не будет достигнуто
максимальное количество столбцов.
В листинге 7.6 приводится код на Python, определяющий позицию искомого числа в массиве Витхофа.
Листинг 7.6. Определение позиции числа в массиве Витхофа
1 def Positioning_in_Wythoff_Array(n):
2
# Инициализировать переменные и множества
3
visited_numbers = set([])
4
current_row = 0
5
smaller_number, larger_number = -1, -1
6
7
'''
8
Цикл по максимально возможному
9
количеству столбцов
10
'''
11
for _ in range(n + 1):
12
13
if len(visited_numbers) == 0:
14
previous_number, last_number = 1, 2
15
else:
16
'''
17
Выбрать меньшее число
18
в качестве отправной точки
19
'''
20
current_number = smaller_number
21
# Выполнять цикл, пока не будет встречено непосещавшееся число
22
23
while True:
24
if current_number not in visited_numbers:
25
26
# Вычислить следующее число в строке
27
if current_number - smaller_number == 2:
28
next_number = larger_number + 3
29
else:
30
next_number = larger_number + 5
31
32
'''
33
Вернуть два числа
7.5. Определение позиции числа в массиве Витхофа 231
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
для следующей строки
'''
previous_number, last_number =\
current_number, next_number
break
'''
Увеличить current_number
и повторить попытку
'''
current_number += 1
'''
Обновить переменные
для следующей итерации
'''
smaller_number, larger_number =\
previous_number, last_number
'''
Проверить присутствие
целевого числа в текущей строке
'''
if n == previous_number:
return (current_row, 0)
elif n == last_number:
return (current_row, 1)
'''
Добавить два числа
в множество посещенных чисел
'''
visited_numbers.add(previous_number)
visited_numbers.add(last_number)
'''
Проверить наличие искомого
числа в оставшейся части строки
'''
column_number = 2
while last_number --">
Книги схожие с «Решение трудных и увлекательных задач на Python» по жанру, серии, автору или названию:
Марк Саммерфилд - Python на практике Жанр: Программирование: прочее Год издания: 2014 |
Коллектив авторов - Python глазами хакера Жанр: Python Год издания: 2022 Серия: Глазами Хакера |
Мориц Ленц - Python: Непрерывная интеграция и доставка. Жанр: Программирование: прочее Год издания: 2020 |
Джульен Данжу - Путь Python. Черный пояс по разработке, масштабированию, тестированию и развертыванию Жанр: Python Год издания: 2020 Серия: Библиотека программиста |