问题标签 [system.numerics]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 如何添加对 System.Numerics.dll 的引用
我想使用 System.Numerics 中的 BigInteger 类,但如果我想写
Numerics
没有找到。我在网上搜索,发现我必须添加对 的引用System.Numerics.dll
,但我该怎么做呢?
c# - 如何在一定范围内生成随机 BigInteger?
考虑这种效果很好的方法:
现在,为了满足我正在学习的课程的要求,mightBePrime
必须接受BigInteger
N,但这意味着我需要一种不同的方式来生成我的 random BigInteger
a
。
我的第一个想法是做类似的事情BigInteger a = (N-1) * rGen.NextDouble ()
,但是 aBigInteger
不能乘以 a double
。
如何生成BigInteger
1 和 N-1 之间的随机数,其中 N 是 a BigInteger
?
.net - 为什么只有 Matrix3x2 和 Matrix4x4?
为什么System.Numerics 命名空间定义类型 Matrix3x2 和 Matrix4x4 但不提供 2x2 或 3x3 矩阵?这些至少同样有用。
.net - 类型或命名空间名称 'Vector' 在命名空间 'System.Numerics' 中不存在
我尝试System.Numerics.Vector<double>()
在我的代码中使用,但出现构建错误
命名空间“System.Numerics”中不存在类型或命名空间名称“Vector”
我是否缺少程序集参考?
我的 csproj 目标是 .NET 4.6.1
其他类型正确显示
.net - 为什么是矢量.计数静态?
我正在尝试使用System.Numerics.Vector<T>
(文档)。
我写了一个简单的单元测试:
但它给了我一个构建错误:
无法使用实例引用访问成员“Vector.Count”;改为使用类型名称来限定它
令我惊讶的是,Vector<T>.Count
是静态的。
所以我尝试了:
现在代码构建但单元测试失败:
Assert.AreEqual 失败。预期:<3>。实际:<2>。
这是怎么回事?
调查我发现:
c# - System.Numerics.Vector 中的元素总和在 .NET 4.6 中
我无法弄清楚如何在 System.Numerics.Vector 类型的向量中获取元素总和。
如果真的可以吗?我怎样才能做到这一点?
c# - Org.BouncyCastle.Math.BigInteger.ToByteArrayUnsigned 的 .NET System.Numerics.BigInteger 等效项是什么?
我目前正在使用BouncyCastle 的 .NET 端口,System.Guid
并且在使用本机 .NET将大整数转换为 a 时遇到了一些麻烦BigInteger
。
在某些情况下,我在一个(“源”)应用程序中使用 BouncyCastle 将 a 转换System.Guid
为Org.BouncyCastle.Math.BigInteger
. 然后将该值保存为格式为的字符串3A2B847A960F0E4A8D49BD62DDB6EB38
。
然后,在另一个(“目的地”)应用程序中,我将这个保存的字符串值 aBigInteger
并尝试将其转换回System.Guid
.
请注意,在目标应用程序中,我不希望 BouncyCastle 作为参考,而是希望使用核心 .NET 库进行转换。但是,由于我在使用核心 .NET 类进行转换时遇到问题,因此我使用的是 BouncyCastle,以下代码完全符合我的要求:
如您所见,有一种ToByteArrayUnsigned
方法Org.BouncyCastle.Math.BigInteger
可以使这项工作。如果我使用ToByteArray
on the System.Numerics.BigInteger
(即使在调整数组大小时,如本问题中所述)它也不起作用,并且我得到的结果与System.Guid
预期的不同。
那么,使用本机 .NET 类执行与上述操作等效的最佳方法是什么?
解决方案
感谢@John-Tasler 的建议,事实证明这是由于字节序……该死的字节序……你的字节序会结束吗?:P
var parsed = System.Numerics.BigInteger.Parse( "3A2B847A960F0E4A8D49BD62DDB6EB38", NumberStyles.HexNumber ).ToByteArray();
Array.Resize( ref parsed, 16 );
var guid = new Guid( parsed.Reverse().ToArray() ); // Hoorrrrayyyy!
c# - 指向包含 System.Numerics.Vector 的结构的指针在 C# 中
由于 SIMD,我正在尝试使用 System.Numerics 库制作带有 4 个双打的向量。所以我做了这个结构:
在这个阶段,我将其编码为 128 位 SIMD 寄存器。它工作正常,但是当我想要这样的东西时:
我明白了:
无法获取托管类型 ('Vector4D') 的地址、大小或声明指向托管类型的指针
知道如何将 stackalloc 与 System.Numerics.Vector 一起使用吗?使用 System.Numerics.Vector4 (浮点精度),指针没有问题,但我需要双精度。
c# - System.Numerics 平面是否向后?
我正在使用 System.Numerics 编写一些几何代码,我似乎在该Plane.CreateFromVertices
方法的实现中遇到了一个错误。评论Plane.D
说:
平面沿其法线向量到原点的距离。
但是,如果我在 Y = 0.5 处用三个顶点调用它,我会得到平面:
D是负数!据我所知,评论是错误的,应该将 D 标记为:
原点到平面沿法线向量的距离
orPlane.CreateFromVertices
是错误的,D 应该是正数。
我是正确的(在这种情况下我应该去写一个错误报告),还是我在这里误解了一些东西(在这种情况下,是什么以及为什么?)。
c# - 如何在 MonoDevelop 中使用 BigInteger 类?
我在 Linux Mint 中使用 MonoDevelop。
我的问题是我找不到引用“System.Numerics”,否则我在使用 Windows 时可以在 VisualStudio 中轻松找到。
我特别想将 BigInteger 用于更大的值。我能找到的最接近的是这个库:https ://biginteger.codeplex.com/ ;这对我来说并没有真正起作用,因为我无法链接它。
(这是我在这里能找到的唯一与我的问题相似的东西,但对我不起作用:Mono missing System.Numerics.BigInteger.Parse(string,IFormatProvider)。任何其他允许我使用数字的建议欢迎大于 20 位数。)