标题:来看看这个题目,请大家提出效率高的方法
只看楼主
野比
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:1627
专家分:516
注 册:2007-5-24
得分:0 


那不就是我说的意思吗?
---------
在开玩笑吗? 那不就是 1 到1000吗?...
你不如说" 把1 到1000的排列打乱"...


女侠,约吗?
2007-08-11 20:08
kisscjy
Rank: 1
等 级:新手上路
帖 子:217
专家分:0
注 册:2007-4-9
得分:0 
明白LS的意思~

想问下函数库中有没有直接的函数可以使用呢

拜托了~~

每当我一晚写下70,80个程序时,你还真以为,这都是我一个人干的.....不过说真的,其实都是抄书的~~ ^@^
2007-08-11 21:11
狂人老大
Rank: 1
来 自:杭州
等 级:新手上路
威 望:1
帖 子:394
专家分:0
注 册:2007-6-21
得分:0 
工作量也太大了啊
能行的吗

ACMer的QQ群:33741351
单片机QQ群:55130117
2007-08-11 21:21
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
得分:0 
以下是引用狂人老大在2007-8-11 21:21:46的发言:
工作量也太大了啊
能行的吗

我6楼提的都线性了,还大?再高效率的还没怎么见过!


Fight  to win  or  die...
2007-08-11 21:29
野比
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:1627
专家分:516
注 册:2007-5-24
得分:0 
2次线性运算...
2个for..
没嵌套..
打乱排序....

女侠,约吗?
2007-08-12 02:02
HJin
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:401
专家分:0
注 册:2007-6-9
得分:0 
回复:(小糊涂仙)来看看这个题目,请大家提出效率高的...

try the following code to see if it works for you.

HJin
===========================================================

/*---------------------------------------------------------------------------
File name: random_shuffle_fuctor.cpp
Author: HJin (email: fish_sea_bird [at] yahoo [dot] com )
Created on: 8/11/2007 15:57:48
Environment: Windows XP Professional SP2 English +
Visual Studio 2005 v8.0.50727.762


Modification history:
===========================================================================


Note that the internal "rand()" function is not a good one, you may
want to use a better one.
*/

#include <iostream>
#include <vector>
#include <algorithm>
#include <ctime>
using namespace std;


class RandFunctor
{
public:
RandFunctor()
{
srand(time(0));
}

int operator()(int m)
{
return (rand()| (rand()<<16) )%m;
}
};


int main()
{
const int kSize=20;
int i;

vector<int> vi(kSize);
for(i=0; i<kSize; ++i)
vi[i] = i+1;

RandFunctor rf;
std::random_shuffle(vi.begin(), vi.end(), rf);

std::copy(vi.begin(), vi.end(), ostream_iterator<int>(cout, " "));
cout<<endl;

return 0;
}


I am working on a system which has no Chinese input. Please don\'t blame me for typing English.
2007-08-12 06:58
wingyip
Rank: 1
等 级:新手上路
威 望:2
帖 子:119
专家分:0
注 册:2007-7-16
得分:0 
樓上的實在看不懂啊。
是不是程序原本c++就有的? random我一直也在想怎么實現。

2007-08-12 09:03
kisscjy
Rank: 1
等 级:新手上路
帖 子:217
专家分:0
注 册:2007-4-9
得分:0 
想问一下这两个函数是有什么用的~~
在哪个库文件中~~

std::random_shuffle(vi.begin(), vi.end(), rf);

std::copy(vi.begin(), vi.end(), ostream_iterator<int>(cout, " "));

每当我一晚写下70,80个程序时,你还真以为,这都是我一个人干的.....不过说真的,其实都是抄书的~~ ^@^
2007-08-12 09:46
leng
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2007-6-27
得分:0 
你们说的产生的1000个随机数  可不可以用一个程序写出来呀?乌笨没搞懂你们讲的方法。

2007-08-12 10:12
leng
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2007-6-27
得分:0 
可以先写从1到10 随机生成10个数   让我搞懂一下你们的思想  谢谢

2007-08-12 10:16



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-161615-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.471853 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved