请求高斯因式分解的简单方法
Simple way to request a factorization over the Gaussians
我在高斯整数上工作并成功地对它们使用 factor
。然而,偶尔虚部可以消失,但我仍然想要高斯整数的因式分解。
例如,程序for(j=-3, 3, print(j,": ",factor(17+j*I)))
写:
-3: [-I, 1; 1 + I, 1; 10 + 7*I, 1]
-2: [-I, 1; 2 + 17*I, 1]
-1: [-1, 1; 1 + I, 1; 1 + 2*I, 1; 2 + 5*I, 1]
0: Mat([17, 1])
1: [-I, 1; 1 + I, 1; 2 + I, 1; 5 + 2*I, 1]
2: Mat([17 + 2*I, 1])
3: [-I, 1; 1 + I, 1; 7 + 10*I, 1]
我希望输出中的中间行有所不同:
-3: [-I, 1; 1 + I, 1; 10 + 7*I, 1]
-2: [-I, 1; 2 + 17*I, 1]
-1: [-1, 1; 1 + I, 1; 1 + 2*I, 1; 2 + 5*I, 1]
0: [-I, 1; 4 + I, 1; 1 + 4*I, 1]
1: [-I, 1; 1 + I, 1; 2 + I, 1; 5 + 2*I, 1]
2: Mat([17 + 2*I, 1])
3: [-I, 1; 1 + I, 1; 7 + 10*I, 1]
是否有一些设置可以做到这一点?或者我是否必须编写自己的“包装器”来专门处理这种情况?
函数 factor(x, {D})
接收一个可选参数 D
指示因式分解域。所以只需在调用 factor(x, I)
:
中指定目标域
> for(j=-3, 3, print(j,": ",factor(17+j*I, I)))
-3: [-I, 1; 1 + I, 1; 10 + 7*I, 1]
-2: [-I, 1; 2 + 17*I, 1]
-1: [-1, 1; 1 + I, 1; 1 + 2*I, 1; 2 + 5*I, 1]
0: [-I, 1; 4 + I, 1; 1 + 4*I, 1]
1: [-I, 1; 1 + I, 1; 2 + I, 1; 5 + 2*I, 1]
2: Mat([17 + 2*I, 1])
3: [-I, 1; 1 + I, 1; 7 + 10*I, 1]
我在高斯整数上工作并成功地对它们使用 factor
。然而,偶尔虚部可以消失,但我仍然想要高斯整数的因式分解。
例如,程序for(j=-3, 3, print(j,": ",factor(17+j*I)))
写:
-3: [-I, 1; 1 + I, 1; 10 + 7*I, 1]
-2: [-I, 1; 2 + 17*I, 1]
-1: [-1, 1; 1 + I, 1; 1 + 2*I, 1; 2 + 5*I, 1]
0: Mat([17, 1])
1: [-I, 1; 1 + I, 1; 2 + I, 1; 5 + 2*I, 1]
2: Mat([17 + 2*I, 1])
3: [-I, 1; 1 + I, 1; 7 + 10*I, 1]
我希望输出中的中间行有所不同:
-3: [-I, 1; 1 + I, 1; 10 + 7*I, 1]
-2: [-I, 1; 2 + 17*I, 1]
-1: [-1, 1; 1 + I, 1; 1 + 2*I, 1; 2 + 5*I, 1]
0: [-I, 1; 4 + I, 1; 1 + 4*I, 1]
1: [-I, 1; 1 + I, 1; 2 + I, 1; 5 + 2*I, 1]
2: Mat([17 + 2*I, 1])
3: [-I, 1; 1 + I, 1; 7 + 10*I, 1]
是否有一些设置可以做到这一点?或者我是否必须编写自己的“包装器”来专门处理这种情况?
函数 factor(x, {D})
接收一个可选参数 D
指示因式分解域。所以只需在调用 factor(x, I)
:
> for(j=-3, 3, print(j,": ",factor(17+j*I, I)))
-3: [-I, 1; 1 + I, 1; 10 + 7*I, 1]
-2: [-I, 1; 2 + 17*I, 1]
-1: [-1, 1; 1 + I, 1; 1 + 2*I, 1; 2 + 5*I, 1]
0: [-I, 1; 4 + I, 1; 1 + 4*I, 1]
1: [-I, 1; 1 + I, 1; 2 + I, 1; 5 + 2*I, 1]
2: Mat([17 + 2*I, 1])
3: [-I, 1; 1 + I, 1; 7 + 10*I, 1]