前辈们,麻烦大家看一下,产生满足0<x+y<1的随机点(x,y),条件如下: 0<x<1 0<y<1 0<x+y<1 想获得这样的点(x,y),晓得用rand产生随机数组,但是怎么让他满足0<x+y<1呢 |
提供一个思路:先随机产生一个随即点x,再产生一个随即点y,求x+y是否满足条件,若是,放入矩阵,若不满足,则重新产生。 这里使用的随机函数是rand函数 。具体代码如下:
plot |
刘承尚 发表于 2018-4-21 11:10 你好,我后面想了一下,采用了这种方法,代码如下,但是有个问题,这个里边有一半的数字会不符合要求啊,就一直for循环,然后把不满足的继续用新的值产生吗?前辈,然后画出来的图是这样的,很恐怖
|
maple1314168 发表于 2018-4-21 11:13 前辈,我的代码如下,基本上就是你讲的那种方法,然后接下来不满足的一半数字就一直进行用满足条件的新的随机数进行替代吗
|
画船听雨1 发表于 2018-4-21 13:08 就下一次p1和p2里边不满足的用新的随机值来代替 |
代码画图运用了plot3函数:
换一个角度看,正是在一个三角形里面生生成点: 1 图中有一条0.2的横线,是因为设置了p1( (p1+p2)>1 )=0.2; 再换个角度看: 2 |
画船听雨1 发表于 2018-4-21 13:11 不满足的就不要啊! 想多点的话可以100*200多,之后筛选。 选择100*100一万对就可以啊。 |
刘承尚 发表于 2018-4-21 13:23 哇,six,six,但是,前辈,我想把这个图片以一种圆滑的方式画出来,而我刚刚出现那种图,我认为的原因是:我的坐标点都是杂乱的,比如是(9,8),(5,8),(10,4),而不是按照大小来的,比如按横坐标来(5,8),(9,8),(10,4),理想图是图一,图二是我的图 |
刘承尚 发表于 2018-4-21 13:23 大致轮廓是对的,可能是取点的原因,前辈,卡了一上午了,求前辈指点迷津,造化我吧,阿门,hhhhhhhhhhhhhhhhhhhhhhhhhh |
maple1314168 发表于 2018-4-21 13:26 啊哈!我用一个while解决了,hhhhhhhhhh,我机智吧,前辈,代码如下(让我班门弄虎一下)
但是,还有一个bug,就是图有问题,代码如下
理想图像图一,我出来的图像图二,前辈,指点指点嘻嘻 |
Powered by Discuz! X3.4
© 2001-2024