Дадена е числова стойност x
, можете просто да направите това float(x).is_integer()
, за да проверите дали е цяло число. Има ли начин да се направи това за комплексни числа?
Опитвам се да използвам списъчно разбиране, за да взема само целите корени на полином върху крайно поле, които са цели числа.
[r for r in solve(f,domain=FiniteField(p)) if float(r).is_integer()]
но ако функцията solve връща сложни корени, това не работи.
Някой знае ли как да: провери дали дадено (евентуално сложно число) е цяло число ИЛИ знае дали има функция SymPy за получаване на корените на полином върху крайно поле, които са цели числа?
domain=FiniteField(p)
къмsolve
изглежда не прави нищо. - person Mark Dickinson   schedule 25.03.2015[irred for irred in factor(f, modulus=p).as_ordered_factors() if degree(irred) == 1]
. Това ви дава само линейните множители на моничен полиномf
по модулp
и от тях трябва да можете да извлечете корените. - person Mark Dickinson   schedule 25.03.2015