这是我的代码:
-(void)randommoves
{
NSArray *possiblemoves =[NSArray arrayWithObjects:@"R ",@"R' ",@"L ",@"L' ",@"B ",@"B' ",@"F ",@"F' ",@"U ",@"U' ",@"D ",@"D' ", nil];
NSMutableString *finalmoves = [[NSMutableString alloc] init];
finalmoves = [NSMutableString stringWithCapacity:0];
[finalmoves retain];
int i = 0;
for (i=0; i<20; i++) {
int r = rand() % 13;
NSString *string = [possiblemoves objectAtIndex:r];
[finalmoves appendString:string];
}
NSLog(@"%@",finalmoves);
[finalmoves release];
}
Run Code Online (Sandbox Code Playgroud)
每次我运行它都会得到完全相同的字符串"D'BB'DL'D'F'L'B'U'DDD'L'URBFD'B'"
我想要它做的是每次运行它时给我一个新的移动设置
我已经运行了至少30次,以确保它不是侥幸,并且它确实返回相同的字符串,果然,确实如此.
目前,我得到我的程序的执行壁上时间秒致电:
time_t startTime = time(NULL);
//section of code
time_t endTime = time(NULL);
double duration = difftime(endTime, startTime);
Run Code Online (Sandbox Code Playgroud)
是否有可能以毫秒为单位获得挂壁时间?如果是这样的话?
我对这个小C#quirk感到有点难过:
给定变量:
Boolean aBoolValue;
Byte aByteValue;
Run Code Online (Sandbox Code Playgroud)
以下编译:
if (aBoolValue)
aByteValue = 1;
else
aByteValue = 0;
Run Code Online (Sandbox Code Playgroud)
但这不会:
aByteValue = aBoolValue ? 1 : 0;
Run Code Online (Sandbox Code Playgroud)
错误说:"不能隐式地将类型'int'转换为'byte'."
当然,这个怪物会编译:
aByteValue = aBoolValue ? (byte)1 : (byte)0;
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?
编辑:
使用VS2008,C#3.5
假设我有两张桌子.文章和评论.
当我从articles表中选择列时,我还想在同一个select语句中选择文章的注释数...(假设这两个表之间的公共字段是articleid)
我怎么做?我可以完成它,但我不知道我的方式是否有效,所以我想学习正确的方法.
我正在我的荣誉社会的网站上工作,我想知道(1.)两个网站(Django项目)是否指向同一个数据库,(2)如果这是好的做法.
背景信息:目前只有一个网站,其用户仅供会员使用.对于我们的行业关系部分(我们现在正在开发),我们希望公司能够登录,例如请求信息会话,简历等.现在的方式很难引入新类型的用户(在这种情况下,公司).所以我认为最好将公司方面的东西拆分到一个新的网站,使用户严格依赖公司.但是这个网站仍然需要访问我们主站点上的信息,所以我们考虑让它指向同一个数据库.
欢迎任何其他建议!:)
我如何匹配此字符串中的URL地址,我有其他代码匹配文本,它似乎工作,但当我尝试在这里使用它,它没有,它一直说有"没有这样的文件或目录.我不知道grep -o只对文件有用吗?
matchString='url={"urlPath":"http://www.google.com/","thisIsOtherText"'
array=($(grep -o 'url={"urlPath":"([^"]+)"' "$matchString"))
grep: url={"urlPath":"http://www.google.com/","thisIsOtherStuff": No such file or directory
Run Code Online (Sandbox Code Playgroud)
无论如何,你能不能帮助我匹配"matchString"变量中的URL(它不必使用grep).
首选输出:http://www.google.com/
我们的一些主要开发人员已经寻求管理层指派一名初级开发人员为他们记录他们的代码.
他们的论点是:
然而,为了保持最新状态,他们保持忙碌的程序员数量似乎随着时间的推移而增加.
这是一个好主意吗?
哇!这不是我们的经验!
以下是一些重要的澄清说明.
高级开发人员是反身自我记录员.这是一个核心招聘问题.他们有时需要被告知"为初级人员留下这个".
这是作为高级家伙的验证工具(我们的初级人员被聘用,我认为相当高的标准清除).
是的,代码应该是单一目的和自我记录.如果初级人员不能轻易评论,这是老年人认真对待的反馈.
期望青少年将其视为重构练习,并且它的工作方式比您预期的更频繁.特别是捕捉YAGNI问题,范围过大等问题.他们将老年人放入十字准线.事实上,他们起源于这种变化.(如果他们真的开始反对,我们会支持它.老年人非常愿意调整 - 他们明白他们比其他任何人都更有责任成功.)
难道你的资深人士不想解释他们的代码吗?
我们坚定地致力于"每个人都拥有代码"的敏捷原则.我们认为这会加速这一进程.
最后,个人笔记 - 当我试图理解别人的代码时,我想要做的第一件事就是在我试图理解它时重新评论它.为什么评论被视为如此繁重?
也许我们过滤掉一些初级申请人,因为我们明确说明这是我们的工作方式.但这不是营业额问题.(但这只是3个月.)
编辑:我不确定我原来的问题是否足够明确.我需要一种算法来计算最小的移动顺序,以便将数组从一个顺序重新排列到另一个顺序.众所周知,两个数组都包含相同的元素(没有重复)并且具有相同的长度.例如:
reorder(
['d', 'a', 'c', 'b', 'e'],
['a', 'b', 'c', 'd', 'e']
)
Run Code Online (Sandbox Code Playgroud)
应该返回类似的东西:
[
{move:'d', after:'b'},
{move:'c', after:'b'}
]
Run Code Online (Sandbox Code Playgroud)
这表明我应该首先将元素'd'移动到'b'之后,然后将'c'移动到'b'之后,数组将按所需顺序移动.
背景:我正在研究一个项目(实际上将rtgui中的大部分功能转移到客户端).现在我正在进行排序.基本上我有一个div列表,我想按任意顺序排序.我可以按如下方式获得所需的订单:
var hashes = {
before: [],
after: [],
};
var els = $('div.interesting-class').toArray();
var len = els.length;
for(var i = 0; i < len; i++) hashes.before.push(els[i].id);
els.sort(getSortComparator());
for(var i = 0; i < len; i++) hashes.after.push(els[i].id);
Run Code Online (Sandbox Code Playgroud)
现在hashes.before,hashes.after包含无序和有序的元素ID列表.重新排序列表时,到目前为止,最昂贵的操作实际上是移动DOM元素.我这样做的情况如下:
var c = $('#container-id');
$(els).each(function() {
c.append(this);
});
Run Code Online (Sandbox Code Playgroud)
这可行,但速度比必要慢,因为平均来说,实际上只需要移动2或3个元素.因此,我需要一种算法来计算最小的移动顺序,以便将数组从一个顺序重新排列到另一个顺序(在这种情况下,操作hashes.before …
如何在iPhone屏幕上跟踪触摸事件2秒钟.就像在Safari中保存图像一样,添加到UIWebView中的图像?
在while($row = mysql_fetch_assoc($result) and $runningOK)循环中捣乱我... 如果使用PHP &&运算符代替and当时mysql_fetch_assoc失败并且1在运行时只返回数字.
我已经尝试过mysql_fetch_array(),我仍然有1问题.当是时,只有当我更换&&有and像目前的while说法是正确的行返回.
我在之前,之内和之后放置了调试语句来确保这一点.我想知道这是一个PHP怪癖还是我无法解释的东西.
// Query
$selectQuery = "SELECT * FROM jobs_cache LIMIT 20";
// Run the Selection Query.
$result = mysql_query($selectQuery)
or die('Query Failed: '.mysql_error());
// Loop through results.
$runningOK = TRUE;
$resubmitList = array();
while($row = mysql_fetch_assoc($result) and $runningOK)
{
// Resubmit The Job
try
{
$client->addTaskBackground($row['function_name'],$row['job_data']);
$resubmitList[] = (string)$row['job_cache_id'];
}
catch(Exception $e)
{ …Run Code Online (Sandbox Code Playgroud)