小编Tal*_*lon的帖子

传递数学运算符作为参数

我想在Javascript中编写一个函数,允许我传入一个数学运算符和一个整数列表,并为该列表中的每个项目应用运算符.

从总和的角度来考虑它,这就是我想出的:

function accumulate(list, operator){
    var sum = 0;
    for each(var item in list){
        sum = accumulator(sum, item);
    }
    print(sum);
}
Run Code Online (Sandbox Code Playgroud)

测试此代码会产生以下错误:

var list = new Array();
list[0] = 1;
list[1] = 2;
list[2] = 3;
Run Code Online (Sandbox Code Playgroud)
js> accumulate(list, +);
js: "<stdin>", line 9: syntax error
js: accumulate(list, +);
js: ..................^
js: "<stdin>", line 9: Compilation produced 1 syntax errors.
Run Code Online (Sandbox Code Playgroud)

javascript

25
推荐指数
3
解决办法
2万
查看次数

Python:将print函数作为参数发送

我的教授已经提到可以将print这样的函数作为参数传递,但是当我尝试实际实现它时,我得到语法错误.这是我在这里失踪的小事吗?

 def goTime(sequence, action):
    for element in sequence:
       action(element)

 def main():
    print("Testing Begins")
    test = list ( range( 0 , 20, 2) ) 
    goTime(test, print)
    print("Testing Complete")
Run Code Online (Sandbox Code Playgroud)

运行以下命令后,我收到此语法错误:

goTime(test, print)
                 ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

如果我定义自己的使用print的函数,它的工作原理如下:

def printy(element):
   print(element)

def goTime(sequence, action):
   for element in sequence:
      action(element)

def main():
   print("Testing Begins")
   test = list ( range( 0 , 20, 2) ) 
   goTime(test, printy)
   print("Testing Complete")
Run Code Online (Sandbox Code Playgroud)

python

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

计算联合矩形周长的算法

我正在尝试计算矩形联合的周长,其中我有左下角和右上角的点。每个矩形都位于 x 轴上(每个矩形的左下角是 (x, 0))。我一直在研究这样做的不同方法,似乎 Sweep-Line 算法是最好的方法。我也看过格雷厄姆扫描。我的目标是 O(n log n) 算法。老实说,虽然我对如何进行迷失了方向,但我希望这里的某个人可以尽最大努力为我简化它,并尝试帮助我准确了解如何实现这一目标。

我从我所做的研究中收集到的一些东西:

我们需要对点进行排序(我不确定我们对它们进行排序的标准)。

我们将分而治之(以实现 O(log n))。

我们需要计算交点(最好的方法是什么?)

我们需要某种数据结构来保存点(也许是二叉树?)

我最终会在 Java 中实现这个算法。

java algorithm geometry grahams-scan

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

Floyd warshall实施似乎缺少最短的路径

我正在收集弗洛伊德沃尔斯发现的最短路径.对于此特定图表,1 - > 3的最短路径为5,并且有两个具有此权重的路径:1-> 4-> 2-> 3,1-> 4-> 3.

我不确定显示图表的最佳方式,因此我将使用矩阵,如果您知道更好的替代方案,请随意提出另一种方法.

 //i = infinity, no path exists initially
 //for u==v, 0
    1   2   3   4
1|  0   i   8   2
2|  i   0   2   i
3|  i   7   0   6
4|  i   1   3   0
Run Code Online (Sandbox Code Playgroud)

因此,当我运行我的代码时,我得到的最短路径数从1 - > 3只有1,但我肯定有两种方法,如前所述.

这是算法的实现:

 //count[][] is initialized with a 0 if no path between [u][v], and 1 at [u][v] if there is a weight at [u][v]. 

    for (int k = 1; k <= N; k++){ …
Run Code Online (Sandbox Code Playgroud)

java algorithm floyd-warshall

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

使用默认值初始化 HashMap?

我正在实现这里给出的 A* 搜索算法,https: //en.wikipedia.org/wiki/A *_search_algorithm

这一行表示我们需要使用 INFINITY 的默认值初始化一个映射,

gScore := map with default value of Infinity
Run Code Online (Sandbox Code Playgroud)

所以我在这里尝试,

Map<State, Double> gScore = new HashMap<State, Double>(Double.POSITIVE_INFINITY);
Run Code Online (Sandbox Code Playgroud)

这不起作用,但以下方法有效;

Map<State, Double> gScore = new HashMap<State, Double>((int) Double.POSITIVE_INFINITY);
Run Code Online (Sandbox Code Playgroud)

我想知道为什么,以及它会对我的实现产生什么影响(如果有的话)。

java

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

如何获得具有焦点的IE选项卡的句柄?

有没有人知道如何使用vbscript获取当前焦点的IE选项卡的句柄?

我正在尝试使用HP-UFT进行一些自动化,并且需要获得具有焦点的选项卡的句柄,以便我可以关闭它.

UFT将每个选项卡视为自己独立的浏览器,因此我可以获得选项卡集合,但是我无法找到确定哪个选项卡具有当前焦点的方法.

我使用的浏览器是IE.

vbscript internet-explorer qtp hp-uft

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

fgets和处理CTRL + D输入

我正在抓取用户的一些标准输入,如果用户按下CTRL+D,我想显示错误并终止程序.我想也许我的问题可能与被困在一个while循环中有关;

int readInput(){
   char buff[10];
   int count = 0;
   int counter;
   printf("Enter random number: ");
   fgets(buff, 10, stdin);
   if ((int) strtol(buff, NULL, 10) == 0){
      printf("Error reading number. \n");
      return 0;   //This will get hit if the user presses CTRL+D at this input.
   }
   counter = atol(buff);
   while (count < counter){ 
      printf("Enter a label: ");
      fgets(buff, 10, stdin);
      if ((int) strtol(buff, NULL, 10) == 0){
         printf("Error reading label");
         return 0;  //This will not get hit if the user …
Run Code Online (Sandbox Code Playgroud)

c linux fgets ctrl

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

Android开发 - getMenuInflater(R.menu.main,菜单)

我正在学习android并遵循一个简单的相机应用教程.我已经复制了一段代码,但我收到了错误,我不知道为什么.

我正在使用的教程是,

http://iwearshorts.com/blog/android-development-102/

代码片段是:

@Override
public boolean onCreateOptionsMenu(Menu menu){
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}
Run Code Online (Sandbox Code Playgroud)

在我的项目中,我收到了R.menu.main的错误.更具体地说,'R.menu.main'中的单词菜单无法解析或不是字段.

我没有在教程中看到任何我错过的会导致这种情况的内容.我唯一能想到的是它与使用不同版本的Android有关.我不知道怎么会检查这个.

我感谢任何建议,谢谢.

android

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

如何检查一个数组是否是另一个数组的子序列?

我正在寻找不同的算法,包括递归和动态编程,检查一个arrayA是否是arrayB的子序列.例如,

arrayA = [1, 2, 3] 
arrayB = [5, 6, 1, 7, 2, 9, 3]

thus, arrayA is indeed a subsequence of arrayB. 
Run Code Online (Sandbox Code Playgroud)

我尝试了一些不同的搜索,但我似乎只能找到算法来计算最长的增长子序列.

algorithm recursion dynamic-programming subsequence

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

Web Service API 提供多个要下载/保存的 csv 文件

我有一个网络服务,我可以调用并保存返回的 csv 文件。一切似乎都正常。我现在感兴趣的是返回多个 CSV 文件供用户下载。处理这个问题的正确方法是什么?我猜我需要一种方法来打包它们(zip?也许)?

[HttpPost]
[Route("OutputTemplate")]
public HttpResponseMessage OutputTemplate()
{
    HttpResponseMessage msg = new HttpResponseMessage();
    string body = this.Request.Content.ReadAsStringAsync().Result;
    try
    {
        string contents = DoStuff(body) // get contents based on body

        MemoryStream stream = new MemoryStream();
        StreamWriter writer = new StreamWriter(stream);
        writer.Write(contents);
        writer.Flush();
        stream.Position = 0;

        msg.StatusCode = HttpStatusCode.OK;
        msg.Content = new StreamContent(stream);
        msg.Content.Headers.ContentType = new MediaTypeHeaderValue("text/csv");
        msg.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
            {
                FileName = "fileexport"
            };

        return msg;

        }
        ...
    }
Run Code Online (Sandbox Code Playgroud)

c# asp.net

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