vc++mfc 怎样得到一组随机数

时间:2021-08-03 03:31:36
小弟我新手,跪求各位大神指点:
     要求通过mfc基于对话框的窗体实现:
     输入任意一个数n得到n个随机数,网上我看了很多都是得到一个随机数的,求大神们指点

11 个解决方案

#1




srand( time(NULL) );    
     
for(int i =0; i<n; i++)
{
      int num = rand(); //返回随机数

#2


引用 1 楼 likang0712 的回复:
srand( time(NULL) );  
   
for(int i =0; i<n; i++)
{
  int num = rand(); //返回随机数
}
+1,不过一切随机算法都是伪随机,根本没有真正意义上的随机

#3


引用 1 楼 likang0712 的回复:
srand( time(NULL) );  
   
for(int i =0; i<n; i++)
{
  int num = rand(); //返回随机数
}

就是这样的啊, 如果想要不重复,可以加个CMap,如果有重复的就从新调用rand再生成

#4


http://topic.csdn.net/u/20100927/17/2cfc8976-57a4-4ed7-bdce-9c0401b3f4c0.html

#5


我一般是用Rand()*Rand()

#6


srand()
rand();

MSDN上有个例子程序的可以参考一下

#7


RandNum(int n)
{
srand( time(NULL) ); 
int num[n];
for (int 1=0;i<n;i++)
{
num[i]=rand();
}
}

#8


把时间做种子就可以保证随即不重复

我还有一种方法,就是内存中随便取一块,然后生成。绝对的随即

#9


可是我想用一个编辑框 输出所有的随机数,问问各位大神具体操作如何

#10


MSDN源代码

#include <stdlib.h>
#include <stdio.h>
#include <time.h>

void SimpleRandDemo( int n )
{
   // Print n random numbers.
   int i;
   for( i = 0; i < n; i++ )
      printf( "  %6d\n", rand() );
}

void RangedRandDemo( int range_min, int range_max, int n )
{
   // Generate random numbers in the half-closed interval
   // [range_min, range_max). In other words,
   // range_min <= random number < range_max
   int i;
   for ( i = 0; i < n; i++ )
   {
      int u = (double)rand() / (RAND_MAX + 1) * (range_max - range_min)
            + range_min;
      printf( "  %6d\n", u);
   }
}

int main( void )
{
   // Seed the random-number generator with the current time so that
   // the numbers will be different every time we run.
   srand( (unsigned)time( NULL ) );

   SimpleRandDemo( 10 );
   printf("\n");
   RangedRandDemo( -100, 100, 10 );
}

#11


谢谢大神们指导 有没有关于button()且一个编辑框输入N,另一个编辑框或者其他输出n个随机数,秋求详解

#1




srand( time(NULL) );    
     
for(int i =0; i<n; i++)
{
      int num = rand(); //返回随机数

#2


引用 1 楼 likang0712 的回复:
srand( time(NULL) );  
   
for(int i =0; i<n; i++)
{
  int num = rand(); //返回随机数
}
+1,不过一切随机算法都是伪随机,根本没有真正意义上的随机

#3


引用 1 楼 likang0712 的回复:
srand( time(NULL) );  
   
for(int i =0; i<n; i++)
{
  int num = rand(); //返回随机数
}

就是这样的啊, 如果想要不重复,可以加个CMap,如果有重复的就从新调用rand再生成

#4


http://topic.csdn.net/u/20100927/17/2cfc8976-57a4-4ed7-bdce-9c0401b3f4c0.html

#5


我一般是用Rand()*Rand()

#6


srand()
rand();

MSDN上有个例子程序的可以参考一下

#7


RandNum(int n)
{
srand( time(NULL) ); 
int num[n];
for (int 1=0;i<n;i++)
{
num[i]=rand();
}
}

#8


把时间做种子就可以保证随即不重复

我还有一种方法,就是内存中随便取一块,然后生成。绝对的随即

#9


可是我想用一个编辑框 输出所有的随机数,问问各位大神具体操作如何

#10


MSDN源代码

#include <stdlib.h>
#include <stdio.h>
#include <time.h>

void SimpleRandDemo( int n )
{
   // Print n random numbers.
   int i;
   for( i = 0; i < n; i++ )
      printf( "  %6d\n", rand() );
}

void RangedRandDemo( int range_min, int range_max, int n )
{
   // Generate random numbers in the half-closed interval
   // [range_min, range_max). In other words,
   // range_min <= random number < range_max
   int i;
   for ( i = 0; i < n; i++ )
   {
      int u = (double)rand() / (RAND_MAX + 1) * (range_max - range_min)
            + range_min;
      printf( "  %6d\n", u);
   }
}

int main( void )
{
   // Seed the random-number generator with the current time so that
   // the numbers will be different every time we run.
   srand( (unsigned)time( NULL ) );

   SimpleRandDemo( 10 );
   printf("\n");
   RangedRandDemo( -100, 100, 10 );
}

#11


谢谢大神们指导 有没有关于button()且一个编辑框输入N,另一个编辑框或者其他输出n个随机数,秋求详解