C# 将BigInteger提升为负数
我有以下代码:C# 将BigInteger提升为负数,c#,C#,我有以下代码: System.Numerics.BigInteger k = SomeBigInteger(); System.Numerics.BigInteger M; M = System.Numerics.BigInteger.Pow(k,-1); Response.Write(+M); 但是,这会产生错误: 数字必须大于或等于零。参数名称:指数 如何将biginger提升为负数?将k提升为-1次幂将导致1/k,只有当k为1时,它才是整数。当k大于1时,结果将不是整数,这就是big
System.Numerics.BigInteger k = SomeBigInteger();
System.Numerics.BigInteger M;
M = System.Numerics.BigInteger.Pow(k,-1);
Response.Write(+M);
但是,这会产生错误:
数字必须大于或等于零。参数名称:指数
如何将
biginger
提升为负数?将k
提升为-1
次幂将导致1/k
,只有当k
为1时,它才是整数。当k
大于1时,结果将不是整数,这就是biginger.Pow()
不支持提升到负幂的原因。将k
提升到-1
次幂将导致1/k
,只有当k
为1时,它才会是整数。当k
大于1时,结果将不是整数,这就是为什么biginger.Pow()
不支持提升为负幂。显然,这种操作的结果仅在非常特殊的情况下才会保持整数。你理解负幂的数学意义吗?负幂本质上不是一个分数吗。如果需要用整数表示,您希望答案是什么?您必须先转换为另一种可以处理分数的类型,如十进制、双精度或浮点。我如何处理分数?@DanKaufman现在还不清楚biginger.Pow()
是否必须返回整数。例如,它可以返回任意大(在本例中为小)的float/double。就我个人而言,我希望它返回与1/k
类似的内容,而不是抛出错误。显然,这种操作的结果只在非常特殊的情况下保持整数。你理解负幂的数学意义吗?负幂本质上不是一个分数吗。如果需要用整数表示,您希望答案是什么?您必须先转换为另一种可以处理分数的类型,如十进制、双精度或浮点。我如何处理分数?@DanKaufman现在还不清楚biginger.Pow()
是否必须返回整数。例如,它可以返回任意大(在本例中为小)的float/double。就个人而言,我希望它返回与1/k
类似的内容,而不是抛出错误。如果k
为-1;,它也是一个整数。)@juharr touché:)这并不是真正的答案,而是图书馆不支持它。在这种情况下,biginger.Pow()
确实返回一个biginger
,但也不可能返回任意小的浮点/双精度。它可能可以使用biginger.DivRem()
来解决,这取决于操作的大小k
island me put k=51。。。。好的,那么BigInteger.DivRem(51,-1)或DivRem(1,51)或什么?如果k
是-1;,它也是一个整数。)@juharr touché:)这并不是真正的答案,而是图书馆不支持它。在这种情况下,biginger.Pow()
确实返回一个biginger
,但也不可能返回任意小的浮点/双精度。它可能可以使用biginger.DivRem()
来解决,这取决于操作的大小k
island me put k=51。。。。好的,那么大整数。DivRem(51,-1)或DivRem(1,51)或什么?