- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我即将完成一门算法类(class),教授希望我们做一个“机器学习”练习,我在该项目中几乎拥有自由支配权,但是,它必须属于监督学习的总体范围。因此,我决定进行一次抛硬币模拟,并由计算机玩家进行下注。我的想法是让硬币有偏差,看看计算机在使用训练数据下注时是否能够发现这种偏差。我真的不知道如何解决这个问题..
我的一个想法是在训练轮(例如 100 次投注)后确定投注时,增加获胜计数器并将其作为参数传递到方法中。这样,计算机玩家就可以决定放置更多的正面,例如正面出现的概率为 90%。经过充分的训练,我认为计算机会发现偏差。
我这里有代码可以根据结果增加胜利计数器,但是,我不太确定从哪里开始。 IE。如何保存是否获胜以及正面或反面是否出现的相应数据,然后使用该信息在下一轮中下注。任何建议将不胜感激。如果有人认为我的做法是错误的,我也愿意使用不同的方法。
请记住,我是一名本科二年级学生,对实际的机器学习技术知之甚少,因此我的问题中加了引号。
public class CoinFlip {
public static void main(String[] args) {
int bank = 500;
int headsCount=0;
int tailsCount=0;
int winCounter=0;
int lossCounter=0;
String[] flipResults = new String[100];
ComputerPlayer randomPlayer = new ComputerPlayer();
Coin coin = new Coin();
for (int i = 0; i < 100; i++) {
randomPlayer.placeRandomBet();
flipResults[i] = coin.flip();
if(flipResults[i].equals("heads")){
headsCount += 1;
}
else{
tailsCount +=1;
}
if(flipResults[i].equals(randomPlayer.placeRandomBet())){
bank += 50;
winCounter+=1;
}
if(!flipResults[i].equals(randomPlayer.placeRandomBet())){
bank -=50;
lossCounter+=1;
}
}
}
public static class ComputerPlayer{
double bet;
String heads = "heads";
String tails = "tails";
public String placeRandomBet(){
bet = Math.random();
if(bet < .5){
return heads;
}
else return tails;
}
public static String placeLearnedBet(int wins; int losses){
//not sure where to start
}
public static class Coin {
double coin;
String heads = "heads";
String tails = "tails";
public String flip() {
if (Math.random() < .9) {
return heads;
} else {
return tails;
}
}
}
最佳答案
就发现偏差而言,这并不是那么困难。基本上,您只需根据总游戏次数中正面的数量来猜测偏差,这个比率将为您提供平均偏差。因此,例如,如果您有 51 个正面和 49 个反面,那么您会猜测正面的偏差为 51%。
最终,我认为 Benjy 是正确的,您应该根据更有可能的情况(根据您的偏见)下注(正面或反面)。随着你获得越来越多的样本,你的猜测偏差将收敛到实际偏差。就投注而言,从期望的角度来看,您应该尽可能多地投注;但从现实的角度来看,这不是一个好的策略(因为如果你总是赌上一切,你最终会输掉一切,除非硬币是 100% 偏向某一方面的)。
一种可能的投注策略可以是“前瞻性”,即假设您将在接下来的 n 轮中进行相同的投注,并计算您获胜与失败的概率。您并不是直接尝试找到下注金额,而是尝试找到给出一定成功概率的数字 n(要期待的轮数)。投注方案风险越大,可接受的成功概率越小(即方案风险越大),投注方案越保守,则可接受的成功概率越大。一旦您找到保证成功所需的轮数(在您选择的概率内),您就可以将您的底池除以预期轮数,即下注的最大金额,这样如果您输掉接下来的 n 轮中的每一轮,您仍然可以下注。
您可以看到,通过上述,保守的方案将需要越来越多的前向轮次,因此赌注会越来越小,而对于有风险的方案,成功的概率很小,因此需要更少的轮次并允许以获得更大的赌注。
最后一件有趣的事情是决定您应该选择的方案的风险有多大。根据我所做的,硬币的偏差越小(即正面或反面的可能性越接近 50%),您应该承担的风险就越大,并且硬币的偏差越大(即正面或反面的可能性为 90%)反面或正面的几率为 90%)您的投注风险越小。这是有道理的,因为如果硬币是完全公平的,那么就没有一种投注方案通常会获胜,所以你最好的方法就是下大注,并捕获 50% 的机会获胜。另一方面,如果硬币有极大的偏差,那么游戏本身的风险就不是很大,因此您的投注方案不需要有很大的风险。在后一种情况下,如果您倾向于下大注,那么您输掉一切的机会就会增加,而小赌注几乎可以保证获得丰厚的返回。请记住,随着您的底池增长,您可以进行越来越大的赌注,而不会增加赔钱的风险,因此,如果代币非常有偏差,那么您的底池很容易获得指数级增长。
关于java - 如何为硬币翻转游戏设计 "machine learning"方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27141950/
我有一个数据集,我试图在其中探索将变量限制在给定值并将超出的部分滚动到后续间隔的影响。我可以从概念上看到一些方法可以使用 cumsum() 来做到这一点。或类似的,但正在努力了解如何以合乎逻辑的方式实
我正在开发一个使用 iPhone 前置摄像头的应用程序。当使用该相机拍摄图像时,iPhone 会水平扭曲图像。我想将其镜像回来,以便能够保存它并按照在 iPhone 屏幕上看到的方式显示它。 我读了很
这是 HTML // stuff here Order /
我正在使用 Jquery - 是否有一种简单的方法可以在用户滑过 div 时更改它的背景颜色? 最佳答案 你可以用 CSS 做到这一点: #myDiv:hover { background-color
有谁知道是否可以翻转图像并在其背面显示内容。这就是我的意思:想象一下你手里拿着一张肖像。然后你翻转并查看肖像的背面,背面有文字。我正在寻找类似的东西,单击图像将镜像/翻转到另一侧,上面有文字。不可90
我在翻车方面遇到了一些麻烦..希望你能帮助我! 我正在使用 li 导航,我希望有单独的框链接到不同的页面。这部分很好,可以正常工作。我希望能够将鼠标悬停在框上并让框和链接改变颜色。我可以毫无问题地改变
所以我目前在 Vuejs 中有一个组件,用户可以在其中从他们的本地文件系统中选择一个文件。用户选择图片后,图片会在 div 中预览 codesandbox .出于某种原因,某些图像会自动“翻转”到侧面
我有一个滚动顶部菜单。我正在尝试获取它,以便我的背景图像 (17px x 13px) 悬停在中央。我已经尝试了所有背景 css 属性,但似乎没有任何效果。我是不是用错了方法? 这是我的 CSS: #n
我以前用过这个效果,一切正常(据我所知),但就是不行。我错过了什么? Fiddle here Sprite here 谢谢。 最佳答案 由于您的 Sprite 是水平排列的,因此您需要像这样偏移悬停状
代码后面的代码不起作用,因为重新查找接受字符串作为第一个参数,正则表达式作为第二个参数。 (-> "hello" .toUpperCase (re-find #".$")) 如果我像这
我想使用 CABasicAnimation 翻转 UILabel。动画将永远重复,并将在两个不同值之间更改 UILabel 的文本。 - (void)animateLabel { [self
旋转 WPF 图像非常简单 imgCurrent.LayoutTransform = new RotateTransform(_rotationAngle); 水平和垂直镜像呢? 机外: In GDI
我需要创建一个动画 - 翻转一个 View 并显示另一个。 当前显示的 View 的宽度慢慢减小到零,之后要显示的 View 的宽度必须从零开始增加。 在此期间,高度从当前显示的高度变为略微降低的高度
我正在尝试找到翻转 Rust 中 boolean 值的最快方法?即 false => true true => false 对于我的应用程序,我不关心 boolean 值的当前值,只关心它被翻转了。对
是否可以翻转 primefaces 中的数据表,以使标题位于左侧而不是顶部?我有下表: 如您所见
我在翻转 View 时遇到了一些问题。我的 View Controller 中有以下代码: - (void)loadFlipsideViewController { ProblemViewFl
我正在使用翻转动画在 View Controller 中的两个 View 之间制作动画。问题是动画发生时背景显示白色空白背景。我想显示黑色背景。 我尝试在 IB 和代码中将主视图的背景颜色设置为黑色。
请考虑下面的代码,并告诉我我做错了什么。 我想在两个 UIView 之间切换。 不知何故,当我从初始 View 翻转时,我只是得到翻转的 View ,没有动画。当我向后翻转时,动画显示得很好。 翻转是
我有一个 NSScrollView,需要在其中显示可变数量的 NSView。我制作了一个自定义 NSView,它的 isFlipped 返回 YES 并将我的 NSView 放入其中,然后将其设置为
我有一个 NSView 的子类,它重新实现了许多鼠标事件函数。例如,在 mouseDown 中从我使用的 NSEvent 获取点: NSEvent *theEvent; // <- argument
我是一名优秀的程序员,十分优秀!