Tag: 数学

C#正常随机数

我想创建一个接受Double mean , Double deviation的函数,并返回一个正态分布的随机数。 例如:如果我传入5.00作为平均值而2.00作为偏差,68%的时间我会得到一个介于3.00和7.00之间的数字 我的统计数据有点弱…… 任何人都知道如何处理这个问题? 我的实现将是C#2.0,但只要数学函数是标准的,就可以用您选择的语言回答。 我认为这实际上可能就是我要找的东西。 任何帮助将此转换为代码? 在此先感谢您的帮助。

我怎样才能测试素性?

我正在写一个带有一些素数相关方法的小库。 因为我已经完成了基础工作(也称为工作方法),现在我正在寻找一些优化。 当然,互联网是一个很好的地方。 然而,我偶然发现了一个四舍五入的问题,我想知道如何解决这个问题。 在循环中,我用它来测试一个数字,因为它的搜索效率更高,搜索直到sqrt(n)而不是n / 2甚至n – 1.但是由于舍入问题,一些数字会被跳过,因此会跳过一些素数! 例如,第10000个素数应为:104729,但“优化”版本最终为:103811。 一些代码(我知道,它可以进行更多优化,但我一次只能处理一件事): /// /// Method for testing the primality of a number eg: return IsPrime(29); /// History: /// 1. Initial version, most basic form of testing: m smaller then n -1 /// 2. Implemented m smaller then sqrt(n), optimization due to prime factoring /// /// Number […]

旋转图像数学(C#)

我有一个有两个点的图像,对齐如下: |—————-| | | | . | | | | . | | | |—————-| 我有两个点的X,Y坐标,我需要将图像旋转X度,所以它看起来像这样: |—————-| | | | | | . . | | | | | |—————-| 基本上所以他们在彼此旁边对齐,这是什么数学? (C#中的代码示例会更好但不是必需的)

人气算法

在SO 18上,Joel提到了一种算法,该算法可以根据项目的年龄和受欢迎程度对项目进行排名,它基于重力。 有人发帖吗? C#会很可爱,但实际上任何语言(好吧,我不能做LISP)都没关系。

在C#中计算整数log2的最快方法是什么?

如何最有效地计算C#中整数(日志库2)所需的位数? 例如: int bits = 1 + log2(100); => bits == 7

旋转矩阵给定角度和X,Y,Z点

我正在进行图像处理,我想根据角度,原点以及x,y和z坐标旋转xyz空间中的所有像素。 我只需要设置正确的矩阵(4×4)然后我就会很好。 角度是度,而不是弧度,x,y,z都是从-1到1(浮点数) 编辑: 好吧,这是我为了由原点和X,Y,Z坐标定义的给定线进行旋转而编写的代码。 float ang = angD * (float)(Math.PI / 180); // from degrees to radians, if needed //U = n*n(t) + cos(a)*(In*n(t)) + sin(a)*N(x). var u = MatrixDouble.Identity(4); // 4×4 Identity Matrix u = u.Multiply(Math.Cos(ang)); var n = new MatrixDouble(1, 4, new List { x, y, z, 0 }); var nt = […]

如何强制数字在C#范围内?

在C#中,我经常要将整数值限制为一系列值。 例如,如果应用程序需要百分比,则用户输入中的整数不得小于零或大于一百。 另一个例子:如果有五个网页通过Request.Params[“p”]访问,我期望值为1到5,而不是0或256或99999。 我经常写一个非常丑陋的代码,如: page = Math.Max(0, Math.Min(2, page)); 甚至是丑陋的: percentage = (inputPercentage 100) ? 0 : inputPercentage; 在.NET Framework中没有更聪明的方法来做这些事情吗? 我知道我可以编写一个通用方法int LimitToRange(int value, int inclusiveMinimum, int inlusiveMaximum)并在每个项目中使用它,但也许框架中已经有一个神奇的方法了? 如果我需要手动完成,那么在第一个例子中做什么是“最好的”(即更简单,更快速)的方法呢? 像这样的东西? public int LimitToRange(int value, int inclusiveMinimum, int inlusiveMaximum) { if (value >= inclusiveMinimum) { if (value <= inlusiveMaximum) { return value; } return inlusiveMaximum; } return […]

为什么C#默认不使用算术溢出检查?

可能重复: 为什么语言默认情况下不会在整数溢出上引发错误? 为什么C#默认不使用算术溢出检查? 我认为发生exception通常会更好,这样就不会模糊错误。 我知道利用发生的“包装”行为偶尔会有用,但是在这些情况下可以使用unchecked关键字来明确意图。 我希望这个决定是故意做出的,也许是为了增加与其他基于C语言的兼容性。

评估数学表达式的最佳算法?

什么是评估数学表达式的最佳算法? 我希望能够优化这一点,因为我可能有一个带有各种变量的公式,我可能需要使用不同的变量评估数百次。 所以基本上如果我最初可以解析公式以便以某种方式对其进行优化,然后我可以根据需要将变量传递给此优化版本,每次为我生成结果。 我将用Delphi或C#编写这个。 我已经通过使用分流码算法编写了类似的东西,但每次我需要计算相同的公式时,我必须经历解析阶段。 必须有更好的方法来做到这一点。

计算距离A的给定距离的AB线上的点

我会非常疯狂地计算沿着给定线AB的点,在距离A的给定距离处,以便我可以“绘制”两个给定点之间的线。 一开始听起来很简单,但我似乎无法做到这一点。 更糟糕的是,我不明白我哪里出错了。 几何(和一般的数学)不是我强大的套件。 我已经阅读了类似的问题,并在那里有答案。 事实上,我直接从Mads Elvheim的回答中解除了我对CalculatePoint函数的当前实现: 给定一个起点和终点以及一个距离,计算沿线的一个点 (加上后面的注释中的修正 – 如果我理解正确的话)因为我的独立尝试解决问题让我无处可去,除了头等舱快递票务frusterpationland。 这是我的更新代码(请参阅EDIT备注post的底部): using System; using System.Drawing; using System.Windows.Forms; namespace DrawLines { public class MainForm : Form { // ===================================================================== // Here’s the part I’m having trouble with. I don’t really understand // how this is suposed to work, so I can’t seem to get it […]