Как записать условие в программе?

"Исходная строка содержит десять единиц и три двойки, других цифр нет, ТОЧНЫЙ ПОРЯДОК РАСПОЛОЖЕНИЯ ЕДИНИЦ И ДВОЕК НЕИЗВЕСТЕН." Подскажите пожалуйста, как можно записать условие, что точный порядок неизвестен? т.е. сначала var s := 10*'1'+3*'2'; а как записать условие любого расположения этих цифр? Заранее спасибо за ответ :)


Ответы (2 шт):

Автор решения: GrAnd

Как вариант:

import random
s ='1'*10 + '2'*3
res = ''.join(random.sample(s, len(s)))

Ещё можно посмотреть на функцию random.shuffle().

→ Ссылка
Автор решения: passant

Это же надо простейшее условие задачи изложить так сложно. УСЛОВИЕ чего вы хотите ПРОВЕРИТЬ?

Исходная строка содержит десять единиц и три двойки, других цифр нет, -- ок, если это условие, и надо проверить, соответствует ли ИСХОДНАЯ строка этому условию, тогда зачем ваша проверка на количество вхождений?

А вот если это надо проверить, то:

st1='1112111211121'
if st1.count('1')==10 and st1.count('2')==3 :
    print ('Условию соответствует')
else:
    print ('Условию НЕ соответствует')

Если надо проверить, что других символов в строке нет, то:

if set(st1)=={'2','1'}:
    print ('Совпали по составу')
else:
    print ('Не совпали по составу')

Ну а дальше - комбинируйте эти условия как вам надо.

Что вы хотели сказать этим оператором

var s := 10*'1'+3*'2'

и вообще, на каком языке он написан(на pascal что-ли?) - остается неразгаданной тайной.

→ Ссылка