社区
C语言
帖子详情
怎么实现1-100数字的随机排序?请高手帮忙
tOnghaO
2003-06-03 08:04:31
我希望1-100这些自然数随机排列 每次运行排列顺序都不一样 用c语言怎么实现 请高手帮忙 送分~~
...全文
1074
22
打赏
收藏
怎么实现1-100数字的随机排序?请高手帮忙
我希望1-100这些自然数随机排列 每次运行排列顺序都不一样 用c语言怎么实现 请高手帮忙 送分~~
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
22 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
woshinzg
2003-06-07
打赏
举报
回复
大家好热心,好地方。
—————————————————————————————————
因为陌生,所以勇敢,因为距离,所以美丽。
QQ:6785267
snipersu
2003-06-07
打赏
举报
回复
#include <ctime>
#include <iostream>
using namespace std;
int main()
{
int a[100];
//初始化
for(int i=0;i<100;i++)
a[i]=i;
//种种子
srand( ( unsigned ) time( NULL ) );
//交换次数(随机的)
int cnt=rand()%101;
for(int j=0;j<cnt;j++)
{
for(int k=0;k<100;k++)
{
int temp=a[k];
//与谁交换(随机的)
int tpn=rand()%100;
a[k]=a[tpn];
a[tpn]=temp;
}
}
for(int l=0;l<100;l++)
{
if(l%10==0)
cout<<endl;
cout<<a[l]<<" ";
}
return 0;
}
晨星
2003-06-06
打赏
举报
回复
错了,错了,n等于0时i等于100,但循环已经结束了,^_^
晨星
2003-06-06
打赏
举报
回复
俺这里还有个比Cybergate() 笨的多的算法,不过挺好玩的,也把它写出来吧。^_^
1。做一个循环链表,链着1到100这100个数,初始化指针变量p,让它指向链表头。
2。初始化变量n=100 , i=0;(i一直等于100-n,用两个变量纯粹为了清晰)
3。产生一个1到n之间的随机数m;
4。从p的当前位置开始“报数”(即移动指针p),报到m后,把p所指向的结点所对应的数值赋给数组的第i个元素:array[i],并从循环链表上拆下p所代表的结点,而让p指向下一个结点;
5。n--,i++;
6.Goto第三步,接着往下做,直到n=0(此时i=99)。
moke33
2003-06-06
打赏
举报
回复
up
zhzc3911
2003-06-06
打赏
举报
回复
up
fangrk
2003-06-06
打赏
举报
回复
STL中间就有,可以参考一下Random_shuffle。
fangrk
2003-06-06
打赏
举报
回复
const int N = 8;
int A[] = {1, 2, 3, 4, 5, 6, 7, 8};
random_shuffle(A, A + N);
copy(A, A + N, ostream_iterator<int>(cout, " "));
// The printed result might be 7 1 6 3 2 5 4 8,
fmonkey
2003-06-06
打赏
举报
回复
up
NowCan
2003-06-06
打赏
举报
回复
理论上不可能每次都不一样啊。
bm1408
2003-06-05
打赏
举报
回复
up!
thrillers
2003-06-05
打赏
举报
回复
#include <iostream>
#include <ctime>
int main()
{
srand( ( unsigned ) time( NULL ) );
for ( int i = 0; i < 100; ++i )
{
std::cout << rand() % 100 << ' ';
}
return 0;
}
六月初六
2003-06-03
打赏
举报
回复
用链表是浪费空间
而且给自己找麻烦!
个人意见!
boyfling
2003-06-03
打赏
举报
回复
还可以利用链表进行随机插入。
HxySky
2003-06-03
打赏
举报
回复
听说这个帖子要结帐了//^_^
Javcy
2003-06-03
打赏
举报
回复
up
晨星
2003-06-03
打赏
举报
回复
点击右上方的“管理”。
tOnghaO
2003-06-03
打赏
举报
回复
谢谢 有点懂了~~
顺便问一个问题 怎么送分呀?
lifanxi
2003-06-03
打赏
举报
回复
呵呵,楼上的算法正确,前面回复的时候挣分心切,说的不太严密,不应该是"随机交换两个值",而是应该"从第一个起,随机的在后面选一个值与它交换,直到完成".
Cybergate
2003-06-03
打赏
举报
回复
sorry, a mistake
Define a[1..100]
for i←1 to n
do a[i]←i
for i←1 to n-1
do j←random(i+1,n) //Genereate a random integer in range [i+1, n]
swap (a[i], a[j])
加载更多回复(2)
java
数字
题目_用java编写一个
数字
排列的题目
题目是这样的:有1,2,2,3,4,5六个
数字
,
随机
排列打印出所有结果,如212543,532421...要求:4这个
数字
不能放到第二位,并且3和5这两个
数字
不能相邻,打印出所有结果,写了半天还...题目是这样的:有1,2,2,3...
Python语言程序设计基础-题库
选择:1-296 填空:297-548 判断:549-622 编程题:623-848 题库 1、关于测试一个中等规模程序的说法,以下错误的是()。 A、 从结构图最底层开始,逐步上升 B、 先运行测试每一个基础函数,再测试由基础函数组成的...
AI入门: 关于人工智能的深度思考
超强人工智能究竟能否
实现
? ----关于人工智能的哲学思考 原文链接:http://fancyerii.github.io/2019/03/14/philosophy/#%E8%87%AA%E7%94%B1%E6%84%8F%E5%BF%97free-will 阅读提示: 这是一篇长文,全文约5万7千字;...
EXCEL难题一网打尽 无意间看到的 转过来 自己看看
也就是,在Excel中,A7单元,能否
实现
把后面的
数字
用算式来代替,如A(3+4),或者是单元格的嵌套,A(D12),恳
请
高手
解答。解答:①=indirect("a"&d12)②我的想法:借一个单元格如B4用,键入="A"&D12 在需引用的单
我在CSDN参与的3000个帖子
2:
100
分急求,
随机
输出十个小写字母,但是,要求这十个字母不相同 3:求Sn=a+aa+aaa+…+aaa…a(n个a)之值 4:数组题 望
高手
帮忙
! 5:呵呵,来推荐一下我的网站,本站提供大量当今流行的免费的音乐和免费电影,...
C语言
69,371
社区成员
243,081
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章