小编vru*_*e21的帖子

Common Lisp中的高阶函数语法

我正在使用Norvig的人工智能编程范式教自己Common Lisp,并且遇到了一些我不理解的东西,他没有解释.

(defun mappend (fn the-list)
  (apply #'append (mapcar fn the-list)))
Run Code Online (Sandbox Code Playgroud)

如下调用高阶函数higherOrderFunc #'funcName funcArg和在mapcar没有调用时执行的操作有什么区别#'?是#'调用高阶函数时,有必要吗?

lisp common-lisp

4
推荐指数
2
解决办法
2296
查看次数

查找数组中的元素是否比某个值更频繁地出现

我有一个问题,给定一个数组,A [1 ... n]的n(不一定是不同的)整数,找到一个算法来确定是否有任何项目在A中出现超过n/4倍的上限.

似乎最好的最坏情况时间是O(n).我知道多数元素算法,我想知道这是否适用于这种情况.如果您对此问题有任何建议,请与我们联系.

arrays algorithm

2
推荐指数
1
解决办法
1073
查看次数

在两个列表上使用zip()与两个可迭代对象进行比较

作为免责声明,我对编程比较陌生,所以请原谅我在编写这个问题时所做的任何简单疏忽.

我正在使用Python 2.7.3并且这样做,注意到了一些对我来说不寻常的东西,并且无法通过Google搜索或Python文档找到令人满意的解释.我可以创建一个列表并使用zip()创建一个元组列表,如下所示:

numList = range(4)
print zip(numList, numList)

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

但是当我在numList上使用iter()函数创建一个可迭代对象并以类似的方式在这个对象上使用zip()时,我得到了一个非常不同的结果:

numList = range(4)
numList = iter(numList)
print zip(numList, numList)

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

如果有人可以解释这两个程序之间的区别以及导致这种情况发生的幕后情况,我将不胜感激.

python python-2.7

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

GNUPlot的MPI IO格式

我有一个使用MPI的C++程序,我希望每个进程(最多32个)写入文件.我正在使用一个小的测试数据集,其中包含100个双重均匀分布在整个过程中的数据集.到目前为止,输出的格式如下:

  data_sink.Write(&d_p[i], 1, MPI::DOUBLE);
  data_sink.Write(&space, 1, MPI::CHAR);
  data_sink.Write(&r_p[j], 1, MPI::DOUBLE);
  data_sink.Write(&new_line, 1, MPI::CHAR);
Run Code Online (Sandbox Code Playgroud)

格式化此输出的最佳方法是什么,以便GNUPlot可以直接解释结果?

c++ gnuplot mpi mpi-io

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

标签 统计

algorithm ×1

arrays ×1

c++ ×1

common-lisp ×1

gnuplot ×1

lisp ×1

mpi ×1

mpi-io ×1

python ×1

python-2.7 ×1