導航:首頁 > 源碼編譯 > 隨機數相加演算法

隨機數相加演算法

發布時間: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足夠了。。。

閱讀全文

與隨機數相加演算法相關的資料

熱點內容
編譯原理如何運用到編程中 瀏覽:14
linux選擇資料庫 瀏覽:375
php兩個數組差集 瀏覽:978
迷你pdf閱讀器下載 瀏覽:432
做一個python小程序 瀏覽:654
pythonossystem和 瀏覽:644
win2008如何搭建ftp伺服器 瀏覽:53
安卓手機為什麼不翻牌 瀏覽:545
刪除pkpm及相關文件夾 瀏覽:480
房貸解壓銀行內部流程 瀏覽:734
安卓手機如何更改語音 瀏覽:599
android紅包實現 瀏覽:733
蘋果的nvme為什麼安卓不用 瀏覽:31
python輸入單詞統計個數 瀏覽:997
腳本軟體提取源碼 瀏覽:281
程序員能給自己的微信錢包刷錢么 瀏覽:72
怎麼讓小天才app查看寶貝的通訊錄 瀏覽:623
dxgpdf 瀏覽:257
哪個命令 瀏覽:51
文件不能打包壓縮 瀏覽:708