草庐IT

c# - System.Math 未识别

usingSystem;usingSystem.Math;classtest{publicstaticvoidMain(){Console.Write("Enteranyvalue:");strings=Console.ReadLine();doublen=double.Parse(s);doubler=Math.sqrt(n);Console.WriteLine(r);Console.ReadKey();}}我觉得这段代码中的每一件事都清楚,但是这段代码给出了编译错误:using命名空间指令只能应用于命名空间;“System.Math”是一种类型而不是命名空间如何使用数学函数?我们在

c# - 表达式树 - Math.Max 替换

当我使用表达式树来替换一个方法时,比如Math.Max,看起来它在表达式树中成功地替换了它。但是当我在EntityFramework中使用它时,它抛出一个关于EntityFramework不支持Math.Max的异常。但我明确地替换了它。有人知道为什么吗?以及修复代码的方法?usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Linq.Expressions;namespaceConsoleApplication1{publicstaticclassCalculateDatabase{publ

c# - 在编程中实现数学方程式时遇到问题

我正在为学校实现一个算法,但在理解定积分在编程中的表示方式时遇到了问题。例如,我知道求和方程可以用下面的例子来实现:假设y=f(x)if(x==0){y=x+1;}else{for(inti=0;i然后我将如何表示一个数值积分,例如:此处设置的方程式可能没有数学意义,但我的目标是在c#中为我必须执行的学校编程项目实现类似的方程式,在该项目中我必须实现包含积分的算法。我一直在读到有数值方法可以解决定积分,例如辛普森规则;我是否必须使用此类方法来实现方程,或者可以在编程中表示积分,例如循环或类似的东西? 最佳答案 这取决于你想做什么。如

c# - 计算二维有符号距离场

我正在尝试计算黑白图像像素的带符号距离场,但我认为我的代码某处出错了。因为这是我的输入和输出:输入输出我遇到的问题是S中间的黑线,我的理解让我相信它应该是完全浅灰色的?这是我正在使用的代码:for(intx=0;x 最佳答案 你的罪魁祸首是这个条件语句://Ifnotequalaif(a!=p){这意味着您只对从黑色像素到白色像素的最短距离感兴趣,或者如果“a”是白色,那么您正在寻找最近的黑色像素。如果您将该测试更改为仅查看:if(p==white){然后你可能会得到你所期望的。(我没有对此进行测试,所以希望它是正确的)。(此外,如

c# - 为什么 Math.Exp 在 32 位和 64 位之间给出不同的结果,具有相同的输入,相同的硬件

我将.NET2.0与PlatformTargetx64和x86一起使用。我给Math.Exp相同的输入数字,它在任一平台上返回不同的结果。MSDN说你不能依赖文字/解析的Double在平台之间表示相同的数字,但我认为我在下面使用Int64BitsToDouble避免了这个问题并保证在两个平台上对Math.Exp的输入相同。我的问题是为什么结果不同?我本以为:输入以相同的方式存储(double/64位精度)无论处理器的位数如何,FPU都会执行相同的计算输出以同样的方式存储我知道一般情况下我不应该比较第15/17位之后的float,但我对这里的不一致与在同一硬件上看似相同的操作感到困惑。有

c# - 列出 1...n 之间的 k 个整数的所有可能组合(n 选择 k)

无缘无故,我决定寻找一种算法,该算法可以产生1...n之间的k个整数的所有可能选择,其中k个整数之间的顺序无关紧要(n选择k个东西)。出于完全相同的原因,这根本不是原因,我也用C#实现了它。我的问题是:您是否发现我的算法或代码有任何错误?而且,更重要的是,您能推荐一个更好的算法吗?请多关注算法而不是代码本身。这不是我写过的最漂亮的代码,但如果您看到错误,一定要告诉我。编辑:Alogirthm解释-我们持有k个指数。这会创建k个嵌套的for循环,其中循环i的索引是indices[i]。它模拟k个for循环,其中indices[i+1]属于嵌套在indices[i]循环中的循环。indic

c# - 3D 点线上的 3D 垂直点

这个问题之前已经被问到关于2D的问题。这个问题将其扩展到3D。如何从3D空间中的一个点找到直线上的垂直相交点?如果我的线由点(x1,y1,z1)&(x2,y2,z2)定义并且我有一个点(x3,y3,z3)在空间中。如何在(x3,y3,z3)的直线上找到点(x4,y4,z4)的垂直交点? 最佳答案 对于初学者来说,您非常需要Vector3类的一些实现,无论您是自己编写、在Internet上的某个地方找到一个独立的实现,还是使用包含类似XNA的库或Sharp3D.Math.通常,3d空间中的线不由两点表示,而是由参数方程表示,并由向量而

c# - 如何在不循环的情况下使用 System.TimeSpan 值实现模数运算?

我在我的代码(C#/WPF)中对性能非常敏感的部分,我需要以最快的方式在两个System.TimeSpan值之间执行取模运算。此代码每秒将运行数千次,我非常愿意不惜一切代价避免使用手动循环计算。两个TimeSpans之间的模数的想法可能看起来有点奇怪,所以请允许我解释一下-说我们有时间跨度A=1分30秒时间跨度B=20秒以下是常见操作及其合理结果的列表:A+B=(TimeSpan)1分50秒A-B=(TimeSpan)1分10秒A*B=没有合理的计算方法我们应该能够将TimeSpan乘以一个整数。A*5=(TimeSpan)7分30秒Microsoft尚未实现TimeSpans和整数之

c# - 将一个范围内的数字转换为另一个范围内的数字

这个问题在这里已经有了答案:关闭12年前。PossibleDuplicate:Convertanumberrangetoanotherrange,maintainingratio所以我有一个返回0到255之间的值的函数,我需要将这些值转换为-255到255之间的值所以200大约是145,150大约是45,依此类推。我看过Convertanumberrangetoanotherrange,maintainingratio但是那里的公式不起作用。我可以使用任何其他公式吗?

c# - Math.Round 不保留尾随零

我需要将所有值四舍五入到小数点后两位。所以1.401应该四舍五入到1.40,但是Math.Round(value,2)四舍五入到1.4。如何强制尾随零? 最佳答案 1.4与1.40相同-您只是想以不同的方式显示它。调用ToString时使用格式字符串-如value.ToString("0.00") 关于c#-Math.Round不保留尾随零,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questi