小编use*_*689的帖子

寻找最接近的斐波纳契数

我试图解决一个更大的问题,我认为该程序的一个重要部分是花在低效计算上.

我需要计算给定数N,区间[P,Q],其中P是<=到N的最大斐波纳契数,而Q是> =到N的最小斐波纳契数.

目前,我正在使用地图来记录斐波纳契数的值.查询通常涉及搜索最多为N的所有斐波纳契数,并且它不是非常节省时间,因为它涉及大量的比较.

这种类型的查询将在我的程序中经常出现,我对可以改进查找的方式感兴趣,最好是使用子线性复杂性.

c++ algorithm math complexity-theory discrete-mathematics

16
推荐指数
3
解决办法
6770
查看次数

编译器如何处理可变长度数组

这似乎是一个初学者的问题,但我对编译器通常创建变量维数组的方式感兴趣,就像在下面的程序中一样.

#include<iostream>

int main(){
  int n;
  std::cin>>n;
  int a[n];
}
Run Code Online (Sandbox Code Playgroud)

根据我的学习,在C中,所有初始化值都必须是常量,这样编译器就知道要在函数内保留多少内存,通常是通过减去堆栈指针来容纳数组所包含的元素数.

这对我来说很有意义.但是,我不太明白编译器如何处理上述程序,因为它似乎与G ++(MinGW)一起工作,但是在C,Microsoft的C++编译器中失败了.我怀疑GCC通过非标准扩展在堆上分配内存,但我不确定.

此外,微软的编译器并不因标准兼容而闻名,所以如果它对待上述程序的方式实际上可能出错,我也不会感到惊讶.

c c++ templates visual-c++ c++11

10
推荐指数
2
解决办法
1995
查看次数

在VmWare VM中为Linux来宾操作系统实现内核调试模块

对不起,相当长的帖子.

我需要一些关于我将要进行的项目的意见.

我正在尝试创建一个应用程序,它从位于VmWare虚拟机内的来宾Linux操作系统收集内核调试信息,并有效地将它们发送到主机操作系统.

到目前为止,我已经找到了一个类似的项目,但是为Windows编写[1].该项目的作者编写了一个加载到内存中的DLL,并替换了KdSendPacket和KdReceivePacket函数的实现,以使用VmWare GuestRpc [2]机制,而不是慢速串行端口.然后通过命名管道将数据发送到主机(Kd或WinDbg)上的调试应用程序.

作者声称,通过避免串口传输,速度提高了45%.

我试图实现类似的东西,但对于Linux,并尝试使调试过程比使用串行端口快一点.

我的具体问题是:

  1. 是否存在类似的应用程序?我找不到任何东西.
  2. 例如,将其功能与netconsole [3]进行比较,这样的应用程序是否值得?
  3. 你建议采用什么方法拦截printk消息?
  4. 在Linux上是否有相当于KdSendPacket/KdReceivePacket?

[1].http://virtualkd.sysprogs.org/dox/operation.html

[2].http://articles.sysprogs.org/kdvmware/guestrpc.shtml

[3].http://www.kernel.org/doc/Documentation/networking/netconsole.txt

linux virtualization vmware kernel

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

不能在函数声明中使用模板参数

我很难找到以下代码无法编译的好理由.它给了我以下错误.

错误2错误C2923:'std :: pair':'std :: set :: iterator'不是参数'_Ty1'的有效模板类型参数

我需要一点见解,为什么C++不允许我在函数声明中使用template参数,因为我使用set <int> :: iterator而不是set <T> :: iterator程序可以工作.

#include<iostream>
#include<set>
using namespace std;

template <typename T>
void print(const pair< set<T>::iterator, bool> &p) //<- Here is the problem
{
    cout<<"Pair "<<*(p.first)<<" "<<p.second<<"\n";
}

int main() {
   set<int> setOfInts;
   setOfInts.insert(10);    
   pair<set<int>::iterator, bool  > p = setOfInts.insert(30);
}
Run Code Online (Sandbox Code Playgroud)

c++ templates stl metaprogramming visual-c++

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

禁用java ant生成的警告

我正在使用java ant来为某些实体生成证书和密钥库,稍后我将在java应用程序中使用它.该应用程序仅用于学习目的,我知道以纯文本格式存储密码是一个坏主意.

我正在使用的命令是:

<exec command="keytool -genkey -alias test -keyalg DSA -keysize 1024 
     -keystore keyst.ks -keypass pass -storepass pass -dname &quot;
     CN=Duke, OU=MyUnit, O=MyOrg, C=US&quot;"/>
Run Code Online (Sandbox Code Playgroud)

虽然命令按预期工作,但在每行后我都会收到几条警告:

  [exec] The command attribute is deprecated.
Run Code Online (Sandbox Code Playgroud)
   [exec] Please use the executable attribute and nested arg elements.
Run Code Online (Sandbox Code Playgroud)

我很好奇是否有任何办法可以压制这些警告,除了不使用嵌套的args.该脚本生成大量文本输出,警告使得跟踪输出更加困难.

java ant swing java-ee

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

Redmine钩子的验证问题

我在编写Redmine插件时遇到验证问题.

我正在为问题模型编写一个钩子,作为钩子方法的一部分,我想通过添加自定义错误来使问题的创建无效:

  def controller_issues_new_before_save( context = { } )
     context[:issue].errors.add(:due_date, "A custom error")
  end
Run Code Online (Sandbox Code Playgroud)

出于测试目的,我编写了一个覆盖Issue.validate_on_create的补丁,但似乎每次输入validate_on_create时errors.count都设置为零.

我需要停止创建问题对象,但仅限于将属性设置为另一个模型对象时.

我想在validate_on_create方法中写这个,但是我需要将它传递给另一个对象.

我想到的第一个解决方案是在Issue模型中插入一个额外的字段,并在钩子内修改它.

就像是 :

  def controller_issues_new_before_save( context = { } )
    context[:issue].can_validate = false
  end

  def validate_on_create
    unless can_validate 
      errors.add("error", "A custom error")
    end
  end   
Run Code Online (Sandbox Code Playgroud)

其中Issue.can_validate是Issue模型的补充

但是,这似乎不是最好的方法.有没有更简单的方法?

ruby ruby-on-rails redmine redmine-plugins ruby-on-rails-3

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

从Prolog中检索给定间隔中的所有数字

我是Prolog世界的新手,我想编写一条返回特定范围内所有元素的规则.

我打算做点什么

例如:

foo(X, Low, High) :- X > Low, X < High.
Run Code Online (Sandbox Code Playgroud)

当我输入foo(X,2,5)时,它应该返回3,然后是4.

看来我的方法是错误的,我想知道哪种方法是正确的.

prolog clpfd

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

在Redmine中测试

我为Redmine创建了一个插件,现在很难为它编写测试用例.我没有使用像rspec这样的任何框架,只是rails提供的默认断言.

我首先通过ruby解释器运行文件来运行我的测试.这没有加载灯具,所以我找到了另一种选择:我将灯具文件复制到$ {redmine_root}/test/fixtures,来自$ {redmine_root}/vendor/plugins/my_plugin/test/fixtures,运行rake db:fixtures:加载,现在加载它们.

我正在测试的控制器具有在init.rb中设置的权限,并且需要对某些操作进行授权.

虽然我以特权用户(Admin)的身份打开会话,但我无权在控制器中执行操作,不知何故它在测试开始时没有加载权限.

我已经在roles.yml中手动添加了权限,并确保用户具有相应的角色,但同样没有.该插件运行良好,我只在测试时遇到这些问题.如果我在我的控制器中使用before_filter:authorize注释该行,则测试通过.

我错过了什么吗?init.rb的权限是存储在不同的位置,还是在测试阶段以不同方式加载?

ruby ruby-on-rails redmine redmine-plugins ruby-on-rails-3

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

在Redmine插件中包含jquery

我正在尝试制作一个使用jquery的Redmine插件.

当我在视图中添加以下行时,我会遇到冲突:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" type="text/javascript"></script>

Uncaught TypeError: Cannot call method 'hasChildNodes' of undefined
prototype.js:5734
Uncaught TypeError: Object [object Object] has no method 'dispatchEvent'
prototype.js:828
Uncaught TypeError: Object [object Object] has no method 'attachEvent'
Run Code Online (Sandbox Code Playgroud)

视图是一个钩子.

如果我删除它<script src="">,它的工作原理,但我没有使用jQuery.

html javascript jquery redmine redmine-plugins

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