Для того, чтобы перевести целое число из десятичной в двоичную систему счисления, необходимо разделить его на два, а затем делить на два каждое полученное частное до тех пор, пока не получится единица. Искомое двоичное число записывается как последовательность цифр, равных последнему частному (единице) и всем полученным остаткам, начиная с последнего.
Надо перевести сначала 21 в двоичную, потом 2 в двоичную и потом 2002 в двоичную
Получается вот так: 21 = 10101 2=10 2002 = 11111010010
ответ:я не уверена в ответах(давно не решала такие задачи)
16
[29, 31]
[28, 30]
12
[21, 23]
[20, 22]
Объяснение:
def moves(heap):
a,b=heap
return[(a+1,b),(2*a,b),(a,b+1),(a,b*2)]
table={(k,s):0 for k in range(501)for s in range(501)}
for x in table:
if any(sum(t)>=69 for t in moves(x)):
table[x]=1
for x in table:
if table[x]==0 and all(table[t]==1 for t in moves(x)):
table[x]=2
for x in table:
if table[x]==0 and any(table[t]==2 for t in moves(x)):
table[x]=3
for x in table:
if table[x]==0 and all(table[t]==3 or table[t]==1 for t in moves(x)):
table[x]=4
print(min([s for s in range(1,118)if any(table[t]==1 for t in moves((5,s)))]))
print([s for s in range(1,118)if table[(5,s)]==3])
print([s for s in range(1,118)if table[(5,s)]==4])
def moves(heap):
a,b=heap
return[(a+1,b),(2*a,b),(a,b+1),(a,b*2)]
table={(k,s):0 for k in range(501)for s in range(501)}
for x in table:
if any(sum(t)>=53 for t in moves(x)):
table[x]=1
for x in table:
if table[x]==0 and all(table[t]==1 for t in moves(x)):
table[x]=2
for x in table:
if table[x]==0 and any(table[t]==2 for t in moves(x)):
table[x]=3
for x in table:
if table[x]==0 and all(table[t]==3 or table[t]==1 for t in moves(x)):
table[x]=4
print(min([s for s in range(1,118)if any(table[t]==1 for t in moves((5,s)))]))
print([s for s in range(1,118)if table[(5,s)]==3])
print([s for s in range(1,118)if table[(5,s)]==4])
Надо перевести сначала 21 в двоичную, потом 2 в двоичную и потом 2002 в двоичную
Получается вот так:
21 = 10101
2=10
2002 = 11111010010
В итоге:
10101.10.11111010010