Tag: 语言不可知的

方法重载是否考虑多态?

方法重载被认为是多态的一部分吗?

只写属性是否有实际应用?

我不知道为什么我开始想这个,但现在我似乎无法停下来。 在C#中 – 也许还有很多其他的语言,我记得Delphi也曾经让你这样做 – 编写这个语法是合法的: class WeirdClass { private void Hello(string name) { Console.WriteLine("Hello, {0}!", name); } public string Name { set { Hello(name); } } } 换句话说,该属性有一个setter,但没有getter ,它是只写的 。 我想我想不出有什么理由说这是非法的 ,但是我从来没有真正看到过它,而且我看起来在野外有一些相当辉煌的代码。 这似乎是一种代码味道; 编译器似乎应该给我一个警告: CS83417:属性“名称”似乎是完全无用和愚蠢的。 不好的程序员! 考虑用一种方法replace。 但是也许我只是没有做足够长的时间,或者一直在狭窄的领域里工作,以便看到有效使用这样的结构的例子。 是否有真实的只写属性的例子,要么不能被直接的方法调用取代,要么变得不那么直观?

如何计算一个球体上一个点到一个线段的距离?

我在地球上有一个线段(大圆圈部分)。 线段由其端点的坐标定义。 显然,两点限定了两条线段,所以假设我对较短的线段感兴趣。 我得到第三点,我正在寻找线和点之间的(最短的)距离。 所有坐标都以经度/纬度(WGS 84)给出。 我如何计算距离? 任何合理的编程语言的解决scheme将做。

用于创build色轮的function

这是我屡次伪解的东西,从来没有find一个解决scheme。 这是困在我身上。 问题是想出一种方法来生成N种颜色,尽可能区分N是参数。

按螺旋顺序打印二维数组

如何以螺旋顺序打印5×5的二维数组? 是否有任何公式,以便我可以按螺旋顺序打印任何大小的数组?

什么是存在型?

我通读维基百科文章存在的types 。 由于存在操作符(∃),我认为它们被称为存在types(existential types)。 不过,我不确定它的意义。 有什么区别 T = ∃X { X a; int f(X); } 和 T = ∀x { X a; int f(X); } ?

将IEEE 754 double转换为string的algorithm?

许多使用IEEE 754双打的编程语言提供了一个库函数来将这些双精度转换为string。 例如,C有sprintf ,C ++有stringstream ,Java有Double.toString等 在内部,这些function是如何实现的? 也就是说,他们使用什么algorithm将double转换成string表示,因为它们通常受到程序员select的精度限制? 谢谢!

为什么关系型基于集合的查询比游标更好?

在使用TSQL或PLSQL编写数据库查询时,我们经常可以select使用游标遍历行来完成任务,或者制作一次执行同一作业的单个SQL语句。 另外,我们可以select简单地将大量数据拉回到我们的应用程序中,然后使用C#或者Java或者PHP或者其他方法逐行处理。 为什么使用基于集合的查询更好? 这个select背后的理论是什么? 什么是基于游标的解决scheme及其关系等效的一个很好的例子?

什么是名字?它是如何工作的?

请解释什么是名称混乱,它是如何工作的,它解决了什么问题,以及在哪些上下文和语言中使用。 命名破坏策略(例如,编译器select什么名字以及为什么)加号。

如何将浮点数整数转换为整数?

比方说,我有一个浮点数的数组,在sorting(我们说升序),其总和已知是一个整数N 我想把这些数字“整数”为整数,同时保持它们的总数不变。 换句话说,我正在寻找一种将浮点数字(称为fn )转换为整数数组的algorithm(调用它),以便: 两个arrays具有相同的长度 整数数组的总和是N 每个浮点数fn[i]与其fn[i]相应的整数之间的差值小于1(如果您真的必须等于1) ( fn[i] <= fn[i+1] ),整数也将按sorting顺序排列( in[i] <= in[i+1] ) 考虑到满足这四个条件,使得舍入方差最小化的algorithm( sum((in[i] – fn[i])^2) )是优选的,但是并不是什么大不了的。 例子: [0.02,0.03,0.05,0.06,0.07,0.08,0.09,0.1,0.11,0.12,0.13,0.14] => [0,0,0,0,0,0,0,0,0,0,1] [0.1,0.3,0.4,0.4,0.8] => [0,0,0,1,1] [0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1] => [0,0,0,0,0,0,0,0,0,1] [0.4,0.4,0.4,0.4,9.2,9.2] => [0,0,1,1,9,9]是优选的 => [0,0,0,0,10,10]是可接受的 [0.5,0.5,11] => [0,1,11]很好 => [0,0,12]在技术上是不允许的,但我会把它捏在一起 回答评论中提出的一些优秀问题: 在这两个数组中都允许重复元素(尽pipe我也有兴趣知道仅在浮点数组不包含重复的情况下才有效) 没有一个正确的答案 – 对于给定的浮点数input数组,通常有多个满足四个条件的int数组。 我想到的应用程序 – 这有点奇怪 – 在MarioKart游戏中向顶尖的玩家分发点数;-)从来没有亲自玩过游戏,但在看别人的时候,我注意到有24点分布在前四名的终结者,我想知道如何根据完成时间来分配积分(所以如果有人在积分榜上领先,他们将得到更多的积分)。 游戏跟踪总数为整数,因此需要这种舍入。 为了好奇,这里是我用来确定哪些algorithm工作的testing脚本 。