Tag: math

数学问题:根据外角半径/厚度确定内边框的圆角半径

这是数学高手的数学/几何问题(不是我最强的主题)。 这适用于WPF,但应该足够通用,无论如何: 我有两个嵌入的边框元素,外边框有一定的角半径, R和边框厚度T 给定这两个值,内边框的角半径R’应该设置为使得两个角边不相交或没有孔? alt text http://sofzh.miximages.com/c%23/2z5t3qs.png 到目前为止,我一直在关注它,但如果有人能给我一个合适的配方,那将是伟大的。 尊重点,如果你能! ;)

按比例分配(按比例分配)一组值的值

我需要根据列表中“基础”值的相对权重编写将在列表中按比例分配值的代码。 简单地将“基础”值除以“基础”值的总和,然后将该因子乘以原始值以按比例分配工作: proratedValue = (basis / basisTotal) * prorationAmount; 但是,必须将此计算的结果舍入为整数值。 舍入的效果意味着列表中所有项目的proratedValue总和可能与原始prorationAmount不同。 任何人都可以解释如何应用“无损”比例算法,该算法在列表中尽可能准确地按比例分配值,而不会出现舍入错误?

为什么Math.Cos返回错误的值?

在我的代码中: Vector2 colCircle = new Vector2(); colCircle = new Vector2((R * Math.Sin(D)), -(R * Math.Cos(D))); 而: R = 22.627 D = 89.214 在我的计算器上检查时,X值是正确的,但Y值应该是-0.310,但在程序中它是-7.134。 有什么想法吗?

C#双加 – 奇怪的行为

public static void Main() { Dictionary values = new Dictionary(); values.Add(“a”, 0.002); values.Add(“b”, 0.003); values.Add(“c”, 0.012); // Summing iteratively. double v1 = 615.0; foreach (KeyValuePair kp in values) { v1 += kp.Value; } Console.WriteLine(v1); // Summing using the Sum method. double v2 = 615.0; v2 += values.Values.Sum(); Console.WriteLine(v2); Console.ReadLine(); } 当我在调试器中查看v1的值时,它给出的值为615.01699999999994,但对于v2,它给出的值为615.017。 由于某种原因,Sum方法产生准确的结果,而迭代地对它们求和则不然。 (当我打印这两个值时它们是相同的,但我认为这是由于WriteLine方法所做的一些舍入。) 有谁知道这里发生了什么?

C#中的排列和组合

请告诉我如何在C#控制台应用程序中应用排列和组合,并获取N和r的值并计算排列和组合。

C#:function评估顺序(vs C)

请使用以下C代码( K&R第77页 ): push(pop() – pop()); /* WRONG */ 这本书说,因为-和/不是可交换的运算符,所以评估2个pop函数的顺序是必要的(显然,为了获得正确的结果)……因此你必须将第一个函数的结果放入先变量,然后继续算术,如下: op2 = pop(); push(op2 – pop()); 显然这是因为编译器无法保证评估函数的顺序(…为什么?) 我的问题是,C#做同样的事吗? 在使用C#时,我是否需要担心这种事情? 就此而言,任何其他更高级别的语言?

获取多面体的表面区域(3D对象)

我有一个3D表面,(想想xy平面)。 飞机可以倾斜。 (想想一条斜坡路)。 给定定义曲面的3D坐标列表( Point3D1X , Point3D1Y , Point3D1Z , Point3D12X , Point3D2Y , Point3D2Z , Point3D3X , Point3D3Y , Point3D3Z等),如何计算曲面的面积? 请注意,我的问题类似于在2D平面中查找区域。 在2D平面中,我们有一个定义多边形的点列表,使用这个点列表我们可以找到多边形的面积。 现在假设所有这些点都具有z值,使得它们在3D中boost以形成表面。 我的问题是如何找到3D表面的区域?

我的代码中可能的优化?

为了解决欧拉项目问题5 ,我编写了以下程序: class p5 { const int maxNumber = 20; static void Main(string[] args) { Job(); // First warm-up call to avoid Jit latency var sw = Stopwatch.StartNew(); var result = Job(); sw.Stop(); Debug.Assert(result == 232792560); Console.WriteLine(result); Console.WriteLine(sw.Elapsed); Console.ReadLine(); } private static int Job() { var result = Enumerable.Range(1, int.MaxValue – 1) .Where( n => […]

连接八度音程与C#

我在Octave开发了一个程序,我想添加一个GUI层。 我想在C#中创建一个可以分发的可执行程序,但是想要坚持使用Octave的线性代数结构,而不必自己实现它们。 特别是,我想要基本的矩阵,向量运算和优化函数(如fminunc和fmincg )。 实现这一目标的最佳方法是什么? 或许适当的C#线性代数库?

求解两个三维线段交点的算法

找到两个2D线段的交点很容易; 公式很简单 。 但我担心找到两条3D线段的交点不是。 什么是算法,在C#中最好找到两个3D线段的交点? 我在这里找到了一个C ++实现 。 但我不相信解决方案,因为它优先考虑某个平面(看看在实现部分下实现perp的方式,它假设偏向z plane 。任何通用算法都不能假设任何平面方向或偏好)。 有更好的解决方案吗?