计算(LnN!)的值


import java.util.*;
import java.math.*;
public class CaculatorLnN {

public static void main(String[] args) {
// TODO 自动生成的方法存根
int N;
System.out.println("please input N");
Scanner in=new Scanner(System.in);
N=in.nextInt();
double ln;
factorial fac=new factorial();
int factor=fac.factorial(N);
System.out.println(ln=Math.log(N));
}

}
class factorial{
static int one=1;
public static int factorial(int N){
if(N<0){
System.out.println("请输入正确的整数");
return -1;
}
if(N==1||N==0){
return one;
}
return factorial(N-2)*factorial(N-1);
}
}

转载于:https://www.cnblogs.com/marcoreus/p/5903829.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
LNN(Logic Neural Networks)算法是一种将逻辑推理和神经网络相结合的深度学习算法,它能够通过学习逻辑规则来进行推理和分类任务。下面是一个用Python实现LNN算法的示例代码: ```python import numpy as np class LNN: def __init__(self, input_size, output_size, hidden_size): self.input_size = input_size self.output_size = output_size self.hidden_size = hidden_size # 初始化权重和偏差 self.W1 = np.random.randn(self.input_size, self.hidden_size) self.b1 = np.zeros((1, self.hidden_size)) self.W2 = np.random.randn(self.hidden_size, self.output_size) self.b2 = np.zeros((1, self.output_size)) def sigmoid(self, x): return 1 / (1 + np.exp(-x)) def forward(self, X): # 前向传播 self.z = np.dot(X, self.W1) + self.b1 self.a = self.sigmoid(self.z) self.z2 = np.dot(self.a, self.W2) + self.b2 self.y_hat = self.sigmoid(self.z2) return self.y_hat def train(self, X, y, epochs, lr): for epoch in range(epochs): # 前向传播 y_hat = self.forward(X) # 计算损失 loss = np.mean((y_hat - y) ** 2) # 反向传播 d_y_hat = 2 * (y_hat - y) d_z2 = d_y_hat * self.y_hat * (1 - self.y_hat) d_W2 = np.dot(self.a.T, d_z2) d_b2 = np.sum(d_z2, axis=0, keepdims=True) d_a = np.dot(d_z2, self.W2.T) d_z = d_a * self.a * (1 - self.a) d_W1 = np.dot(X.T, d_z) d_b1 = np.sum(d_z, axis=0) # 更新参数 self.W1 -= lr * d_W1 self.b1 -= lr * d_b1 self.W2 -= lr * d_W2 self.b2 -= lr * d_b2 # 打印损失 if epoch % 100 == 0: print('Epoch:', epoch, 'Loss:', loss) ``` 这是一个简单的LNN实现,其中包括了前向传播、反向传播和参数更新等步骤。你可以通过调用train方法来训练LNN模型,例如: ```python # 创建模型 model = LNN(input_size=2, output_size=1, hidden_size=3) # 训练模型 X = np.array([[0, 0], [0, 1], [1, 0], [1, 1]]) y = np.array([[0], [1], [1], [0]]) model.train(X, y, epochs=1000, lr=0.1) # 预测结果 y_pred = model.forward(X) print(y_pred) ``` 这里使用了一个简单的异或逻辑门的例子来训练LNN模型,你可以根据自己的需求修改输入、输出和隐藏层的大小,以及训练次数和学习率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值