Каким образом подавать входные данные в нейросеть?
Но почему я не могу написать метод from_string так:cls вместо явного Date позволит наследнику Date (напр. AztecaDate - дата по календарю ацтеков) порождать именно AztecaDate.
Date(1, 1, 2019) # конструктор с сигнатурой (int, int, int)
Date("1.1.2019") # другой конструктор с сигнатурой (str)
В питоне можно добиться подобного, но ручками, анализируя состав аргументов Date.__init__, что неудобно, громоздко и нунафиг. Уж лучше забабахать Date.from_string. Но это неизбежно в динамическом языке - ведь C++ должен знать всё про аргументы конкретных вызовов конструкторов на этапе компиляции, а мы можем в рантайм творить что угодно )))для чего нужен staticmethod, если это уже не метод, а просто функция, и я могу вынести ее из класса.Да, можете. Я думаю, тут действует логика лучшей читаемости и логика экономии пространства имён:
from date import *
вы не получите охапку непонятных имён.# медленно
l = []
for i in range(100500):
l.append(i)
# чуть быстрее )))
push = l.append
for i in range(100500):
push(i)
Что происходит с IL кодом во время компиляции?Он создаётся. Компилятор смотрит на исходник и создаёт этот самый код. Картинка отсюда.
А что будет, если сразу писать на языке IL?Надоест быстро - вот что будет.
Во время компиляции, код, написанный на IL, просто переведется в инструкции для процессора?Смотри первый ответ.
до конца не понялссылки
def power(x, y):
res = 1
for d in f'{y:b}':
res *= res
if d == '1':
res *= x
return res
print(power(21, 13))
function huinia(data) {
if (data.length < 2) return data[0] || 0;
let res = [], i;
data.sort((a, b) => a - b);
for (i = data.length - 2; i >= 0 && data[i] > 1; i -= 2)
res.push(`${data.pop()}*${data.pop()}`);
for (i = data.length - 1; i >= 0 && data[i] > 0; i--)
res.push(data.pop());
if (data.length & 1) res.push(data.pop());
for (i = data.length - 1; i > 0; i -= 2)
res.push(`(${data.pop()}*${data.pop()})`);
return res.join(' + ');
}
console.log(huinia([1, 0, 0, -1, 3, 2, 4, 2, -1, -2, -3, -4]));
4*3 + 2*2 + 1 + 0 + (0*-1) + (-1*-2) + (-3*-4)
Возможно поиск связи между точками можно осуществить по алгоритму DSU(метод не пересекающихся множеств), но у меня не получилось.
N = 5
data = (
((0, 1),),
((1, 2), (3, 2)),
((4, 3),),
((1, 3), (4, 2))
)
root = list(range(N))
def chain_root(a):
res = []
while a != root[a]:
res.append(a)
a = root[a]
return res, a
for pairs in data:
for a, b in pairs:
aa, ra = chain_root(a)
bb, rb = chain_root(b)
if ra > rb:
ra, rb = rb, ra
for node in [*aa, *bb, rb]:
root[node] = ra
aa, ra = chain_root(N - 1)
if ra:
for node in aa:
root[node] = ra
print('WAIT')
else:
print('ATTACK')
break
rand()
, rand() * rand()
, rand() * rand() * rand()
:rand()
дан для ориентации, он синий. Мат. пакеты я взял ради графика, можешь использовать random.random()
l = [1, 2, -6, 7, 4, 3]
le = len(l)
step0, step1, step2 = [None, []], [None, None], [None, None]
l += [0, 0] # добьём незначащими нулями
for i in range(le):
x, y, z = l[i:i + 3]
for j, pos in enumerate(step0):
if pos is None:
continue
newpos = [*pos, -x]
if step1[j] is None or sum(step1[j]) < sum(newpos):
step1[j] = newpos
newpos = [*pos, x, -y]
if step2[j] is None or sum(step2[j]) < sum(newpos):
step2[j] = newpos
step0, step1, step2 = step1, step2, [[*pos, x, y, -z], None]
best = max((pos for step in (step0, step1, step2) for pos in step if pos is not None), key=sum)
print(best[:le])