AbilixQuan

 找回密码
 立即注册

扫一扫,访问微社区

搜索
热搜: wer 编程
查看: 3753|回复: 3

进阶数学算法

[复制链接]

2

主题

5

帖子

16

积分

氪小兵

Rank: 1

积分
16
发表于 2018-1-19 19:54:25 | 显示全部楼层 |阅读模式

作为新时代的技术宅,本王子研究一下算法是很有必要的啦。
我相信大多数老师都学过变量计算了,但是普通的加减乘除并不能满足我们的胃口,在这里让我们对复杂算法进行探讨。

变量可以用来干嘛:计数是基本功能,此外还有对状态进行标记,比如判断当前处于0状态还是1状态,在一些复杂程序中甚至对跳出方式进行标记

复杂算法复杂在哪:既然是复杂吗,我们需要用到很多变量,10个整形变量可能并不一定够,我们需要用到10个浮点变量,并且其中的一些与传感传来的模拟量和数字量达成一定数量关系。这样变量可能还是不够,有两种方法,第一:找到先前使用过的变量,判断它是否在后面的程序里用到,如果没用到,对它进行归零,然后重复利用。第二:自定义模块,定义更多的变量来使用
                               我们可能需要用到复杂的程序结构:大循环里套几个小循环,小循环里还有小小循环和判断,还有时不时的跳出和continue
                               我们可能要用到自定义模块,使用一些函数代码来计算想要的数据

编辑复杂程序的注意点:1.分清每个变量的作用,尤其代表状态的变量要从头到尾分清其代表的含义
                                      2.什么时候赋初值、归零,什么时候当作寄存器、计数器一直累加,要搞清。模块在程序段的位置是极其关键的,关乎到整段程序的逻辑
                                      3.列提纲、打草稿,像写作文一样,为了使逻辑清晰、不遗忘关键点,先记纸上是很好的办法。当然记忆力超群者可无视此条……

说了很多,可能比较抽象,那么我今天来分享几个程序,大家伙可以看一看。

此外大家可以自行尝试一些有趣的算法:1.取余,进阶算法是韩信点兵问题:韩信点了X个兵,3个一排站多1个人,5个一排站多3个人,7个一排站多5个人,请问韩信点了多少兵
                                                               2.斗牛:3轮发牌,每位玩家手上每轮得到一张牌,最后评分,玩家得到牌的点数总和除以10的余数,最大者赢
                                                               3.算24点,随机4张牌,计算通过加减乘除能否得到24,如能得到,给出算法
                                                               4.排序方法:随机生成5个数,经过计算让他们按从小到大的顺序显示出来(能写出的算法种类越多越好)
                                                               5.进位计算:秒针转了60下,分针转一下,秒针归零,这就是常见的时间60进制的进位计算。编出程序来应该不难对伐?加个时间传感器。

另外有人愿意探讨哥德巴赫猜想、费马猜想,也欢迎留言讨论。





87

主题

97

帖子

307

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
307
发表于 2018-1-19 20:56:43 | 显示全部楼层
很棒!有点图片就更好了
回复

使用道具 举报

2

主题

5

帖子

16

积分

氪小兵

Rank: 1

积分
16
 楼主| 发表于 2018-1-20 12:05:22 | 显示全部楼层
好的,下次发点截图,这回是第一次尝试发帖。
回复

使用道具 举报

0

主题

1

帖子

3

积分

氪小兵

Rank: 1

积分
3
发表于 2018-2-2 18:23:57 | 显示全部楼层
学习啦
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|AbilixQuan ( 沪ICP备10018227号 )

GMT+8, 2024-12-22 19:53 , Processed in 1.122513 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表