问题列表 - 第17401页

协助避免断言......永远!

在C和C++中assert是一个非常重要的例程,向程序写入错误stdout并终止程序.在我们的应用程序中,我们为assert实现了一个更强大的替换,并给它自己的宏.已尽一切努力取代assert我们的宏,但仍有许多方法assert可以重新引入(例如,来自内部第三方库,天真注射等)

关于如何减少,限制甚至根除使用的任何建议assert?最好的答案是编译器可以为我们捕获的答案,因此我们不必像现在那样照顾代码库.

c c++ api assert

7
推荐指数
1
解决办法
3636
查看次数

QLearning中的负奖励

假设我们在一个我们的代理可以沿着xx和yy轴移动的房间里。在每个点他都可以上下左右移动。因此,我们的状态空间可以由(x,y)定义,而我们在每个点上的动作都可以由(上,下,右,左)给出。假设我们的特工在任何使他撞墙的行动中,我们都会给他-1的负数回报,并使他回到以前的状态。如果他在房间中央发现一个木偶,他将获得+10奖励。

当我们更新给定状态/动作对的QValue时,我们会看到在新状态下可以执行哪些动作,并计算出可能达到的最大QValue,因此我们可以更新Q(s,a)当前状态/动作的值。这意味着,如果我们在点(10,10)中有一个目标状态,则它周围的所有状态的QValue会随着距离的增加而越来越小。现在,在与墙壁的关系上,在我看来这是不正确的。

当业务代表撞墙时(假设他处于位置(0,0)并进行了动作UP),他将为该状态/动作获得-1的奖励,从而获得-1的QValue。

现在,如果稍后我处于状态(0,1),并假设状态(0,0 0)的所有其他动作均为零,则在为动作LEFT计算(0,1)的QValue时,它将计算它可以通过以下方式:

Q([0,1], LEFT) = 0 + gamma * (max { 0, 0, 0, -1 } ) = 0 + 0 = 0
Run Code Online (Sandbox Code Playgroud)

这就是说,碰壁不会传播到附近的状态,这与您拥有积极奖励状态时发生的情况相反。

在我看来,这似乎很奇怪。起初,我认为找到给予负面奖励的状态/动作对与正面奖励一样是学习上的明智之举,但是从我上面显示的示例来看,这种说法似乎并不成立。在算法中似乎存在偏见,其要更多地考虑正面奖励而不是负面奖励。

这是QLearning的预期行为吗?不好的奖励不应该和积极的奖励一样重要吗?什么是“解决方法”?

artificial-intelligence reinforcement-learning

5
推荐指数
2
解决办法
3315
查看次数

在lucene中获得两个文档之间的余弦相似度

我在Lucene建了一个索引.我希望不指定查询,只是为了获得索引中两个文档之间的分数(余弦相似度或其他距离?).

例如,我从之前打开的IndexReader获取带有ID 2和4的文档.文档d1 = ir.document(2); 文件d2 = ir.document(4);

如何获得这两个文档之间的余弦相似度?

谢谢

lucene trigonometry similarity tf-idf

15
推荐指数
2
解决办法
2万
查看次数

纯函数式编程语言中的双重链接列表

如何用纯函数式语言编写双向链表?也就是说,像Haskell这样的东西,你不在Monad,所以你没有变异.可能吗?(单链表很明显很简单).

haskell functional-programming linked-list data-structures

46
推荐指数
3
解决办法
7387
查看次数

是否可以覆盖隐藏方法?

说我有以下层次结构:

public class MyClass
{
  protected virtual void Method() { ... }
}

public class MySubClass : MyClass
{
  public new virtual void Method() { ... }
}

public class MySubSubClass : MySubClass
{
  // how do I reference the protected Method() to override it?
}
Run Code Online (Sandbox Code Playgroud)

是否可以覆盖protectedMethod()的实现,以便将MyClass中定义的其他方法的调用分派给MySubSubClass中的实现?

如果不可能,那么为什么开悟是很好的.

c# oop inheritance overriding

3
推荐指数
1
解决办法
540
查看次数

如何使div包含两个浮点div?

我不知道这是否是一个常见的问题,但到目前为止我无法在网络上找到解决方案.我想在另一个div中包含两个div,但是这里面的两个div必须对齐相同的级别(例如:left one占用wrappedDiv的20%宽度,右边一个占80%).为了达到这个目的,我使用了以下示例CSS.但是,现在换行DIV并没有包装所有div.包裹Div的高度小于内部包含的两个div.我怎么能确保包装Div具有最大的高度作为包含的div?谢谢!!!

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
    <title>liquid test</title>
    <style type="text/css" media="screen">
        body
        {
            margin: 0;
            padding: 0;
            height:100%;
        }
        #nav
        {
            float: left;
            width: 25%;
            height: 150px;
            background-color: #999;
            margin-bottom: 10px;
        }

        #content
        {
            float: left;
            margin-left: 1%;
            width: 65%;
            height: 150px;
            background-color: #999;
            margin-bottom: 10px;
        }       
        #wrap
        {
          background-color:#DDD;
          height:100%;
        }

</style>
</head>
<body>
<div id="wrap">
    <h1>wrap1 </h1>
    <div id="nav"></div>
    <div id="content"><a href="index.htm">&lt; Back to article</a></div>
</div>
</body> …
Run Code Online (Sandbox Code Playgroud)

html css layout css-float

72
推荐指数
4
解决办法
12万
查看次数

数据库中的货币建模

一个非常天真的问题.我需要在数据库中存储货币.价值和代码.要解决这个问题,人们通常会制作2列,一列存储值,另一列存储代码?或者是否有我可以使用的内置类型?

-谢谢

database currency

6
推荐指数
2
解决办法
3190
查看次数

#include iostream in C?

在C++中,我们始终将以下内容放在程序的顶部

#include <iostream>
Run Code Online (Sandbox Code Playgroud)

C怎么样?

c c++ iostream include

12
推荐指数
3
解决办法
6万
查看次数

向后台进程发送信号

我应该将哪个信号发送到后台进程以将其移至前台?SIGTTIN,SIGTOU还是......?

c linux signals

3
推荐指数
2
解决办法
7061
查看次数

Javascript性能 - Dom Reflow - Google文章

有人可以向我证明这里给出的建议(下面复制)关于在更改dom元素之前删除dom元素然后重新插入它们的速度要快得多.

通过证明,我想看一些数字.很好,他们研究这个,但我认为这篇文章非常薄弱,没有详细说明"问题"究竟是什么以及解决方案如何修复速度方面(如文章标题加速JavaScript)

这篇文章....

流出DOM操作

这种模式允许我们创建多个元素并将它们插入到DOM中,从而触发单个重排.它使用了一种叫做DocumentFragment的东西.我们在DOM之外创建一个DocumentFragment(因此它不在流程中).然后,我们创建并添加多个元素.最后,我们将DocumentFragment中的所有元素移动到DOM,但触发单个重排.问题

让我们创建一个函数来更改元素中所有锚点的className属性.我们可以通过简单地遍历每个锚点并更新它们的href属性来实现.问题是,这可能导致每个锚的回流.

function updateAllAnchors(element, anchorClass) {
  var anchors = element.getElementsByTagName('a');
  for (var i = 0, length = anchors.length; i < length; i ++) {
    anchors[i].className = anchorClass;
  }
}
Run Code Online (Sandbox Code Playgroud)

解决方案

要解决此问题,我们可以从DOM中删除元素,更新所有锚点,然后将元素插回到原来的位置.为了帮助实现这一目标,我们可以编写一个可重用的函数,它不仅可以从DOM中删除元素,还可以返回一个将元素插回原始位置的函数.

/**
 * Remove an element and provide a function that inserts it into its original position
 * @param element {Element} The element to be temporarily removed
 * @return {Function} A function that inserts the element into its original position
 **/
function removeToInsertLater(element) { …
Run Code Online (Sandbox Code Playgroud)

javascript performance

6
推荐指数
1
解决办法
3625
查看次数