• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

生成不重复的随机数对(C/C++)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

1
#include <stdio.h> 2 #include <algorithm> 3 #include <stdlib.h> 4 #include <time.h> 5 using namespace std; 6 const int max_rand = 2001; 7 int a[max_rand], b[max_rand]; 8 struct node 9 { 10 int x, y; 11 bool operator < (const node q) const 12 { 13 if(x == q.x) 14 return y < q.y; 15 return x < q.x; 16 } 17 }RAND[20010]; 18 19 int main() 20 { 21 for (int i = 0; i < max_rand; i ++) 22 a[i] = b[i] = i; 23 b[0] = -1; 24 int aa = 2, bb = 10; 25 // time_t t; 26 // srand((unsigned) time(&t)); 27 srand((unsigned)time(NULL));// let the seed accroding to time 28 for (int i = 0; i < 2000; i ++) 29 { 30 int x = rand()%2001; //make x between 0 and 2000(include) 31 int y = rand()%2001; //same up; 32 /* double text = (double)rand()/RAND_MAX*(bb-aa) +aa; //produce double text between aa and bb 33 printf ("%f\n", text); 34 getchar(); 35 */ 36 if((!x || !y)||(!a[x] && b[y] == -1)) 37 { 38 i --; 39 continue; 40 } 41 RAND[i] = (node){x, y}; 42 43 a[x] = 0; 44 b[y] = -1; 45 } 46 sort(RAND, RAND +2000); 47 for (int i = 0; i < 2000; i ++) 48 { 49 printf("%d %d\n", RAND[i].x, RAND[i].y); 50 // getchar(); 51 } 52 return 0; 53 }

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap