小编use*_*648的帖子

OpenAI健身运动员模式

有没有人知道如何作为一个播放器运行OpenAI健身房环境之一.就像让一个人类玩家玩一轮推车杆一样?我已经看到有env.mode ='human'但我无法让它正常运行.我试图按照这里给出的例子https://www.pinchofintelligence.com/getting-started-openai-gym/,但它似乎对我不起作用.

您将给予的任何帮助将不胜感激.

谢谢

python machine-learning reinforcement-learning openair openai-gym

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

如何在Scala中使类完全不可变

我试图使以下类不可变.我知道如何做到这一点的理论,但我认为我的实施是错误的.你能帮我吗?

谢谢

可变类:

class BankAccount {
private var balance = 0
def deposit(amount: Int) {
    if (amount > 0)
    balance += amount
}
def withdraw(amount: Int): Int =
if (0 < amount && amount <= balance) {
    balance -= amount
    balance        
} else {
    error("insufficient funds")
}
Run Code Online (Sandbox Code Playgroud)

不变的阶级

case class BankAccount(b:Int) {

private def deposit(amount: Int):BankAccount {
    if (amount > 0)
    {
        return BankAccount(amount)
    }

}
private def withdraw(amount: Int): BankAccount ={
    if (0 < amount && amount <= balance) …
Run Code Online (Sandbox Code Playgroud)

oop functional-programming scala immutability

4
推荐指数
2
解决办法
2358
查看次数

Tail递归函数用于分数之和

我试图将这个递归函数转换为尾递归函数

def sumOfFractions(n: Int): Double = {
  require(n > 0, "Parameter n has to be greater than 0");
  if (n==1)
    1.0
  else
    1.0 / n + sumOfFractions(n - 1)
}
Run Code Online (Sandbox Code Playgroud)

我认为这个解决方案可行,但是当它运行时它只返回1.0

def sumOfFractions(n:Int):Double = {

  def inner(acc:Int, n:Int): Double={
    if(n <= 1)1.0
    else
    {
        inner(acc+(1/n),n-1)
    }

  }

  inner(0,n)
}
Run Code Online (Sandbox Code Playgroud)

我认为这是因为累加器没有正确更新,但我不明白为什么.代码在Scala中,但任何语言的示例都会有所帮助.

recursion functional-programming scala tail-recursion

2
推荐指数
1
解决办法
171
查看次数