- •B2. Q: число является положительным. T: число начинается с цифры 1
- •B4. Q: число не содержит цифру 0. T: первая цифра числа совпадает с последней.
- •B7. Q: число является двузначным. T: число не содержит в своем составе цифру 7.
- •B9. Q: сумма цифр числа равна 10. T: число является четным.
- •B16. Q: число является трехзначным. T: число содержит в своем составе цифру 2.
B7. Q: число является двузначным. T: число не содержит в своем составе цифру 7.
from random import randint
# Состояние Q
def Qbehavior(number):
string_number = str(number)
if string_number[0] == "-":
if len(string_number) == 3:
return True
else:
return False
else:
if len(string_number) == 2:
return True
else:
return False
# Состояние T
def Tbehavior(number):
string_number = str(number)
seven_doesnt_exist = True
for char in string_number:
if char == "7":
seven_doesnt_exist = False
return seven_doesnt_exist
# • итеративная функция, вычисляющая количество элементов массива, обладающих свойством Q;
def iteratCountQ(array):
count = 0
for number in array :
if Qbehavior(number) == True:
count += 1
return count
# • рекурсивная функция, вычисляющая количество элементов массива, обладающих свойством Q;
def recurseCountQ(array, array_pointer=0,count=0):
if len(array) == array_pointer:
return count
else:
if Qbehavior(array[array_pointer]) == True:
count += 1
array_pointer += 1
return recurseCountQ(array, array_pointer, count)
# • итеративная функция, вычисляющая сумму элементов массива, обладающих свойством T;
def iteratSumT(array):
sum = 0
for number in array:
if Tbehavior(number) == True:
sum += number
return sum
# • рекурсивная функция, вычисляющая сумму элементов массива, обладающих свойством T;
def recurseSumT(array, array_pointer=0, sum=0):
if len(array) == array_pointer:
return sum
else:
if Tbehavior(array[array_pointer]) == True:
sum += array[array_pointer]
array_pointer += 1
return recurseSumT(array, array_pointer, sum)
# • итеративная логическая функция, проверяющая, обладает ли хотя бы один элемент массива свойством Q;
def iteratAtLeastOneQ(array):
for number in array :
if Qbehavior(number) == True:
return True
return False
# • рекурсивная логическая функция, проверяющая, обладает ли хотя бы один элемент массива свойством Q;
def recurseAtLeastOneQ(array, array_pointer=0):
if len(array) == array_pointer:
return False
else:
if Qbehavior(array[array_pointer]) == True:
return True
array_pointer += 1
return recurseAtLeastOneQ(array, array_pointer)
# • итеративная логическая функция, проверяющая, все ли элементы массива a обладают свойством T;
def iteratEveryT(array):
t_behavior_count = 0
for number in array :
if Tbehavior(number) == True:
t_behavior_count += 1
return len(array) == t_behavior_count
# • рекурсивная логическая функция, проверяющая, все ли элементы массива a обладают свойством T.
def recurseEveryT(array, array_pointer=0, t_behavior_count=0):
if len(array) == array_pointer:
return len(array) == t_behavior_count
else:
if Tbehavior(array[array_pointer]) == True:
t_behavior_count += 1
array_pointer += 1
return recurseEveryT(array, array_pointer, t_behavior_count)
# Инициализация массива
def init_array(n, a, b):
return [randint(a, b) for _ in range(n)]
n = 30
a, b = -999,999
# инициализация элементов массива случайными числами от а до b в количестве n
array = [randint(a, b) for _ in range(n)]
print("B7. Q: число является двузначным. T: число не содержит в своем составе цифру 7.")
print("Элементы массива: \n", array)
print("Итеративная функция, количество элементов массива, обладающих свойством Q: ", iteratCountQ(array))
print("Рекурсивная функция, количество элементов массива, обладающих свойством Q: ", recurseCountQ(array))
print("Итеративная функция, сумма элементов массива,обладающих свойством T: ", iteratSumT(array))
print("Рекурсивная функция, сумма элементов массива,обладающих свойством T: ", recurseSumT(array))
print("Итеративная логическая функция, обладает ли хотя бы один элемент массива свойством Q: ", iteratAtLeastOneQ(array))
print("Рекурсивная логическая функция, обладает ли хотя бы один элемент массива свойством Q: ", recurseAtLeastOneQ(array))
print("Итеративная логическая функция, все ли элементы массива a обладают свойством T: ", iteratEveryT(array))
print("Рекурсивная логическая функция, все ли элементы массива a обладают свойством T: ", recurseEveryT(array))