Tag: 数学

随机数发生器 – 可变长度

目前我的程序(见下文)生成长度为8-12个字符的随机字符串(由数字组成)。 public static string GenerateNewCode(int CodeLength) { string newCode = String.Empty; int seed = unchecked(DateTime.Now.Ticks.GetHashCode()); Random random = new Random(seed); // keep going until we find a unique code ` do { newCode = random.Next(Convert.ToInt32(Math.Pow(10, CodeLength – 1)), Convert.ToInt32(Math.Pow(10, CodeLength) – 1)).ToString(“0000”); } while (!ConsumerCode.isUnique(newCode)); // return return newCode; } 但是,它们是该方法的问题,当codeLength为10或更大时,它会导致错误,因为10 9大于int32.MaxValue 。 不知道如何解决这个问题。

找到两个四元数之间的旋转差异以校准两个坐标系

我需要按特定的数量偏移流式四元数据。 为此,我计划得到2之间的差异,然后将第一个偏移到第二个。 我很难找到2之间的区别。 使用此转换器 。 我正在运行此代码: public void convertQuat180() { Quaternion q = new Quaternion(0.65328f, 0.2706f, 0.65328f, -0.2706f); //45,180,0 Quaternion q180 = new Quaternion(0.70711f, 0, 0.70711f, 0); // 0,90,0 Quaternion result = q180 * Quaternion.Inverse(q); Console.WriteLine(result); } 我希望result如下: (euler) diff = 45, 90 , 0 但相反,我得到: 135,-180,0 我在哪里错了?

如何计算一个位置与另一个位置之间的距离/距离(c#)

嗨,我想知道如何非常准确地计算当用户接近30英尺的另一个指定位置,可能有许多指定的位置,那么最好的方法是什么? *示例场景; 移动应用程序用户移动到其应用程序的许多指定位置附近(30英尺)..(我如何计算2个位置之间的距离,即移动用户和其他位置) 提前致谢

.NET中的BODMAS原则

我今天发现.NET框架在进行计算时遵循BODMAS操作顺序。 这是按以下顺序进行的计算: 括号 命令 师 乘法 加成 减法 但是我已经四处搜索,找不到任何certificate.NET 确实遵循这个原则的文档,是否有这样的文档? 如果你能指出我正确的方向,我将不胜感激。

有小数,如果存在则要修剪到2位小数

有小数,如果存在则要修剪到2位小数

甚至在C#中四舍五入

我没有看到Math.Round的结果。 return Math.Round(99.96535789, 2, MidpointRounding.ToEven); // returning 99.97 据我所知,MidpointRounding.ToEven,千分之五的位置应该使输出为99.96。 这不是这种情况吗? 我甚至试过这个,但它也返回99.97: return Math.Round(99.96535789 * 100, MidpointRounding.ToEven)/100; 我错过了什么 谢谢!

X的每个可能组合分成N个堆栈

我确信这个问题有一个正式的名称,并且知道这个名字可能会帮助我找到解决方案,但我不知道,并且谷歌的问题一直指向我背包问题 ,这是不一样的事情。 我想取一些值X并找到将该值拆分为N个整数整数的可能组合。 如果我的措辞令人困惑,这里是X = 4,N = 3的例子 Stack -> 1 | 2 | 3 | ———————- #1—–> 4 | 0 | 0 | ———————- #2—–> 3 | 1 | 0 | ———————- #3—–> 2 | 1 | 1 | ———————- #4—–> 2 | 2 | 0 | 复制是可以接受的,因为它很容易删除,但理想情况下不会计算。 解决问题的算法将是完美的,但即使找出问题的名称也会使研究更容易。 谢谢。

不太通用的generics? C#generics算术的一种可能解决方案

目前,C#中的generics不允许任何理智的方式来执行算术。 有一些尴尬的解决方法,但它们都不是很整洁,所有这些都会降低性能。 根据这次访谈 ,不可能实现具有算术类型的接口,因此建议使用这样的解决方法。 但你可以做的是让你的矩阵作为计算器的参数,并在计算器中,有一个名为multiply的方法。 你去实现它,然后将它传递给Matrix。 为什么我必须告诉高级编程语言如何添加和增加数字? [由于受欢迎的需求而编辑] 为什么不简单地允许将Generic限制为类型列表? 例如。 class Matrix where T : int,long,float,double 语法当然可以是不同的。 但是编译器只需要检查类型是否在列表中,并且所使用的运算符适用于所有类型,这应该比显然太难的接口建议简单得多。 是否有任何明显的原因导致无法实施?

C#:如何使用舍入对整数进行简单的数学运算?

我希望方程的结果四舍五入到最接近的整数。 例如 137 * (3/4) = 103 请考虑以下错误代码。 int width1 = 4; int height1 = 3; int width2 = 137; int height2 = width2 * (height1 / width1); 在C#中执行“整数”数学的正确方法是什么? 我真的必须这样做: int height2 = (int)Math.Round( (float)width2 * ((float)height1 / (float)width1) );

系列计算

我有一些随机整数 99 20 30 1 100 400 5 10 我必须从这些整数的任意组合中找到一个总和,它与给定的数字最接近(等于或多但不少) 183 这样做最快,最准确的方法是什么?