Архитектор;бизнесмен;бухгалтер:секретарь;писатель.
<span>a = int(input(</span>'input A '<span>))
b = int(input(</span><span>'input B '</span><span>))
for i in range(a,b+1):
for j in range(10):
if str(i).count(str(j)) == 3:
print(i);
Тестовое решение:
input A 1190
Input B 1500
1191
1211
1222
1311
1333
1411
1444
</span>
Данные - это то, с чем работает программа. Программа- это набор команд, которые выполняют действия над данными
1. Делим на кучки 333, 333 и 334 монеты. Взвешиваем кучи по 333. Если они равны - монета в куче с 334. Если нет - то в той, которая легче. Дальше все аналогично: взвешиваем 2 одинаковые кучи. если они одинаковые - то монета в третьей. Иначе в легкой.
2. Далее 333/334 монеты делим на кучки по 111/112
3. 111/112 делим на кучи по 37 / 38 монет
4. кучку 37/38 монет делим на 2 кучи по 12 монет и 1 кучу 14/13 монет
5. Кучку из 12, 13 или 14 монет делим на 2 кучи по 4 монеты и одну 4-6 монет.
6. Кучку из 4-6 монет делим на 2 по 2, либо 2 по 2 и 1 оставшаяся монета. либо 3 кучки по 2.
7. Из кучек по 2 монеты выбираем 1 нефальшивую.
<span>Док-во примерное: для однозначного определения, в какой кучке монета фальшивая, нужно делить их на 2 или 3 кучки. На 4 -уже нельзя будет однозначно определить. Каждым взвешиванием мы уменьшаем кол-во монет, из которого нужно выбрать фальшивую, в 3 раза. На последнем взвешивании должно остаться минимум 3 монеты. Т. е. 3^6-максимальное кол-во монет, из которого можно выбрать 1 фальшивую за 6 взвешиваний. Это 729, что меньше 1000. Т. е. из 1000 монет однозначно определить фальшивую можно только 7ю взвешиваниями.</span>