用ATmega16单片机把某个范围内的点全部随机不重复输出

2019-07-15 15:54发布

各位好,
坐标系所示,用ATmega16单片机把某个范围内的点全部随机不重复输出,比如说圆形、椭圆形、六边形(如图所示)、三角形,把图形范围内的点全部随机不重复地输出,有什么算法呢?并且形状大小可调的。
坐标系 坐标系
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
1条回答
andy_wsj
1楼-- · 2019-07-15 21:27
首先,你要获得随机数种子,由于单片机功能较弱,软件做随机数不好使
介绍一种我用的随机加密方法,用一路悬空的ADC脚,配置打开ADC功能,读取采样值,则最低的几位一般是随机波动的
读取AD的采样值,取最低几位,如一个字节作为随机数据
有了随机种子,再来看你这个算法
我说一个简单的,立方体,长宽高分别为L、W、H
获取三个AD的随机值,A、B、C
A、B、C不一定落在L、W、H之内,也许大很多
则输出坐标就是(A%L, B%W, C%H),取余之后,就全部落在范围之内了
其他形状,你要根据其函数,计算好坐标范围,这些就是数学的范畴了,你得自己好好算算
所以说数学系的人编程猛就是这个道理


一周热门 更多>