小编Ank*_*wal的帖子

阶乘递归算法的复杂性

今天在课堂上我的老师在黑板上写下了这个递归因子算法:

int factorial(int n) {
   if (n == 1) 
       return 1;
   else 
       return n * factorial(n-1);
}
Run Code Online (Sandbox Code Playgroud)

她说它有成本T(n-1) + 1.

然后用迭代法她说T(n-1) = T(n-2) + 2 = T(n-3) + 3 ... T(n-j) + j,所以算法停止的时候n - j = 1,所以j = n - 1.

之后,她取代jT(n-j) + j,并获得了T(1) + n-1.

她直接说那个n-1 = 2 (log 2 n-1),所以算法的成本是指数的.

我真的失去了最后两步.可以请有人向我解释一下吗?

complexity-theory big-o factorial

19
推荐指数
1
解决办法
4万
查看次数

mlogit 给出错误:这两个索引没有定义唯一的观察

我的数据框命名longData如下:

  ID Set Choice Apple Microsoft IBM Google Intel HewlettPackard Sony Dell Yahoo Nokia
1  1   1      0     1         0   0      0     0              0    0    0     0     0
2  1   2      0     0         1   0      0     0              0    0    0     0     0
3  1   3      0     0         0   1      0     0              0    0    0     0     0
4  1   4      1     0         0   0      1     0              0    0    0     0     0
5  1   5      0     0         0   0      0 …
Run Code Online (Sandbox Code Playgroud)

r mlogit

5
推荐指数
1
解决办法
557
查看次数

在 pyspark 中使用 arraytype 列创建数据框

我正在尝试创建一个带有ArrayType()列的新数据框,我尝试过定义模式和不定义模式,但无法获得所需的结果。我的代码如下,带有架构

from pyspark.sql.types import *
l = [[1,2,3],[3,2,4],[6,8,9]]
schema = StructType([
  StructField("data", ArrayType(IntegerType()), True)
])
df = spark.createDataFrame(l,schema)
df.show(truncate = False)
Run Code Online (Sandbox Code Playgroud)

这给出了错误:

ValueError:对象的长度 (3) 与字段的长度 (1) 不匹配

期望的输出:

+---------+
|data     |
+---------+
|[1,2,3]  |
|[3,2,4]  |
|[6,8,9]  |
+---------+
Run Code Online (Sandbox Code Playgroud)

编辑:

我发现了一件奇怪的事情(至少对我来说):

如果我们使用下面的代码,它会给出预期的结果:

import pyspark.sql.functions as f
data = [
    ('person', ['john', 'sam', 'jane']),
    ('pet', ['whiskers', 'rover', 'fido'])
]

df = spark.createDataFrame(data, ["type", "names"])
df.show(truncate=False)
Run Code Online (Sandbox Code Playgroud)

这给出了以下预期输出:

+------+-----------------------+
|type  |names                  |
+------+-----------------------+
|person|[john, sam, jane]      |
|pet   |[whiskers, rover, fido]| …
Run Code Online (Sandbox Code Playgroud)

python apache-spark-sql pyspark

3
推荐指数
1
解决办法
6812
查看次数