这是一个关于非数学家的组合学的问题,所以请尽量忍受我!
给定n个不同字符的数组,我想以最小变化顺序生成k个字符的子集,即生成i + 1恰好包含一个不在第i代中的字符的顺序.这本身并不太难.不过,我也希望最大化病例数在被换角色了在代I + 1是被交换相同的字符中的代我.为了说明,对于n = 7,k = 3:
abc abd abe*abf*abg*afg aeg*adg*acg*acd ace*acf*aef adf*ade bde bdf bef bcf*bce bcd*bcg*bdg beg*bfg*cfg ceg*cdg*cde cdf*cef def deg dfg efg
带星号的字符串表示我想要最大化的情况; 例如,第3代中新增的e,abe,替换第2代中的新广告,abd.似乎不可能在每一代都发生这种情况,但我希望它尽可能频繁地发生.
我使用的典型阵列大小是20-30,子集大小大约5-8.
我使用的是奇怪的语言,Icon(或者实际上是它的衍生Unicon),所以我不希望任何人发布我可以直接使用的代码.但我会很感激伪代码的答案或提示,并会尽力翻译C等.另外,我注意到这类问题经常以整数数组的形式讨论,我当然可以应用解决方案以这样的方式发布我自己的问题.
谢谢
金巴斯汀
编辑2010年6月15日:
我似乎进入了比我想象的更深的水,虽然我很感激所有答案,但并非所有答案都相关.作为一个不充分的解决方案的例子,让我发布我自己的Unicon程序,以最小的变化顺序生成字符集的k元子集.要理解代码,你需要知道的事情是:前置*表示结构的大小,所以如果s是字符串,*s表示s的大小(它包含的字符数).|| 是一个字符串连接操作.一个前置!产生结构的每个元素,例如字符串的每个字符,依次连续传递.'suspend'控制结构返回一个过程的结果,但是将过程"悬浮",所有局部变量就位,这样如果在循环中调用过程,就可以产生新的结果.
procedure revdoor(s, k)
# Produces all k-subsets of a string or character set s in a 'revolving
# door' order. Each column except the first traverses the characters
# available to it in alphabetical and …Run Code Online (Sandbox Code Playgroud) 此问题与cURL的命令行版本有关.
我正在尝试从cgi脚本下载文件.
HTTP://someserver/perl/dl.pl ID = 2
使用浏览器,文件名为'remotefilename.gz'cURL想要将文件保存为'dl.pl?ID=2'
如何让cURL保存到响应头中带有文件名的文件?
我最近工作的小型软件团队获准升级到Visual Studio 2010(我们目前正在使用VS 2005).我们在生产中有几个ASP.NET 2.0和WinForms(在.NET 2.0中)项目.
我的任务是下载VS 2010并了解它与我们当前的项目有多好.在VS 2010中定位旧应用程序时,我应该注意哪些问题?如果我在VS 2010中打开一个VS 2005项目,当我的队友重新开始在VS 2005中打开项目时,它还能很好地放置吗?我们是否必须升级项目才能在VS 2010中工作(假设项目本身未升级到.NET 4)?我可以使用VS 2010编辑旧版VB6应用程序(开玩笑)吗?
我很高兴能够使用最新的软件,但我们担心在已经正常工作的生产应用程序上遇到开发障碍.
注意:我开始获得赏金,希望得到更详细的答案.也许答案真的和已经提供的答案一样简单,但我对从使用VS 2005过渡到VS 2010的选项的更多反馈感兴趣.
.net backwards-compatibility visual-studio-2010 visual-studio .net-2.0
我尝试将我的旧日志文件移动到 yyyy\MM\dd 文件夹结构
Get-ChildItem . -Recurse -Include *.log |
Move-Item -Dest {"D:\Archive\{0:yyyy\\MM\\dd}\{1}" -f $_.LastWriteTime, $_.Name} -Force
Run Code Online (Sandbox Code Playgroud)
但我收到一个未找到路径的错误。
更新
源路径似乎不是问题。看起来使用-ForceonMove-Item不会创建丢失的目标目录。
子问题:如果没有 Get-ChildItem,也可以这样做吗?
我需要调用一个启动一些异步代码的方法
MyClass* myClass = [[MyClass alloc] init];
[myClass startAsynchronousCode];
Run Code Online (Sandbox Code Playgroud)
现在我不能简单地释放它,因为这会导致错误,因为代码仍在运行:
[myClass release]; // causes an error
Run Code Online (Sandbox Code Playgroud)
处理内存的最佳方法是什么?
在编写JavaScript代码时,我将每个代码块与<script>标签分开
<script type="text/javascript">
//---- code block 1---------
</script>
<script type="text/javascript">
----code block 2-----
</script>
<script type="text/javascript">
$(document).ready.(function(){
// code block3
});
</script>
Run Code Online (Sandbox Code Playgroud)
我想知道<script type="text/javascript"></script>在同一页面上单独编写是一种好习惯
- 要么 -
我们必须在一个下编写所有JavaScript代码 <script>
每种方式的技术差异是什么?
当我第一次尝试使用快捷键 Alt+Shift+X,J(或 E)运行 java(或 Eclipse)应用程序时,打开 Eclipse(Galileo) for Java(甚至 Java EE)时,应用程序将无法运行直到我使用菜单。您是否观察到同样的问题,因此这是 Eclipse 的问题,或者我做错了什么?
int number = 5;
Type dynamicType = number.GetType(); // dynamic type is "int"
dynamicType x = (number as dynamicType);
Run Code Online (Sandbox Code Playgroud) 哪个ORM支持不可变类型的域模型?
我想写下面的类(或Scala等价物):
class A {
private final C c; //not mutable
A(B b) {
//init c
}
A doSomething(B b) {
// build a new A
}
}
Run Code Online (Sandbox Code Playgroud)
ORM必须使用构造函数初始化对象.因此可以在构造函数中检查不变量.默认构造函数和字段/ setter访问intialize是不够的,并且使类的实现变得复杂.
应支持使用集合.如果更改了集合,则应从用户角度创建副本.(渲染旧的集合状态陈旧.但用户代码仍然可以工作(或至少读取).)就像持久数据结构一样.
关于动机的一些话.假设您有一个FP风格的域对象模型.现在,您希望将其保留到数据库中.你是谁做的?你希望在纯粹的功能样式中尽可能多地做到这一点,直到邪恶的一面效果进入.如果你的域对象模型不是不可变的,你可以例如不在线程之间共享对象.您必须复制,缓存或使用锁.因此,除非您的ORM支持不可变类型,否则您在选择解决方案时受到限制.
c# ×2
types ×2
.net ×1
.net-2.0 ×1
algorithm ×1
asynchronous ×1
class ×1
curl ×1
dynamic ×1
eclipse ×1
hibernate ×1
java ×1
javascript ×1
objective-c ×1
orm ×1
performance ×1
powershell ×1
scala ×1