导航:首页 > 源码编译 > 随机数相加算法

随机数相加算法

发布时间:2022-11-18 06:37:52

A. C++中产生十二个随机数,且总和为70000

理论上是在 3500 ~ 5800 之间可以实现上述要求程序大致如下:
#include <stdlib.h>
#include <stdio.h>
#include <time.h>

int main()
{
int i;
int iFlag = 0;
int iNum[12 + 1];
int sum = 0;
time_t t;
while (iFlag == 0)
{
srand( (unsigned) time(&t));
//printf("Ten random numbers from 3500 to 5800\n\n");
for (i=0; i<12; i++)
{
//printf("%d\n", rand()%(5800 - 3500 + 1) + 3500);
iNum[i] = rand()%(5800 - 3500 + 1) + 3500;
sum = sum + iNum[i];
}
if (sum == 70000)
{
for (i=0; i<12; i++)
{
printf("%d\n", &iNum[i]);
}
iFlag = 1;
break;
}
}
return 0;

}
但是,我执行的暂时没有得出结果,仅供参考。

B. 请问有什么公式可以根据总数(例如100),求出数据表内的符合加起来等于100的随机数

具体见图片内容。

基本算法

随机数/随机数之和*100

如果需要整数项,可以再使用int取整数。

不过,取整后,加起来会有误差,需要刷新几次才能得到和为100的结果。

供您参考。

C. 设计求100个正随机数 由小到大的求和算法

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

int main()
{

int a,b;
int num;
int t=10,d=100;
srand((unsigned)time(0));
a=rand()%(d-t)+t;
printf("当前随机数为:%d\n",a);
printf("请输入一个数: ");
scanf("%d",&num);
if(a==num)
printf("正确!\n");
else
while(true){
a=rand()%(d-t)+t;
b=rand()%(d-t)+t;
printf("当前随机数为:%d\n",a+b);
printf("请输入一个数: ");
scanf("%d",&num);
if(num==(a+b)){
printf("正确\n");
break;
}
}
return 0;
}

D. 如何用C语言产生随机数,随机数的加和是一确定的数

思路:

1 先获取到加和值;

2 输入加和值范围内的一个随机数;

3 用加和值减去获取到的随机数,这样就得到了另外一个数;

4 循环执行,直到获取到符合要求数量的数值为止。

以获取10组数值为例,代码如下:

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
intmain()
{
ints;
inti,n;
srand(time(NULL));//设置随机数种子。
scanf("%d",&s);//输入加和值。
for(i=0;i<10;i++)//获取10组要求的数值。
{
n=rand()%s;//获取一个0~s-1的随机数。
printf("%d+%d=%d ",n,s-n,s);//输出结果。
}

return0;
}

E. 100个随机数(小于10大于零,带两位小数),求下列算法设计:

...这程序没有什么算法,就if判断比多,代码比较多,没有什么有难度的逻辑

F. 求随机数常用算法

一般随机数都不是完全随机的,你在一个程序里两次调用系统的随机函数,你会发现是一样的!
给你个思路,用系统函数得到当前进程的开始时间,然后处理这个时间,算法想怎么写就怎么写,因为每次程序运行时间的不一样的,所以得到的随机数就“随机”了,很多随机函数都是这么做的!

G. 随机数算法是什么

在计算机中并没有一个真正的随机数发生器,但是可以做到使产生的数字重复率很低,这样看起来好象是真正的随机数,实现这一功能的程序叫伪随机数发生器。有关如何产生随机数的理论有许多如果要详细地讨论,需要厚厚的一本书的篇幅。不管用什么方法实现随机数发生器,都必须给它提供一个名为“种子”的初始值。而且这个值最好是随机的,或者至少这个值是伪随机的。“种子”的值通常是用快速计数寄存器或移位寄存器来生成的。下面讲一讲在C语言里所提供的随机数发生器的用法。现在的C编译器都提供了一个基于ANSI标准的伪随机数发生器函数,用来生成随机数。它们就是rand()和srand()函数。这二个函数的工作过程如下:”)首先给srand()提供一个种子,它是一个unsignedint类型,其取值范围从0~65535;2)然后调用rand(),它会根据提供给srand()的种子值返回一个随机数(在0到32767之间)3)根据需要多次调用rand(),从而不间断地得到新的随机数;4)无论什么时候,都可以给srand()提供一个新的种子,从而进一步“随机化”rand()的输出结果。这个过程看起来很简单,问题是如果你每次调用srand()时都提供相同的种子值,那么,你将会得到相同的随机数序列,这时看到的现象是没有随机数,而每一次的数都是一样的了。例如,在以17为种子值调用srand()之后,在首次调用rand()时,得到随机数94。在第二次和第三次调用rand()时将分别得到26602和30017,这些数看上去是很随机的(尽管这只是一个很小的数据点集合),但是,在你再次以17为种子值调用srand()后,在对于rand()的前三次调用中,所得的返回值仍然是在对94,26602,30017,并且此后得到的返回值仍然是在对rand()的第一批调用中所得到的其余的返回值。因此只有再次给srand()提供一个随机的种子值,才能再次得到一个随机数。下面的例子用一种简单而有效的方法来产生一个相当随机的“种子”值----当天的时间值:g#椋睿悖欤酰洌澹Γ欤簦唬螅簦洌椋铮瑁Γ纾簦弧。#椋睿悖欤酰洌澹Γ欤簦唬螅簦洌欤椋猓瑁Γ纾簦弧。#椋睿悖欤酰洌澹Γ欤簦唬螅螅Γ#矗罚唬簦穑澹螅瑁Γ纾簦弧。#椋睿悖欤酰洌澹Γ欤簦唬螅螅Γ#矗罚唬簦椋恚澹猓瑁Γ纾簦弧。觯铮椋洹。恚幔椋睿ǎ觯铮椋洌。。椋睿簟。椋弧。酰睿螅椋纾睿澹洹。椋睿簟。螅澹澹洌郑幔欤弧。螅簦颍酰悖簟。簦椋恚澹狻。簦椋恚澹拢酰妫弧。妫簦椋恚澹ǎΓ幔恚穑唬簦椋恚澹拢酰妫弧。螅澹澹洌郑幔欤剑ǎǎǎǎ酰睿螅椋纾睿澹洹。椋睿簦簦椋恚澹拢酰妫簦椋恚澹Γ幔恚穑唬埃疲疲疲疲。ǎ酰睿螅椋纾睿澹洹。椋睿簦簦椋恚澹拢酰妫恚椋欤欤椋簦恚蕖。ǎ酰睿螅椋纾睿澹洹。椋睿簦簦椋恚澹拢酰妫恚椋欤欤椋簦恚弧。螅颍幔睿洌ǎǎ酰睿螅椋纾睿澹洹。椋睿簦螅澹澹洌郑幔欤弧。妫铮颍ǎ椋剑埃唬椋Γ欤簦唬保埃唬椋。穑颍椋睿簦妫ǎΓ瘢酰铮簦唬ィ叮洌Γ#梗玻唬睿Γ瘢酰铮簦籦egjrand());}上面的程序先是调用_ftime()来检查当前时间yc并把它的值存入结构成员timeBuf.time中wae当前时间的值从1970年1月1日开始以秒计算aeh在调用了_ftime()之后在结构timeBuf的成员millitm中还存入了当前那一秒已经度过的毫秒数,但在DOS中这个数字实际上是以百分之一秒来计算的。然后,把毫秒数和秒数相加,再和毫秒数进行异或运算。当然也可以对这两个结构成员进行更多的计算,以控制se......余下全文>>

H. 如何产生八个随机数并相加求和以N1+N2+N3+N4+N5+N6+N7+N8=SUM的形式表示出来

你好,不知道你用什么编程语言,算法应该差不多,1.建立一个数组2.创建循环条件,循环产生8个数字并存入数组3.让数组中的数字相加,具体也是设置循环然后a+b=a这样。4.输出。有不明白的可以传呼我。

I. 随机数的计算公式是什么

为追求真正的随机序列,人们曾采用很多种原始的物理方法用于生成一定范围内满足精度(位数)的均匀分布序列,其缺点在于:速度慢、效率低、需占用大量存储空间且不可重现等。为满足计算机模拟研究的需求,人们转而研究用算法生成模拟各种概率分布的伪随机序列。伪随机数是指用数学递推公式所产生的随机数。从实用的角度看,获取这种数的最简单和最自然的方法是利用计算机语言的函数库提供的随机数发生器。典型情况下,它会输出一个均匀分布在0和1区间内的伪随机变量的值。其中应用的最为广泛、研究最彻底的一个算法即线性同余法。
线性同余法LCG(Linear Congruence Generator)
选取足够大的正整数M和任意自然数n0,a,b,由递推公式:
ni+1=(af(ni)+b)mod M i=0,1,…,M-1
生成的数值序列称为是同余序列。当函数f(n)为线性函数时,即得到线性同余序列:
ni+1=(a*ni+b)mod M i=0,1,…,M-1
以下是线性同余法生成伪随机数的伪代码:
Random(n,m,seed,a,b)
{
r0 = seed;
for (i = 1;i<=n;i++)
ri = (a*ri-1 + b) mod m
}
其中种子参数seed可以任意选择,常常将它设为计算机当前的日期或者时间;m是一个较大数,可以把它取为2w,w是计算机的字长;a可以是0.01w和0.99w之间的任何整数。
应用递推公式产生均匀分布随机数时,式中参数n0,a,b,M的选取十分重要。
例如,选取M=10,a=b =n0=7,生成的随机序列为{6,9,0,7,6,9,……},周期为4。
取M=16,a=5,b =3,n0=7,生成的随机序列为{6,1,8,11,10,5,12,15,14,9,0,3,2,13,4,7,6,1……},周期为16。
取M=8,a=5,b =1,n0=1,生成的随机序列为{6,7,4,5,2,3,0,1,6,7……},周期为8。

J. java做验证码生成的4位随机数(例如1234)和两个随机数相加(例如5+2)的图片哪个更好请知道的人给出原理

要看你图片生成具体算法...
如果只是一个简单的背景+数字,那就不如4位随机数字复杂。同用机器人(或者说是heike)来输入验证码的难度一样。

如果图片是由对应随机数字的点矩阵组成。那5+2之类的图片相加效果要更好。因为要破解点阵的难度很大。但是从生成效率上这个要低一点。

个人觉得普通安全要求的1234足够了。。。

阅读全文

与随机数相加算法相关的资料

热点内容
电脑加密安卓版 浏览:824
手机程序加密有什么作用 浏览:178
求黑马程序员python教程 浏览:528
androidmvvm优缺点 浏览:894
unix下编译库文件 浏览:633
程序员的u盘 浏览:237
android根据经纬度获取城市 浏览:564
python使用解释器还是编译器 浏览:358
以下关于有加密算法及密钥描述 浏览:220
linuxgethostname 浏览:416
程序员多数有对象 浏览:131
单片机延时程序计算 浏览:444
编译原理语法翻译 浏览:504
pr编译出错渲染存在偏移 浏览:262
如何制作自家的app 浏览:199
推荐一个解压软件rar解压帮手 浏览:212
wd文档加密器 浏览:748
服务器上传压缩包一般是什么格式 浏览:333
发送加密文件密码几位数 浏览:160
树洞app怎么样 浏览:175