我有一串代表方形网格的布尔值。
0100001110000100
Run Code Online (Sandbox Code Playgroud)
我正在尝试编写验证例程,该例程对角线检查网格,以确保其中不存在具有多个“1”值的对角线。
从这个例子中可以看出,第五组有两个。
为了做到这一点,我想将网格排列成集合,然后检查每个集合以查看它是否具有多个“1”值。
下面显示的是排列为集合的值,以及每个值在原始字符串中的位置。
0 0
01 4 1
100 8 5 2
0010 12 9 6 3
101 13 10 7
00 14 11
0 15
Run Code Online (Sandbox Code Playgroud)
我一直在试图找出字符串位置和它属于哪个组之间的数学关系。我尝试过各种公式,但我数学不太好,所以我被难住了。
作为参考,下面的方法是我用来水平验证字符串的方法。我想要提出的解决方案需要像这样,使用 LINQ 和基于集合的操作,而不是使用许多尴尬的循环。我正在进行的练习是关于在风电场中放置涡轮机的代码套路。
public bool HorizontalValidate(string windfarm)
{
var farmSize = (int) Math.Sqrt(windfarm.Length);
var rows = Enumerable.Range(0, farmSize)
.Select(x => windfarm.Substring(x * farmSize, farmSize))
.ToList();
if (rows.Select(x => x.Count(y => y == '+')).Max() > 1)
return false;
return true;
}
Run Code Online (Sandbox Code Playgroud)
如果有人感兴趣,这里有一个链接: Windfarm Kata
我有一个尴尬的SQL拼图,它击败了我.
我正在尝试生成学生单元的可能配置列表,以便我可以将他们的课程选择纳入时间表.学生可能的资格和学习列表如下:
Biology A
Biology C
Biology D
Biology E
Chemistry B
Chemistry C
Chemistry D
Chemistry E
Chemistry F
Computing D
Computing F
Tutorial A
Tutorial B
Tutorial E
Run Code Online (Sandbox Code Playgroud)
可以为学生提供可能的积木解决方案
Biology D
Chemistry C
Computing F
Tutorial E
Run Code Online (Sandbox Code Playgroud)
如何查询上述数据集,为学生生成课程和块的所有可能组合?然后,我可以削减列表,删除那些冲突并选择一个有效的列表.我估计在这种情况下总共会有大约120种组合.
我可以想象它会是某种交叉连接.我已经尝试了使用窗口函数和交叉应用等各种解决方案,但它们都有一些缺陷.他们都往往被绊倒,因为每个学生都有不同数量的课程,每门课程都有不同数量的课程.
欢呼为您提供任何帮助!如果有必要,我可以粘贴在我的查询的粗糙混乱中!
亚历克斯
我目前正在运行一个subversion实例,其顶部是collabnet subversion edge.
我有一个很好的备份例程,它被驱动器中断,它被备份到空间不足.
我已关闭服务并删除了临时转储处理文件.我记得很久以前发生这种事情的时候还有另一个临时文件,我不得不在某处删除.
这个文件的位置和名称是什么?我一直在四处寻找!
谢谢你尽你所能的帮助!