Автор | Сообщение |
|
Отправлено: 26.04.22 21:03. Заголовок: 12_4978
Есть вопрос: если в задании не сказано "порядок не известен", то можно считать что идут 1-цы потом 2-ки и 3-ки? s1=[] k=0 for i in range(1,50): for j in range(1,50): for k in range(1,50): s1='0'+'1'*i+'2'*j+'3'*k+'0' s2=s1 while '00' not in s1: s1=s1.replace('01','21022',1) s1=s1.replace('02','310',1) s1=s1.replace('03','230112',1) if s1.count('1')==104 and s1.count('2')==39 and s1.count('3')==83: k=len(s2) break print(k) Что не так? или import itertools k=0 for x in range(1,20): for y in range(1,20): for z in range(1,20): s=x*'1'+y*'2'+z*'3' for i in itertools.permutations(s): s1='0'+''.join(i)+'0' s2=s1 while '00' not in s1: s1=s1.replace('01','21022',1) s1=s1.replace('02','310',1) s1=s1.replace('03','230112',1) if s1.count('1')==104 and s1.count('2')==39 and s1.count('3')==83: k=len(s2) break else: continue print(s2) print(k)
|
|
|
Ответов - 5
[только новые]
|
|
|
| Администратор
|
Сообщение: 3507
|
|
Отправлено: 26.04.22 21:11. Заголовок: Anna_Lapsha пишет: е..
Anna_Lapsha пишет: цитата: | если в задании не сказано "порядок не известен", то можно считать что идут 1-цы потом 2-ки и 3-ки? |
|
Это не гарантируется. В каких-то задачах при этом может получиться неправильный ответ.
|
|
|
|
Отправлено: 26.04.22 21:16. Заголовок: значит можно использ..
значит можно использовать перестановки и второй вариан задачи?
|
|
|
|
Отправлено: 26.04.22 22:10. Заголовок: Если по Н. Титов: ..
Если по Н. Титов: d=0 for i in range(0,100): for j in range(0,100): for k in range(0,100): if (3*i + 1*j + 2*k == 104 and 1*i + 0*j + 1*k == 39 and 7*i + 3*j + 6*k == 83): d=(i+j+k) print(d) Так?
|
|
|
|
Отправлено: 26.04.22 22:20. Заголовок: Что не так? d1=d2=d..
Что не так? d1=d2=d3=0 for i in range(0,100): for j in range(0,100): for k in range(0,100): if (3*i + 1*j + 2*k == 104 and 1*i + 0*j + 1*k == 39 and 7*i + 3*j + 6*k == 83): d1=i d2=j d3=k s='0'+d1*'1'+d2*'2'+d3*'3' s1=s while '00' not in s1: s1=s1.replace('01','21022',1) s1=s1.replace('02','310',1) s1=s1.replace('03','230112',1) if s1.count('1')==104 and s1.count('2')==39 and s1.count('3')==83: print(len(s)) break if len(s)-2==d1+d2+d3: print('верно')
|
|
|
|
| Администратор
|
Сообщение: 3512
|
|
Отправлено: 28.04.22 09:54. Заголовок: Вы транспонировали м..
Вы транспонировали матрицу. Надо так: d=0 for i in range(0,100): for j in range(0,100): for k in range(0,100): if (3*i + 1*j + 7*k == 104 and 1*i + 0*j + 3*k == 39 and 2*i + 1*j + 6*k == 83): d=(i+j+k) d1 = i d2 = j d3 = k print(d) s='0'+d1*'1'+d2*'2'+d3*'3'+'0' s1=s while '00' not in s1: s1=s1.replace('01','21022',1) s1=s1.replace('02','310',1) s1=s1.replace('03','230112',1) if s1.count('1')==104 and s1.count('2')==39 and s1.count('3')==83: print(len(s)) break if len(s)-2==d1+d2+d3: print('верно')
|
|
|
|