对于我的学士论文,我想写一个学习玩Stratego游戏的遗传算法(如果你不知道这个游戏,假设我说国际象棋可能是安全的).我以前从未做过实际的人工智能项目,所以看到我实际上对实现的了解有点少,这让人大开眼界.
我坚持的事情是为实际策略提供一个很好的代表.我可能会犯一些思考错误,但遇到的一些问题:
我认为经过三年多的学习后我应该知道这些事情,所以我觉得很愚蠢 - 这看起来像我根本没有任何线索.仍然,任何关于谷歌的帮助或提示将不胜感激!
artificial-intelligence data-representation genetic-algorithm
我有一个包含许多属性的类,如:
public class Update
{
public int Quantity { get; set; }
public decimal Price { get; set; }
public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
每个实例Update不一定具有每个属性集,并且系统的另一部分需要知道哪些已经设置,哪些没有.
我得到的一个选择是制作所有的值类型Nullable,因此null值将代表未设置的概念.虽然这可行,但我并不喜欢明确地拥有一些属性Nullable(值类型)和一些可以作为引用类型的可空的想法.类定义看起来很难看,我不相信null检查在语义上是最好的方法.
我可以创建一个类非常相似,Nullable<T>这对没有约束T与IsSet性能.我更喜欢使用此选项Nullable,但我仍然希望看到是否有人有一个比我建议的选项更好的替代表示.
我正在用java制作游戏,而且进展顺利.我想尽早实现多人游戏,所以我建立在它上面而不是将整个游戏移植到多玩家时,它有很多不同的功能..我想把它变成一个客户端/服务器应用程序.现在我现在确定如何或如何实现多人游戏.我已经阅读了有关套接字和所有内容的java教程,我测试了它们并成功建立了连接(在测试项目中).我不知道从哪里开始.我不知道如何转移例如不同的玩家在地图上的地方,或者甚至只是有任何玩家...我不知道是否使用图书馆或自己做或者做什么......如果有人可以请你给我一些关于如何通过TCP连接传输播放器数据或类似内容的指南,或者可以给我一个使其更简单的库...
假设 2 的补码表示,可以用 5 位数字表示的最大值和最小值是多少?
我是否找到了 5 位数字的最小值和最大值,即 00000,但我不确定最大值是多少。然后转换为二进制补码?这听起来很愚蠢,但这是我唯一能想到的……
我的最后一个问题是:假设它们是使用 2 的补码格式的存储,那么在处理器中存储 –EA(base16) 和 24(base16) 之间的值所需的最小寄存器长度是多少?
我不知道如何解决这个问题。
任何帮助或解释将不胜感激:)
我想知道可以完全表示为浮点数的最大奇数整数是多少?以及为什么在这种情况下表示为浮点数的最大偶数之间存在差异。
我相信这与基数 2 指数 2^n-1 有关,但是我对 C 中的数据表示不够熟悉,无法看出区别。
我正在实施BTreeMap<K, V>. 在此之上,我正在构建一个 BTreeSet,它是type MyBTreeSetContents<T> = MyBTreeMap<T, ()>.
在内部,此 BTree 的叶节点包含一系列Vec<(K, V)>值。对于 BTreeSet,这因此成为一个Vec<(K, ())>.
我想提供一个对 BTreeSet 中值的引用的快速迭代器。产生 的迭代器&T。但到目前为止,我能在不进行 transmute 的情况下得到的最好结果是生成&(T, ()).
因此问题是:
K、(K, )和 的内存表示(K, ())相同吗?(K, ())和之间转换吗K?Vec<(K, ())>为 a吗Vec<K>?如果有其他方法可以规避std::mem::transmuteall-together 的使用,那么我们当然也会非常感激!
我遇到了一个问题,我遇到了浮点问题.我很难从浮点表示移动到十进制值,也从表示的格式A移动到表示的格式B.
问题:
考虑以下两种基于IEEE浮点格式的9位浮点表示.
有一个符号位.有k = 5个指数位.指数偏差为15.有n = 3个分数位.
有一个符号位有k = 4个指数位.指数偏差为7.有n = 4个派系位
问题是我要将浮点表示"0 10110 011"从格式A转换为格式B.它还想知道每种格式的值.任何人都可以协助我完成这两项任务的程序.或者也许会将我引导到一个能够向我展示的信息丰富的网站.我一直在寻找一段时间,但我找不到任何资源.谢谢!
-Matt
似乎有两种方法可以用C++表示卡片.
显而易见的方式是:
const int numCards = 52;
const int numRanks = 13;
const int numSuits = 4;
enum Suit {
HEARTS = 1;
DIAMOND = 2;
SPADES = 3;
CLUBS = 4;
}
card Class {
private:
const Suit suit;
const int rank;
public:
/// Constructor
Card(int rank, Suit suit)
/// Get rank between 1 and 13
int getRank();
/// Get suit
Suit getSuit();
/// Get string representation
std::string toString();
};
Run Code Online (Sandbox Code Playgroud)
还有另一种方法,整个卡由一个字节表示.
namespace Cards {
typedef byte Card;
/// Constructor …Run Code Online (Sandbox Code Playgroud) 他们让我把一组字样表示成"地图记忆".集合中有哪些字符?老师告诉我们使用ASCII码,成一组32个字节.
A有这个例子,集{'A','B','C'}
(7来自0111)
= {00 00 00 00 00 00 00 00 70 00 00 00 00 00 00 00 00 00 00 00 00}
目前看这个API页面,我曾尝试输入format loose和format compact,但无济于事.我需要做的是更改此编号在命令窗口中的显示方式:
我通过将它四舍五入到我从main函数调用的函数中的三个最重要的数字来获得该值.
stat = round(mean(v_stat),3,'significant');
Run Code Online (Sandbox Code Playgroud)
我通过这个语句显示值:
fprintf('Ratio of Compression for Blind Deconvolution: %d \n',stat1);
Run Code Online (Sandbox Code Playgroud)
我需要知道如何显示这个值,因为它是正确的状态,而不是乘以e提升到某种东西的力量.
我正在学习R(RStudio)和tidyverse来做一些统计分析和数据表示.我正在使用黑色素瘤数据集.我被要求大致找到被诊断患有恶性肿瘤的男性患者的数量和被诊断患有良性肿瘤的女性患者的数量.最初,我这样做了:
library(tidyverse)
load("Skin.Rda") #given data file
ggplot(Mela, aes(Behavior, fill=Gender)) + geom_bar(position="dodge")
Run Code Online (Sandbox Code Playgroud)
但我不满意,因为你无法清楚地看到价值观.我知道我可以做各个方面,但即便如此我也不知道如何独立设置每个方面的y值范围.
所以,我决定将其分解; 良性与恶性.(我也想在栏的顶部添加文字,但我甚至无法做简单的部分).我缩小了数据并再次绘制:
Mela_Benign <- Mela %>% filter(Behavior=="Benign") %>% group_by(Gender) %>% summarise(Value=n())
ggplot(Mela_Benign, aes(x=Gender, y=Value)) + geom_bar(stat = "identify")
Run Code Online (Sandbox Code Playgroud)
这给了我一个非常简单的表(2x2 male =#,female =#)但它产生了一个奇怪的错误我以前没有遇到过:
Error: Found object is not a stat.
Run Code Online (Sandbox Code Playgroud)
我认为这是因为因素问题,但我使用"as.factor()"仍然是相同的.我一直在搜索,但似乎无法找到这个错误的解释.也许这很简单,但我无法弄清楚.
如果有人对此事有任何意见,我将非常感激.谢谢!
首先,一个典型的实施是std::weak_ptr什么?特别是std::weak_ptr只是一个控制块的指针std::shared_ptr?
如果所有std::shared_ptr引用都消失了,内部控制块是否被删除?如果是这样,std::weak_ptr::expired()如果重新使用该内存,如何正常运行?
我有一个包含a的对象,std::weak_ptr我想memcpy将对象转换为稍后要处理的缓冲区.这样做会以某种方式打破智能指针的内部工作吗?