예제 #1
0
		public static Polynome[] Bezout(Polynome A, Polynome B) {
			Polynome Uk = 1;
			Polynome Vk = 0;
			Polynome UkPlus1 = 0;
			Polynome VkPlus1 = 1;

			while (B != 0) {
				var Uk_save = Uk;
				var Vk_save = Vk;
				Uk = UkPlus1;
				Vk = VkPlus1;

				UkPlus1 = Uk_save - UkPlus1 * (A / B);
				VkPlus1 = Vk_save - VkPlus1 * (A / B);

				var X = B;
				B = A % B;
				A = X;
			}
			return new Polynome[] { Uk / A.GetCoefficient (A.Degré), Vk / A.GetCoefficient (A.Degré) };
		}
예제 #2
0
		public static Polynome PGCD (Polynome A, Polynome B) {
			while (B != 0) {
				var X = B;
				B = A % B;
				A = X;
			}
			return A / A.GetCoefficient (A.Degré);
		}