蓝桥杯煤堆算法问题采用机器学习实现

先上题:

应该是蓝桥杯某年java编程决赛的一道算法题,只要求写结果,所以很多时候就。。。。

可以用笔算算

可以用编程实现

闪现一个思路想用机器学习来做,首先猜想大概是过拟合,这里我们简单分析一下

这题的思路简单大概如此,可以找规律,很容易得到 :本层的煤球数=上一层煤球数+本层序号   

虽然规律很容易,编程也很容易,但是这里假设我们不懂,也不会编程,我们就是傻傻的用人工智能取解决这个问题,找出每一层对应的煤球数,计算总和。

关键打算用机器学习处理

本来我的思路是手推前18层,然后找个回归算法,前14层训练,15 16 1718层预测。准确了也就可以达到不思考解决问题。

 

弄到这里一切都是好的16 层手推的是136,本来感觉这就是参数还没学习好的问题。然而下面就出事了

 

 

训练集的准确率基本是99% 但是预测后面的未知数聚集可以发现大部分预测结果保持不变。思考一下这里主要的原因是

1 学习训练参数的样本实在太少,14个数据想训练一个4层神经网络确实夸张了。

2  还有就是神经网络的层数和神经元太多。

于是老老实实手推1-100层煤球的个数。。。。。。。。。。开玩笑的

随缘的童鞋可以下去试试,这里我们用Python做,

不敢浪了。接下来就是1-80层做训练集,81-100层做测试,神经网络两层,每层100个神经元

最后提一下:因为模型训练的时候没有固定参数,做完了才想起来。后面无论怎么试不就是不完美了。所以训练的时候一定

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值