random na numero sa c

E

ehsanelahimirza

Guest
hi sa lahat

plz sabihin sa akin kung paano gumawa ng numero sa random order.in isang naibigay na saklaw.

plz bigyan ang code at mga aklatan, mga
kung paano sumulat sa c (syntax)

salamat

 
W ofercie firmy Acer pojawi się nowy tablet ze znanej już serii Iconia One – Iconia One 8 B1-820. Posiada on wyświetlacz IPS o przekątnej 8” z technol ...

Read more...
 
Subukan ang

Quote:# isama <cstdlib>

# isama <cstdio>int pangunahing (walang laman) (

int lim = 100;

fprintf (stdout, "% d,% d,% d \ n", random () / ((hindi linagdaan int) RAND_MAX / lim), random () / ((hindi linagdaan int) RAND_MAX / lim), random () / ( (hindi linagdaan int) RAND_MAX / lim));

bumalik 0;

)

 
Hows ito?

Code:# isama <iostream>

# isama <ctime>

# isama <cstdlib>gamit namespace STD;int generate_random_number (int uLowest, int uHighest, bool bSeed)

(

/ / Buto ng random na numero ay nakabuo ng kung requried.

kung ang (true == bSeed)

(

srand ((hindi linagdaan) ng panahon (0));

)/ / Lumikha ng isang hanay ng halaga sa pagitan ng kung saan ang isang numero ay nabuo.

int nRange = (uHighest-uLowest) 1;/ / Gumawa ng random na numero.

int nRandomInteger = uLowest int (nRange * ribete () / (RAND_MAX 1.0));bumalik nRandomInteger;

)int pangunahing ()

(

hukuman <<generate_random_number (1, ang 1000, true) <<endl;

hukuman <<generate_random_number (1, ang 1000, hindi totoo) <<endl;

hukuman <<generate_random_number (1, ang 1000, hindi totoo) <<endl;

hukuman <<generate_random_number (1, ang 1000, hindi totoo) <<endl;bumalik 0;)
 
polus wrote:

Hows ito?Code:# isama <iostream>

# isama <ctime>

# isama <cstdlib>
 
Ang random function () ay palaging bumalik integer sa pagitan ng 0 at RAND_MAX.Kaya kung ano ako ay paghati-hatiin ang mga numero na nabuo sa pamamagitan ng RAND_MAX at pagkatapos ay multiply ito sa kailangang 'halaga lim'.Kaya bilang ay hindi dapat mas malaki kaysa sa 'lim'.Pagkatapos ang saklaw ay 0 <= R <= lim.

Kung nais mong itakda ang hanay tulad ng lim1 <= R <= lim2 pagkatapos magdagdag ng isang numero ng lim1 sa mga ito.Ngunit pagkatapos ng multiplikasyon ay dapat na sa pamamagitan ng (lim2 - lim1).ibig sabihin: 'lim1 (lim2 - lim1) * random () / RAND_MAX;'

Ano polus nagawa ay isang uri ng randomization ng random na numero.Ito ay lumikha ng mas maraming randomized numero gamit ang timestamp ng random na buto.

 
Narito ang kung ano ako gamitin upang makabuo ng isang random numder sa loob ng isang naibigay na saklaw ng

Code:# isama <iostream>

# isama <ctime>

gamit namespace STD;int pangunahing () (int rannum; / / matukoy ang mga variable

bool natagpuan = 1;

matagal sec;time (& sec); / / gamitin ang oras na pagpapaandar upang makakuha ng bilang ng segundo mula sa 1/1/1970srand ((hindi linagdaan) sec); / / gamitin ang numerong ito sa buto ang srand () functionhabang (matatagpuan == 1) (/ / gamitin loop sa hitsura para sa mga nais na numero ng

rannum = ribete ();

kung (rannum> = 0 & & rannum <= 15) (/ / patayin ang loop kapag number ay natagpuan

natagpuan = 0;)

)

hukuman <<rannum; / / ipakita ang numero ng

cin.get ();

)

 
Mayroong dalawang mga problema sa code na ito.
1) Ito ay hindi gaanong naiiba mula sa kung ano ang polus nakapagsimula na ng post.
2) na ang paglagay ng loop ay may mataas na hindi mabisa.Dahil atipan ng pawid di-kinakailangan.Scaling ang random number sa pamamagitan ng RAND_MAX ay lubhang mas mahusay kaysa sa na ito.Lahat ng ito ay pag-aaksaya ng isang pulutong ng mga oras na sa loop.

Kahit na mas mahusay na paraan ay magdagdag ng isa pang antas ng randomization.May ay maaari naming buto ng 'random' na may oras.Pagkatapos makuha ang random na numero at pagkatapos ay magbigay ng binhi ito muli sa na numero.Pagkatapos ay muli makakuha ng random na numero.

[quote = "Lucifre"] Ito ay kung ano ako gamitin upang makabuo ng isang random numder sa loob ng isang naibigay na saklaw ng

Code:# isama <iostream>

# isama <ctime>

gamit namespace STD;int pangunahing () (int rannum; / / matukoy ang mga variable

bool natagpuan = 1;

matagal sec;time (& sec); / / gamitin ang oras na pagpapaandar upang makakuha ng bilang ng segundo mula sa 1/1/1970srand ((hindi linagdaan) sec); / / gamitin ang numerong ito sa buto ang srand () functionhabang (matatagpuan == 1) (/ / gamitin loop sa hitsura para sa mga nais na numero ng

rannum = ribete ();

kung (rannum> = 0 & & rannum <= 15) (/ / patayin ang loop kapag number ay natagpuan

natagpuan = 0;)

)

hukuman <<rannum; / / ipakita ang numero ng

cin.get ();

)

 
Hi, Para sa lahat ng mga tao na kailangan ng isang tunay na random generator: HUWAG GAMITIN C / C random function generator.Ano ba gawin sa iyo ng isang buto (oras / key strokes) nito ay hindi tunay na random ngunit pseudo random bilang tawag na nila ito.Kung ikaw ay may isang malaking bilang ng mga random na mga numero mula sa generator maaari mong kalkulahin ang susunod at ang lahat na sundin ang !!!..Kung kailangan mo ng isang tunay na random source pumunta sa google at hanapin "CPRNG" = cryptographic PRNG

 
Oo ikaw ay halos kanan.Karamihan sa mga random na numero generators ulitin ang kanilang mga daloy sa ilang panahon.Ngunit maaari naming laging isama ang mas randomness sa sa daloy ng dati sa pamamagitan ng sapalarang pagpapasya sa lugar ng form na random na numero ay napili.Din ang characterstic ng generators random na numero ay tiyak para sa bawat computer.Kaya sa karamihan ng mga kondisyon na sanay ito gumawa ng anumang mga problema dahil ang kakaiba.

 
Hi, Ikaw ay hindi tama!.C random number generator ay isang simpleng PRNG at ito ay ang parehong para sa lahat ng mga computer ang code sa naipon sa.Alam ko since check ko ito para sa isang proyekto!.Nito ay hindi ligtas sa anumang paraan!.

Paul.

 
Hindi eksakto.Dahil hindi lahat ng mga sistema ng ipatupad ang pagbuo ng random na numero sa parehong paraan.Mayroong sistema na kung saan hardware random na numero generators.Gayundin sa halos lahat ng pseudo Random sequences repeates sa isang tiyak na panahon.Nakarating na hindi mo makikita ang mga hardware pseudo random na pagkakasunod-sunod generators?.Tingin ko sa mga computer din nito naaangkop.May ay atipan ng pawid atleast tunay na para sa pagpapatupad ng mga lumang computer.Dahil ako ay may nakita sangguniang aklat na ito repeatability problema at ang kanyang uniqueness mismong computer.

PaulHolland wrote:

Hi, Ikaw ay hindi tama!.
C random number generator ay isang simpleng PRNG at ito ay ang parehong para sa lahat ng mga computer ang code sa naipon sa.
Alam ko since check ko ito para sa isang proyekto!.
Nito ay hindi ligtas sa anumang paraan!.Paul.
 
Ano sumangguni sa inyo na ito ay tinatawag na sa normal na paraan ng pagbuo ng PRNG ito ay ginawa sa hardware at sa parehong paraan sa software.WALANG computer ko nakita sa huling 30 Taon ay may isang random generator ipinatupad.Ang tanging bagay na natapos na sa araw ng DOS sa borland C ay ang paggamit ng hindi ginagamit counter bilang isang random na source!.Iyon ay sa lahat.Subalit iwan ko rito since mukhang KA malaman ng mas mahusay kaysa sa lahat ng mga daigdig cryptgraphic kasama ang mga eksperto sa akin na ang pagtatrabaho sa cryptogathic militar sistems para sa higit sa 20 Taon

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Ngiti" border="0" />

.

Paul.

 
Hello Pablo,
Hindi ako isang eksperto sa alinman sa cryptography o tungkol sa mga random na numero.Subalit may mga malakas na dahilan upang maniwala na may umiiral na hardware na random generators sa makina maliban sa mga militar ng mga computer grade.

Tingnan ang code sa kernel Linux source.At ang mga driver na karakter ng seksyon ay may opsyon na paganahin ang hardware generators random na numero sa i8xx Intel at AMD 76x base motherboards.Din diyan ay suporta para sa VIA Nehemia CPU hardware random number generator.

 
kung magtatanong kayo sa akin, srand () at ribete () gamit ang kalahati ng oras ay random na sapat.

 
Hi,
Para sa mga tanong na ito, Steve Summit ay concluded na may isang detalyadong diskusyon sa mga kalamangan at kahinaan ng mga ordinaryong mechanis random na numero ng pagbuo.

Maaari kang maghanap sa pdf file na pinangalanang "c faq" sa google!Good luck,

Thomson

 
Kung ikaw ay gumagawa ng malaking signal programming na may random na ingay at pagkatapos srand ribete at hindi dapat gamitin.
kung nais mo ng isang mabilis na random na numero sa pagitan ng 0 at 1,000 bilang isang halimbawa pagkatapos ribete at srand ay gumagana lamang pagmultahin.

 
Hindi sumasang-ayon ako na ang RNG sa loob ng mga chips ay tunay na random na numero.Ang teknolohiya na ginagamit ay talagang ilang shift registers at counters at hindi magkaroon ng anumang mga pangunahing pagkakaiba mula sa isang pseudo-random na numero na binuo ng software.

May mga tunay na random na nakabuo ng mga numero na hindi nangangailangan ng binhi at ang ay batay sa ilang mga brownian kalikasan ng quantum mechanics at ilang mga galing sa ibang bansa phenomena na lumilikha ng ilang mga "puting ingay" na maaaring amplified at binibilang para at iharap bilang isang numero sa loob ng isang hanay.

Para sa karamihan ng mga aplikasyon, slot machine, encryption at ang kagustuhan, ito ay mas makakatotohanan na magkaroon ng isang pseudo random na numero at may tamang proteksyon buto at pagbuo ng pamamaraan.Proteksiyon sa paraan na walang paraan upang lumabas nang panakaw sulyap sa variable na henerasyon at sa mga tulad ng isang kaayusan na hindi gamitin ang oras ng araw o anumang mga paulit-ulit na circunstance na nilikha.

Gusto ko ang mga pamamaraan kung saan na masubaybayan ang mga mouse sa posisyon para sa isang habang at magkaroon ng ilan sa mga puntos na nakuha o ang halaga ng mga nag-type sa mga character sa keyboard.Something na talagang may brownian kalikasan at hindi madaling kopyahin.

 

Welcome to EDABoard.com

Sponsor

Back
Top