在设计程序时候,经常涉及到随机序列/随机数的生成。犹记得初学C语言的时候,一个人称“小马哥”的同学让我替他写一个生成随机数的小程序段,那时对这些一无所知,走了不少弯路才整出来。近日,又接触到类似的东西。整理如下,以便查询。
一、随机数
借助C提供的函数库。以下代码功能:生成N位纯数字密码
#include<stdio.h>
#include<stdlib.h>
#include <time.h> /*包含的头文件*/
void function(int n) /*生成N位的随机纯数字密码*/
{
int i;
printf("产生的");
printf("%d",n);
printf("位随机密码为: ");
for(i=0;i<n;i++)
printf("%d",rand()%10);
printf("\n");
}
int main(void)
{
int num;
srand( (unsigned)time( NULL ) ); /*保证每次生成的随机数不相同*/
printf("请输入你想得到密码的位数:\n");
scanf("%d",&num);
function(num);
return 0;
}
二、Guid 值
它是通过特定算法产生的二进制长度为128位的数字标识符,用于指示产品的唯一性。GUID 主要用于在拥有多个节点、多台计算机的网络或系统中,分配必须具有唯一性的标识符。在 Windows 平台上,GUID 广泛应用于微软的产品中,用于标识如注册表项、类及接口标识、数据库、系统目录等对象。它具有以下几个优点:
★GUID在空间上和时间上具有唯一性,保证同一时间不同地方产生的数字不同。
★世界上的任何两台计算机都不会生成重复的 GUID 值。
★需要GUID的时候,可以完全由算法自动生成,不需要一个权威机构来管理。
★GUID的长度固定,并且相对而言较短小,非常适合于排序、标识和存储。
C++代码如下:
#include<iostream>
#include<objbase.h>/*头文件*/
using namespace std;
const char* newGUID()
{//--生成GUID
static char buf[64] = {0};
GUID guid;
if (S_OK == ::CoCreateGuid(&guid))
{
_snprintf(buf, sizeof(buf)
, "{%08X-%04X-%04x-%02X%02X-%02X%02X%02X%02X%02X%02X}"
, guid.Data1
, guid.Data2
, guid.Data3
, guid.Data4[0], guid.Data4[1], guid.Data4[2]
, guid.Data4[3], guid.Data4[4], guid.Data4[5]
, guid.Data4[6], guid.Data4[7]
);
}
return (const char*)buf;
}
int main(int argc, char* argv[])
{
CoInitialize(NULL);
cout<<newGUID()<<endl;
CoUninitialize();
system("pause");
return 0;
}
分享到:
相关推荐
DEVC++基础资料1(关于随机数与时间模块)
随机数的一些见解,包含具体的运算介绍,以及相关的有界随机生成。
随机数随机数随机数随机数随机数随机数随机数随机数
1.运行时,请修改好Program.cs中的相关信息~无聊时随意做的,我知道做的不好~但为了赚取积分发了。 2.有部分借鉴了别人的东西 3.一同事这么说:把自己的想法变成代码,那么你就是大神,坚持下去!...
这是C语言中,关于随机数的产生的方法,方法较简单
这个项目是关于随机数的产生。 目前,在这个项目中,仅存在一个功能。 即它将返回0-9之间的值。 将来,我们将实现此随机数生成器,以在一定程度上生成随机数。 与其他随机生成器不同,该项目不使用鼠标或按键等的...
美国国家标准与技术研究院关于随机数生成及测试的标准
js随机数js随机数js随机数js随机数js随机数js随机数js随机数js随机数js随机数js随机数js随机数js随机数js随机数js随机数js随机数js随机数js随机数js随机数js随机数js随机数js随机数js随机数js随机数js随机数js随机数...
一个关于随机数生成的VC程序,以0-100之间的随机数为例
国密随机数检测工具,随机数检测
用C语言编写的关于随机数的产生,很实用(对于做数值运算的同志挺有帮助)
这是一个关于随机数生成函数的matlab程序 需要的同学可以下载看看
1. 设计并实现一个随机数生成电路,每2秒随机生成一个0~999之间的数字,并在数码管上显示生成的随机数。2. 为系统设置一个复位键,复位后数码管显示“000”,2秒后再开始每2秒生成并显示随机数,要求使用按键复位。
美国国家标准与技术研究院 关于随机数生成器结构的标准与建议
关于随机数生产的文章,通过其中介绍的几种算法可以生成均匀分布等随机数
c语言随机数c语言随机数
产生随机数并运算产生随机数并运算产生随机数并运算产生随机数并运算产生随机数并运算产生随机数并运算
Java生成32位随机数,短位随机数工具类
随机数 和 全屏,进度条 的使用 随机数和全屏,进度条的使用 随机数和全屏,进度条的使用
使用博图V15软件编程,S7-1500PLC进行随机数产生,并通过触摸屏趋势图显示。随机数主要通过截取时间和使用全球库函数