首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在这个逻辑问题上,我应该使用什么人工智能技术或其他技术?

在这个逻辑问题上,我应该使用什么人工智能技术或其他技术?
EN

Stack Overflow用户
提问于 2018-09-26 01:32:08
回答 1查看 65关注 0票数 0

出于教学目的,我正在尝试完成这个挑战:生成一个随机的3位数(1-9) Char序列是DESC,例如"123“是一个无效的数字,原因是1>2和2> 3;"321”是有效的。

当您尝试猜测数字时,它返回C表示精确位置中的正确字符,返回N表示错误位置中的正确字符,例如:

代码语言:javascript
运行
复制
randomly generated "961"
algorithm try "321" and XPTO returns C = 1 and N = 0
algorithm try "654" and XPTO returns C = 0 and N = 1

我们的目标是以尽可能少的尝试高效地获取C=3,甚至不知道我需要学习哪种AI技术,有什么建议或建议吗?

EN

回答 1

Stack Overflow用户

发布于 2018-12-23 05:00:57

在@juvian的提示之后,我构建了一个js解决方案。

首先创建一个列表:

代码语言:javascript
运行
复制
function generateList(){
List = new Array();
for (i = 1; i <= 7; i++) { 
for (j = i+1; j <= 8; j++) { 
for (k = j+1; k <= 9; k++) { 
List.push(""+k+j+i);}}}
WriteResult(List.length,List[0]);
}

然后进行测试,并从列表中排除“不可能”的组合

代码语言:javascript
运行
复制
for( var i = List.length-1; i >= 0; i--){ 
var C = Number(document.getElementById("C").value);
var N = Number(document.getElementById("N").value);
var Guess = ""+Number(document.getElementById("Guess").value);
var CountC = 0
var CountN = 0

for( var j = 0; j < 3; j++)
{
if (Guess.substr(j, 1) == List[i].substr(j, 1)) {CountC++;}
else if (List[i].split(Guess.substr(j, 1)).length > 1) {CountN++;}
}
console.log(List[i]+" C:"+CountC+" N:"+CountN);
if (CountC != C || CountN != N) {List.splice(i, 1); }
}  
WriteResult(List.length,List[0]); 
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52503826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档