На этом форуме отвечают на конкретные вопросы. Фраза «я не понимаю, как решать» — это не вопрос. На вопрос «как решить задачу №X» вас отошлют к материалам сайта kpolyakov.spb.ru. За бессвязный поток слов и неспособность формулировать свои мысли — бан.

Если у вас не сходится ответ на какую-то задачу, пожалуйста сразу представляйте свое «правильное» решение.
Программы "заворачивайте" в тэг [pre2]...[/pre2], при этом сохраняются все отступы и применяется моноширинный шрифт. Если у вас используется сочетание "[i]" для обозначения элемента массива или строки, ставьте пробел после открывающей скобки. Иначе система выделит все дальнейшее курсивом.

Для регистрации на форуме щелкните по ссылке «Вход-регистрация» вверху страницы. В открывшееся окошко «ник» введите свою фамилию на русском языке (например, Иванов). В окошко «пароль» введите придуманный вами пароль, состоящий из латинских букв и цифр. Поставьте галочку в окошке «зарегистрироваться, я новый участник» и нажмите кнопку «ОК».

АвторСообщение



Сообщение: 23
ссылка на сообщение  Отправлено: 15.06.21 18:37. Заголовок: Задание 8 #184


184) Сколько шестнадцатеричных кодов чисел длиной 12 можно составить, если известно, что цифры идут в порядке убывания, при этом четные и нечетные цифры чередуются?
Если решать вручную
FEDCBA987654
FEDCBA987652
FEDCBA987650
FEDCBA987632
FEDCBA987630
Вроде перебираю верно, но если так делать, то это долго и 104 варианта вряд ли получу, где-то ошибусь.
Можно это сделать вручную и при этом в прямую не перебирая?

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 11 [только новые]


Администратор




Сообщение: 2864
ссылка на сообщение  Отправлено: 15.06.21 18:41. Заголовок: Один из вариантов - ..


Один из вариантов - делать рекурсивный перебор и ставить следующей цифрой только подходящие (не строить все возможные варианты, их очень много). Например, если очередная цифра - 5, за ней могут стоять только 4, 2 или 0.
Считает очень быстро.

___________________________________________________
Имей мужество пользоваться собственным умом. (И. Кант)
Спасибо: 0 
ПрофильЦитата Ответить



Сообщение: 1
ссылка на сообщение  Отправлено: 24.09.21 02:12. Заголовок: Здравствуйте, Конста..


Здравствуйте, Константин Юрьевич!

Можно ли добавить свое решение к этой задаче? Возможно кому-то будет полезно.

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Сообщение: 2918
ссылка на сообщение  Отправлено: 28.09.21 17:51. Заголовок: Zarema2106 пишет: Мо..


Zarema2106 пишет:
 цитата:
Можно ли добавить свое решение к этой задаче? Возможно кому-то будет полезно.

Да, конечно. Вот здесь и публикуйте.

___________________________________________________
Имей мужество пользоваться собственным умом. (И. Кант)
Спасибо: 1 
ПрофильЦитата Ответить



Сообщение: 4
ссылка на сообщение  Отправлено: 29.09.21 14:37. Заголовок: Решение с рекурсией


Использовался подход с рекурсией, описанный в файле егэ8.doc с сайта Полякова К.Ю.
c рекурсией:

 
def valid( word ):

if word[0] =='0':
return False
for i in range(11):
if word[ i ]<word[ i+1 ] or (int(word[ i ],16)%2) == (int(word[ i+1 ],16)%2):
return False
return True


def rec(word, k, Alpha):
if len(word) == k:
if valid(word):
print(word)
return 1
return 0

count = 0
for c in Alpha:
count += rec( word+c, k, Alpha[Alpha.find(c)+1:] )
return count

print( rec( "", 12, "FEDCBA9876543210" ) )




без рекурсии (решение ученика):
 
d = "FEDCBA9876543210"
count = 0
for i1 in d:
for i2 in d[d.index(i1)+1::2]:
for i3 in d[d.index(i2)+1::2]:
for i4 in d[d.index(i3)+1::2]:
for i5 in d[d.index(i4)+1::2]:
for i6 in d[d.index(i5)+1::2]:
for i7 in d[d.index(i6)+1::2]:
for i8 in d[d.index(i7)+1::2]:
for i9 in d[d.index(i8)+1::2]:
for i10 in d[d.index(i9)+1::2]:
for i11 in d[d.index(i10)+1::2]:
for i12 in d[d.index(i11)+1::2]:
count += 1
print(count)


Спасибо: 1 
ПрофильЦитата Ответить
Администратор




Сообщение: 2919
ссылка на сообщение  Отправлено: 29.09.21 15:45. Заголовок: Zarema_Sokhova пишет..


Zarema_Sokhova пишет:
 цитата:
Использовался подход с рекурсией, описанный в файле егэ8.doc с сайта Полякова К.Ю.
c рекурсией: https://i.postimg.cc/8cymLJm1/2021-09-29-14-41-49.png без рекурсии (решение ученика): https://i.postimg.cc/8kyRKvLG/Xhr-BAZme5-AM.jpg

Ну, нехорошо приводить листинги в виде скринов или фото... А если я захочу проверить - заново набирать?

___________________________________________________
Имей мужество пользоваться собственным умом. (И. Кант)
Спасибо: 0 
ПрофильЦитата Ответить



Сообщение: 8
ссылка на сообщение  Отправлено: 01.10.21 13:36. Заголовок: Здравствуйте, Конста..


Здравствуйте, Константин Юрьевич!

Прошу прощения. Сначала не разобралась, как код разместить с отступами.
Обнаружила потом. Все исправила.

Спасибо: 1 
ПрофильЦитата Ответить





Сообщение: 13
ссылка на сообщение  Отправлено: 19.06.22 09:48. Заголовок: Здравствуйте! Предла..


Здравствуйте! Предлагаю более простой переборный вариант, без строковых функций и срезов (даже массив d можно не задавать, просто написать n=16):
 
d = ['F','E','D','C','B','A','9','8','7','6','5','4','3','2','1','0']
n=len(d)
count = 0
for i1 in range(n):
for i2 in range(i1+1,n,2):
for i3 in range(i2+1,n,2):
for i4 in range(i3+1,n,2):
for i5 in range(i4+1,n,2):
for i6 in range(i5+1,n,2):
for i7 in range(i6+1,n,2):
for i8 in range(i7+1,n,2):
for i9 in range(i8+1,n,2):
for i10 in range(i9+1,n,2):
for i11 in range(i10+1,n,2):
for i12 in range(i11+1,n,2):
count += 1
print(count)


Спасибо: 1 
ПрофильЦитата Ответить



Не зарегистрирован
ссылка на сообщение  Отправлено: 05.07.22 22:01. Заголовок: alph = 'FEDCBA98..


alph = 'FEDCBA9876543210'
N = { # словарь создан для распределения "веса"-значения каждой цифре-ключу, для сравнения их между собой и проверки на чётность
'F': 15, 'E': 14, 'D': 13, 'C': 12,
'B': 11, 'A': 10, '9': 9, '8': 8, '7': 7,
'6': 6, '5': 5, '4': 4, '3': 3, '2': 2,
'1': 1, '0': 0,
}

codes = [] # список для получившихся кодов
# На первом месте могут стоять только FEDC, на втором - EDCB и т.д.

for a in alph[:4]:
for b in alph[1:5]:
for c in alph[2:6]:
for d in alph[3:7]:
for e in alph[4:8]:
for f in alph[5:9]:
for g in alph[6:10]:
for h in alph[7:11]:
for i in alph[8:12]:
for j in alph[9:13]:
for k in alph[10:14]:
for l in alph[11:]:
if (N[a] > N > N[c] > N[d] > N[e] > N[f] > N[g] > N[h] > N > N[j] > N[k]> N[l] ) and \
((N[a]%2 == 0 and N%2 != 0 and N[c]%2 == 0 and N[d]%2 != 0 and N[e]%2 == 0 and N[f]%2 != 0 and N[g]%2 == 0 and N[h]%2 != 0 and N%2 == 0 and N[j]%2 != 0 and N[k]%2 == 0 and N[l]%2 != 0) or \
(N[a]%2 != 0 and N%2 == 0 and N[c]%2 != 0 and N[d]%2 == 0 and N[e]%2 != 0 and N[f]%2 == 0 and N[g]%2 != 0 and N[h]%2 == 0 and N%2 != 0 and N[j]%2 == 0 and N[k]%2 != 0 and N[l]%2 == 0)):
codes.append(a+b+c+d+e+f+g+h+i+j+k+l)

print(len(codes))

Спасибо: 1 
ПрофильЦитата Ответить



Сообщение: 1
ссылка на сообщение  Отправлено: 05.07.22 22:15. Заголовок: tla, хотела на форум..


tla, хотела на форуме посоветоваться по моему ошибочному решению, но увидела ваше! Ближе к 10 вечера мне оно кажется чем-то прекрасным. Спасибо!)

Спасибо: 0 
ПрофильЦитата Ответить



Не зарегистрирован
ссылка на сообщение  Отправлено: 09.06.23 22:55. Заголовок: решение


def f(s):
for i in range(len(s)-1):
if s < s[i+1]: return False
m = ''.join([str(int(i,16)%2) for i in s])
if '11' in m or '00' in m: return False
return True

k = 0
for i in ('C','E','B','D','F'):
for i1 in ('B','D','A','C','E'):
for i2 in ('A','C','B','D','9'):
for i3 in ('9','B','8','A','C'):
for i4 in ('8','A','7','9','B'):
for i5 in ('7','9','6','8','A'):
for i6 in ('6','8','5','7','9'):
for i7 in ('5','7','4','6','8'):
for i8 in ('4','6','3','5','7'):
for i9 in ('3','5','2','4','6'):
for i10 in ('2','4','1','3','5'):
for i11 in ('1','3','0','2','4'):
if f(i+i1+i2+i3+i4+i5+i6+i7+i8+i9+i10+i11):k+=1
print(k)

Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 83
ссылка на сообщение  Отправлено: 22.06.23 21:58. Заголовок: s=''; n=0 d..


 s=''; n=0 
def f(s):
global n
if len(s)<12:
for c in [d for d in '0123456789abcdef' if s=='' or int(s[-1],16)%2!=int(str(d),16)%2 and int(s[-1],16)>int(str(d),16) ] :
f(s+c)
else:
n+=1;print(n,s)
f('')


Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 1642
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет