砝码分盐问题——从数学和计算机的角度分析(9)

本博客(http://blog.csdn.net/livelylittlefish )贴出作者(阿波)相关研究、学习内容所做的笔记,欢迎广大朋友指正!

 

 

Content

0. 问题

1. 一些方法

2. 从数学的角度分析

3. 能否编程计算?

4. 一个改进的方法

5. 再改进的方法

6. 能否直接计算求出所有正确解?

7. 一个更为简单的方法

8. 所有代码的自动编译、运行

9. 问题扩展

10. 体会

11. 总结

Reference

附录 1 :数学分解的代码 weight1.c

附录 2 :数学分解程序 weight1 的运行结果

附录 3 :树结构分解的代码 weight2.c

附录 4 :再改进的方法的代码 weight3.1.c/3.2.c/3.3.c

附录 5 :再改进的方法的代码 weight3.1.c/3.2.c/3.3.c 的输出结果

附录 6 :直接计算正确分解的代码 weight4.c

附录 7 :一个更简单的方法的代码 weight5.1.c/5.2.c/5.3.c


9. 问题扩展

 

面对这样的问题,能否举一反三?能否将其扩展?又如何扩展呢?笔者提供几个思路对其扩展,解决办法,读者可自行编程计算。

 

(1) 将题目给定的盐的质量及砝码质量 等倍数 增加或减少,达到同样的目标

 

这个扩展应该是最简单的一种,很好解,只需在程序中将定义的宏,如 total heap1 heap2 进行相应的修改即可。

 

(2) 将题目给定的盐的质量及砝码质量 不等倍数 增加或减少,问有无解?若有解,有几个解?如何得到这些解?

 

这个扩展稍微复杂一些,质量不等倍数增加或者减少,首先是砝码组合会发生变化,但还可以参考本文给出的各种方法进行编程计算,修改全局数组 ws[] 的内容及相应的称量过程,应该也能解决该问题。

 

(3) 砝码个数及其质量都发生变化,达到类似的目标,如何解?

 

砝码组合会发生巨大的变化,求出砝码的组合结果,即本文全局变量 ws[] 数组的内容应该是该扩展的重点,可以考虑数学上的组合问题,也可以参考本文 2.1 砝码组合状态 的方法,通过一个二进制数表示砝码组合情况,共 n( 砝码个数 ) 位,其每一位 (0 或者 1) 表示砝码出现或者不出现;但该表示方法不能表示砝码出现在天平的哪一端。为了表示砝码出现在天平的哪一端,可以用一个三进制数表示砝码的组合情况,其每一位 0,1,2( 2 表示 -1 ,同 2.1 ) 分别表示不出现,出现在左盘,出现在右盘。该方法也可参考 砝码称重问题

 

这个扩展的编程有些复杂。关于如何生成数的组合或者排列,可参考笔者的另一文章,或者相关资料。

 

(4) 更改称量次数,仍然达到类似的目标,又如何解?如果同时砝码个数及其质量也发生了变化,又该如何解?

 

若再加入 1 次或多次的称量过程,若砝码个数变化不大,还可控,若砝码个数及其质量如 (3) 也发生变化,则该扩展会变得非常复杂,编程也会很复杂。但解决思路应该还是这些思路,如果前 3 个扩展都能解决,该扩展也能很好的解决,有兴趣的读者可自行编程计算。

 

(5) 若将每个过程分解出来的盐也当作砝码?又该如何解?

 

这个扩展就不再本文的范围内了,本文定位于有确定解的数学和计算机分析。实际上,该确定的解就是通过仅仅是已知砝码组合状态分解问题的解,我们在第2节第7节 均有讨论。

 

那么这个扩展就类似本文第1.1节第1.3节 的内容,因此,砝码的组合将出现混合的情况,但本文的思路仍然可以借鉴,有兴趣的读者可自行编程计算。

 

上一节 下一节

 

思维题目 , 树型结构 , 砝码分盐

深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法解决这些问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值