算法强训:第二十五天

        本篇主要是以算法为主,第一题主要是考察斐波那契数列,第二题主要是求各位位的和,如果和不是个数则,需要将继续对个位进行求和。


文章目录

  • 星际密码
  • 数根

一、星际密码OJ链接

#include<bits/stdc++.h>

using namespace std;

int N;
vector<int> password={1,1};

void  Fib()
{
    for(int i=2;i<10005;i++)
        password.push_back((password[i-1]+password[i-2])%10000);
    
}
int main()
{
    ios::sync_with_stdio(false);
    Fib();
    int x;
    
    while(cin >> N){
        for(int i = 0; i < N; ++i){
            cin >> x;
            printf("%
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
这里提供一个简单的LSTM预测未来两的数据的Python代码,并且绘制预测结果的图表。 首先,我们需要导入必要的库: ```python import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.preprocessing import MinMaxScaler from keras.models import Sequential from keras.layers import Dense, LSTM ``` 然后,我们需要读取数据并进行预处理。这里我们以某个公司股票价格的时间序列数据为例: ```python df = pd.read_csv('stock_price.csv', index_col='Date', parse_dates=True) data = df.filter(['Close']).values train_data_len = int(np.ceil(0.8 * len(data))) scaler = MinMaxScaler(feature_range=(0, 1)) scaled_data = scaler.fit_transform(data) train_data = scaled_data[0:train_data_len, :] x_train = [] y_train = [] for i in range(60, train_data_len): x_train.append(train_data[i-60:i, 0]) y_train.append(train_data[i, 0]) x_train, y_train = np.array(x_train), np.array(y_train) x_train = np.reshape(x_train, (x_train.shape[0], x_train.shape[1], 1)) ``` 这里将数据按照80%训练集和20%测试集的比例进行划分,使用MinMaxScaler进行归一化处理,然后将训练集按照60个为一组进行切分,即将前60个数据作为输入,第61个数据作为输出,以此类推。 接下来,我们可以构建LSTM模型: ```python model = Sequential() model.add(LSTM(50, return_sequences=True, input_shape=(x_train.shape[1], 1))) model.add(LSTM(50, return_sequences=False)) model.add(Dense(25)) model.add(Dense(1)) model.compile(optimizer='adam', loss='mean_squared_error') ``` 这里我们构建了一个包含两个LSTM层的模型,其中第一个LSTM层返回的是序列,第二个LSTM层则不返回序列。最后,我们添加了两个全连接层,其中最后一个输出层的输出维度为1,表示只输出一个值。 接下来,我们可以使用训练集对模型进行训练: ```python model.fit(x_train, y_train, batch_size=1, epochs=1) ``` 最后,我们可以使用模型对未来两的数据进行预测,并将预测结果绘制成图表: ```python test_data = scaled_data[train_data_len - 60:, :] x_test = [] y_test = data[train_data_len:, :] for i in range(60, len(test_data)): x_test.append(test_data[i-60:i, 0]) x_test = np.array(x_test) x_test = np.reshape(x_test, (x_test.shape[0], x_test.shape[1], 1)) predictions = model.predict(x_test) predictions = scaler.inverse_transform(predictions) rmse = np.sqrt(np.mean((predictions - y_test)**2)) print('RMSE:', rmse) train = data[:train_data_len] valid = data[train_data_len:] valid['Predictions'] = predictions plt.figure(figsize=(16, 8)) plt.title('LSTM Model') plt.xlabel('Date', fontsize=18) plt.ylabel('Close Price USD ($)', fontsize=18) plt.plot(train['Close']) plt.plot(valid[['Close', 'Predictions']]) plt.legend(['Train', 'Val', 'Predictions'], loc='lower right') plt.show() ``` 这里我们使用了测试集进行预测,并将预测结果和真实值绘制成图表,以便于观察预测结果的准确性。 完整的代码如下:

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

‘(尐儍苽-℡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值