小编Ale*_*yMK的帖子

用Java限制线程执行处理器周期

我正在为竞赛编写AI测试框架.参与者提交与给定界面匹配的Bot类.然后所有的机器人都玩转弯游戏.在每一个转弯,我想做以下事情:

For every bot B:
    start a thread that runs at most N cycles and does B.getNextMove()
wait for all threads to complete
Make all moves (from each bot).
Run Code Online (Sandbox Code Playgroud)

我的困难在于"最多N次循环".我可以按时间限制所有机器人(比如每回合半秒),但这意味着有些人可以获得比其他人更多的处理器周期,并且不允许严格的"你的机器人应该能够做出决定:转向X时间"在比赛中的要求.

如上所述,这是Java.有任何想法吗?我一直在关注并发和锁定,但这并不是正确的方向.此外,有可能不在Parralel运行机器人,然后使用时间进行限制(假设计算机当时没有运行任何其他东西),但这是不可取的,因为它会显着降低我们的速度可能有游戏的结果.

java multithreading artificial-intelligence

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

C中的奇异/随机Segfault

编辑:澄清.

  • fout是一个FILE*.(我认为这是无关紧要的,因为该行明确编译)
  • 在最后几行之上有很多代码; 我想我可以抛弃它们,但我想你对调试我的东西不是太感兴趣了.一般来说,我更感兴趣的是,在返回0但不是之前可能发生的段错误.

警告:我的C太可怕了.

我有一个C程序,从它的喜欢,只是想要段错误.我会饶恕你不相关的其他细节,但这是大局:

我的代码:

//...other code
printf("finished \n");   
fclose(fout);   
printf("after fclose \n");  
return 0;
Run Code Online (Sandbox Code Playgroud)

输出:

完成
fclose
Segmentation故障后完成

我正在使用GCC进行编译,-std = c99.

我的问题:

这怎么可能呢?我应该注意什么,这可能导致这个(看似随机的)段错误?有任何想法吗?

非常感谢!

c segmentation-fault

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

在bash中使用Regex组

问候,

我有一个目录,里面有pdf列表:

file1.pdf, file2.pdf, morestuff.pdf ... etc.

我想将这些pdf转换为png,即

file1.png, file2.png, morestuff.png ... etc.

基本命令是,

convert from to,

但我无法转换为重命名为相同的文件名.明显的"我希望它以这种方式工作"是

convert *.pdf *.png

但显然这不起作用.我的思维过程是我应该在这里使用正则表达式分组,想一想

convert (*).pdf %1.png

但这显然不是正确的语法.我想知道正确的语法是什么,以及是否有一个更好的方法(不需要跳转到perl或python),我忽略了.

谢谢!

regex unix linux command-line

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

Python字符串修剪

我在python中有一个字符串,格式如下:

[NUMBER][OPERATOR][NUMBER][UNNEEDED JUNK]
Run Code Online (Sandbox Code Playgroud)

例如:

5+5.[)]1
Run Code Online (Sandbox Code Playgroud)

我怎么能把它修剪得恰到好处5+5

编辑

我忘了提到,基本上,你只需要在运算符之后寻找第一个非数字字符,然后关闭所有内容(从该点开始).

python regex string trim

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