标签: algorithm

生成算法和判别算法有什么区别?

请帮助我理解生成算法和 判别算法之间的区别,记住我只是一个初学者.

algorithm machine-learning difference

558
推荐指数
9
解决办法
22万
查看次数

从n返回k个元素的所有组合的算法

我想写一个函数,它将一个字母数组作为参数,并选择一些字母.

假设您提供了8个字母的数组,并希望从中选择3个字母.然后你应该得到:

8! / ((8 - 3)! * 3!) = 56
Run Code Online (Sandbox Code Playgroud)

数组(或单词)返回,每个包含3个字母.

algorithm combinations

551
推荐指数
23
解决办法
43万
查看次数

如何检查数字是否为2的幂

今天我需要一个简单的算法来检查一个数是否是2的幂.

算法需要是:

  1. 简单
  2. 纠正任何ulong价值.

我想出了这个简单的算法:

private bool IsPowerOfTwo(ulong number)
{
    if (number == 0)
        return false;

    for (ulong power = 1; power > 0; power = power << 1)
    {
        // This for loop used shifting for powers of 2, meaning
        // that the value will become 0 after the last shift
        // (from binary 1000...0000 to 0000...0000) then, the 'for'
        // loop will break out.

        if (power == number)
            return true;
        if (power > number)
            return false; …
Run Code Online (Sandbox Code Playgroud)

c# algorithm math

549
推荐指数
13
解决办法
21万
查看次数

如何在Python中生成列表的所有排列

如何在Python中生成列表的所有排列,与该列表中的元素类型无关?

例如:

permutations([])
[]

permutations([1])
[1]

permutations([1, 2])
[1, 2]
[2, 1]

permutations([1, 2, 3])
[1, 2, 3]
[1, 3, 2]
[2, 1, 3]
[2, 3, 1]
[3, 1, 2]
[3, 2, 1]
Run Code Online (Sandbox Code Playgroud)

python algorithm permutation combinatorics python-2.5

543
推荐指数
18
解决办法
58万
查看次数

朴素贝叶斯分类的简单解释

我发现很难理解Naive Bayes的过程,我想知道是否有人可以用英语简单的一步一步解释它.我理解它需要按时间比较概率,但我不知道训练数据如何与实际数据集相关.

请给我一个关于训练集扮演什么角色的解释.我在这里给出一个非常简单的水果例子,例如香蕉

training set---
round-red
round-orange
oblong-yellow
round-red

dataset----
round-red
round-orange
round-red
round-orange
oblong-yellow
round-red
round-orange
oblong-yellow
oblong-yellow
round-red
Run Code Online (Sandbox Code Playgroud)

algorithm classification machine-learning dataset naivebayes

538
推荐指数
5
解决办法
35万
查看次数

什么算法计算地图上从A点到B点的方向?

地图提供商(例如Google或Yahoo! Maps)如何提供方向?

我的意思是,他们可能有某种形式的真实数据,当然包括距离,但也可能包括行驶速度,人行道的存在,火车时刻表等.但是假设数据格式较简单,比如一个非常大的有向图边缘权重反映距离.我希望能够快速计算从任意点到另一个点的方向.有时这些点将在一起(在一个城市内),而有时它们将相隔很远(越野).

像Dijkstra算法这样的图算法不起作用,因为图形是巨大的.幸运的是,像A*这样的启发式算法可能会起作用.但是,我们的数据非常有条理,也许某种分层方法可能有用吗?(例如,存储远离某些"关键"点之间的预先计算方向,以及一些局部方向.然后,两个远点的方向将涉及到关键点的本地方向,到另一个关键点的全局方向,然后是本地方向方向再次.)

在实践中实际使用了哪些算法?

PS.这个问题的动机是通过在线地图方向找到怪癖.与三角形不等式相反,有时谷歌地图认为XZ需要更长时间,并且比使用XYZ中的中间点更远.但也许他们的步行路线也会针对另一个参数进行优化?

PPS.这是对三角不等式的另一个违反,它暗示(对我来说)他们使用某种分层方法:XZXYZ.前者似乎使用着名的Boulevard de Sebastopol,尽管它稍微偏离了方向.

编辑:这些例子似乎都不再起作用,但两者都是在原始帖子时完成的.

mapping algorithm routing

536
推荐指数
9
解决办法
12万
查看次数

将平台解析成树的最有效/优雅的方法是什么?

假设您有一个存储有序树层次结构的平面表:

Id   Name         ParentId   Order
 1   'Node 1'            0      10
 2   'Node 1.1'          1      10
 3   'Node 2'            0      20
 4   'Node 1.1.1'        2      10
 5   'Node 2.1'          3      10
 6   'Node 1.2'          1      20
Run Code Online (Sandbox Code Playgroud)

这是我们所拥有的图表[id] Name.根节点0是虚构的.

                       [0] ROOT
                          /    \ 
              [1] Node 1          [3] Node 2
              /       \                   \
    [2] Node 1.1     [6] Node 1.2      [5] Node 2.1
          /          
 [4] Node 1.1.1

您将使用什么简约方法将其输出为HTML(或文本,就此而言)作为正确排序,正确缩进的树?

进一步假设你只有基本的数据结构(数组和散列图),没有带有父/子引用的花哨对象,没有ORM,没有框架,只有你的双手.该表表示为结果集,可以随机访问.

伪代码或普通英语是可以的,这纯粹是一个概念性的问题.

额外问题:在RDBMS中存储这样的树结构是否有根本更好的方法?


编辑和补充

回答一个评论者(Mark Bessey的)问题:根节点不是必需的,因为它永远不会被显示.ParentId = 0是表示"这些是顶级"的惯例.Order列定义了如何对具有相同父节点的节点进行排序.

我所谈到的"结果集"可以被描绘成一组哈希图(保留在该术语中).因为我的例子意味着已经存在.有些答案会加倍努力并首先构建它,但那没关系.

树可以任意深.每个节点可以有N个子节点.不过,我并没有考虑到"数百万条目".

不要将我选择的节点命名('Node 1.1.1')误认为是依赖的东西.节点同样可以称为"Frank"或"Bob",不暗示命名结构,这只是为了使其可读. …

sql algorithm tree recursion hierarchical-data

508
推荐指数
8
解决办法
11万
查看次数

您如何根据号码检测信用卡类型?

我试图弄清楚如何根据其数量来检测信用卡的类型.有谁知道一个明确,可靠的方法来找到这个?

language-agnostic algorithm e-commerce

504
推荐指数
14
解决办法
44万
查看次数

浮动和双重比较最有效的方法是什么?

比较两个double或两个float值的最有效方法是什么?

简单地这样做是不正确的:

bool CompareDoubles1 (double A, double B)
{
   return A == B;
}
Run Code Online (Sandbox Code Playgroud)

但是像这样:

bool CompareDoubles2 (double A, double B) 
{
   diff = A - B;
   return (diff < EPSILON) && (-diff < EPSILON);
}
Run Code Online (Sandbox Code Playgroud)

似乎浪费处理.

有谁知道更聪明的浮动比较器?

c++ algorithm floating-point optimization

495
推荐指数
13
解决办法
39万
查看次数

为什么String中的Java hashCode()使用31作为乘数?

每Java文档中,哈希代码String对象被计算为:

s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]
Run Code Online (Sandbox Code Playgroud)

使用int算术,其中s[i]是 字符串的第i个字符,是字符串n的长度,并^指示取幂.

为什么31用作乘数?

我知道乘数应该是一个相对较大的素数.那么为什么不是29岁,37岁,甚至97岁?

java string algorithm hash

461
推荐指数
11
解决办法
14万
查看次数