正方形内均匀撒点算法

guochanoo7 2012-11-28 09:10:42
假设要在一个500*500的范围内均匀的撒300个点,有没有什么好的算法。这里的均匀不是随机的可以理解为在相对大小的面积内点数相近
...全文
855 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2012-11-28
  • 打赏
  • 举报
回复
仅供参考
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int d[6];
int i,n,a,b,t;
int c,j;
void main() {
    srand(time(NULL));
    printf("shuffle 0..n-1 demo\n");
    for (n=1;n<=5;n++) {/* 测试1~5个元素 */
        printf("_____n=%d_____\n",n);
        j=1;
        for (c=1;c<=n;c++) j=j*c;/* j为n! */
        j*=n*2;
        for (c=1;c<=j;c++) {/* 测试n*2*n!次 */
            for (i=0;i<n;i++) d[i]=i;/* 填写0~n-1 */
            for (i=n;i>0;i--) {/* 打乱0~n-1 */
                a=i-1;b=rand()%i;
                if (a!=b) {t=d[a];d[a]=d[b];d[b]=t;}
            }
            printf("%04d:",c);
            for (i=0;i<n;i++) printf("%d",d[i]);
            printf("\n");
        }
    }
    printf("shuffle 1..n demo\n");
    for (n=1;n<=5;n++) {/* 测试1~5个元素 */
        printf("_____n=%d_____\n",n);
        j=1;
        for (c=1;c<=n;c++) j=j*c;/* j为n! */
        j*=n*2;
        for (c=1;c<=j;c++) {/* 测试n*2*n!次 */
            for (i=1;i<=n;i++) d[i]=i;/* 填写1~n */
            for (i=n;i>1;i--) {/* 打乱1~n */
                a=i;b=rand()%i+1;
                if (a!=b) {t=d[a];d[a]=d[b];d[b]=t;}
            }
            printf("%04d:",c);
            for (i=1;i<=n;i++) printf("%d",d[i]);
            printf("\n");
        }
    }
}
swordtan 2012-11-28
  • 打赏
  • 举报
回复
x 取值范围 [0 - 500] y 取值范围 [0 - 500] 生成300个(x,y)坐标 x轴取随机值 (rand()/(double)RAND_MAX)*500 y轴取随机值 (rand()/(double)RAND_MAX)*500
guochanoo7 2012-11-28
  • 打赏
  • 举报
回复
okletsgo007 2012-11-28
  • 打赏
  • 举报
回复
占个沙发,本人法盲,路过帮顶,学习学习
14号选手 2012-11-28
  • 打赏
  • 举报
回复
5楼的分治法不错
guochanoo7 2012-11-28
  • 打赏
  • 举报
回复
zhao4zhong1 这种全排列算法貌似不大合适,不过谢谢啦 想了想就用luqichao这种方法吧
apexMing 2012-11-28
  • 打赏
  • 举报
回复
可以考虑将500x500的区域进一步细化,比如分成100个50x50的区域,在每个50x50的子区域内随机撒点3个,这时可以完全随机生成。 至于均匀的考虑,如果你子区域划分的更细,自然相对更均匀。

70,020

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧