Мой кодКак проверить, является ли число квадратным числом в Python?
if graph == square_grid and type(math.sqrt(nodes)) is not int:
print "Your netork can't have that number of nodes"
Конечно, это не работает, потому что Math.sqrt всегда возвращает число с плавающей точкой. Как я могу это сделать?
Hm. Видя, что числа с плавающей запятой неточны, может случиться так, что sqrt() квадратного числа не будет целым числом из-за ошибок округления во время вычисления? Это сделает ответ @ larsmans лучше. – millimoose
- это действительная точка, хотя я только что запустил цикл for, который будет распечатывать все допустимые квадраты до 100 000 с помощью этого метода, и он не пропустил один. –
Целые числа точно представлены в плавающей точке (они имеют все нули после точки). Я не уверен, гарантирован ли «sqrt», чтобы сохранить это. –