作业-13

作业一

士兵老Amy有一把枪(AK47),
士兵可以开火
枪能够发射子弹
枪能够添加子弹
枪类:
属性:型号,子弹数量
行为:发射子弹,添加子弹
士兵类:
属性:士兵名称,枪支
行为:开火行为(需考虑到:是否有枪支?以及添加子弹,发射子弹

class Gun(object):
    def __init__(self, gun_type, gun_bullet):
        self.type = gun_type
        self.bullet = gun_bullet

    def shooting(self, num_shots):
        self.bullet -= num_shots
        print(f"本次射出子弹:{num_shots}发, 剩余子弹{self.bullet}发")
        if self.bullet < 1:
            self.reload()

    def reload(self):
        self.bullet = 45
        print(f"已重新装填弹药,当前子弹{self.bullet}发")


class Soldier(Gun):
    def __init__(self, soldier_name, gun_type, gun_bullet):
        self.name = soldier_name
        super().__init__(gun_type, gun_bullet)
        print(f"士兵姓名:{self.name}, 使用枪械:{self.type}, 初始弹药:{self.bullet}发")

    def fire(self, num_shots):
        super().shooting(num_shots)


War = Soldier('Amy', 'AK47', 45)
War.fire(1)  # 点射
War.fire(3)  # 连射3次

作业二

车类1:
属性:颜色,轮子个数(默认4个),重量级,速度(默认为0)
行为:加速,减速,停车
车类2:
属性:在基于车类1的基础上,添加一些比如:牌子,型号,空调系统等
行为:覆盖车类1的加速与减速,打印输出车辆信息

class CarType1:
    def __init__(self, colour, lv_weight, tyre_num=4, speed=0):
        self.colour = colour
        self.weight = lv_weight
        self.tyre = tyre_num
        self.speed = speed

    @staticmethod
    def accelerate(self):
        print("车类1加速")

    @staticmethod
    def decelerate(self):
        print("车类1减速")

    @staticmethod
    def parking(self):
        print("车类1停车")


class CarType2(CarType1):
    def __init__(self, car_brand, car_type, car_air_conditioner, colour, lv_weight, tyre_num=4, speed=0):
        self.car_brand = car_brand
        self.type = car_type
        self.air_conditioner = car_air_conditioner
        super().__init__(colour, lv_weight, tyre_num, speed)
        print(f"车辆品牌:{self.car_brand},车型号:{self.type},车颜色:{self.colour}"
              f"车重:{self.weight},车空调:{self.air_conditioner},车轮子数:{self.tyre},车速度:{self.speed}")

    def accelerate(self):
        print("车类2加速")

    def decelerate(self):
        print("车类2减速")


car_infor = CarType2("宝马", "X5", "冷热空调", "蓝色", "2吨")
car_infor.accelerate()
car_infor.decelerate()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于LSTM的财务因子预测选股模型LSTM (Long Short-Term Memory) 是一种特殊的循环神经网络(RNN)架构,用于处理具有长期依赖关系的序列数据。传统的RNN在处理长序列时往往会遇到梯度消失或梯度爆炸的问题,导致无法有效地捕捉长期依赖。LSTM通过引入门控机制(Gating Mechanism)和记忆单元(Memory Cell)来克服这些问题。 以下是LSTM的基本结构和主要组件: 记忆单元(Memory Cell):记忆单元是LSTM的核心,用于存储长期信息。它像一个传送带一样,在整个链上运行,只有一些小的线性交互。信息很容易地在其上保持不变。 输入门(Input Gate):输入门决定了哪些新的信息会被加入到记忆单元中。它由当前时刻的输入和上一时刻的隐藏状态共同决定。 遗忘门(Forget Gate):遗忘门决定了哪些信息会从记忆单元中被丢弃或遗忘。它也由当前时刻的输入和上一时刻的隐藏状态共同决定。 输出门(Output Gate):输出门决定了哪些信息会从记忆单元中输出到当前时刻的隐藏状态中。同样地,它也由当前时刻的输入和上一时刻的隐藏状态共同决定。 LSTM的计算过程可以大致描述为: 通过遗忘门决定从记忆单元中丢弃哪些信息。 通过输入门决定哪些新的信息会被加入到记忆单元中。 更新记忆单元的状态。 通过输出门决定哪些信息会从记忆单元中输出到当前时刻的隐藏状态中。 由于LSTM能够有效地处理长期依赖关系,它在许多序列建模任务中都取得了很好的效果,如语音识别、文本生成、机器翻译、时序预测等。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值