[C#] ovlivnění generování náhodného čísla – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

[C#] ovlivnění generování náhodného čísla – .NET – Fórum – Programujte.com[C#] ovlivnění generování náhodného čísla – .NET – Fórum – Programujte.com

 

Wasp0
Newbie
3. 11. 2010   #1
-
0
-

Ahoj,

chtěl bych se informovat na generování náhodných čísel. Potřeboval bych generovanou řadu nějakým zpusobem ovlivnit. Když si vemu jako příklad hrací kostku, chtěl bych ovlivnit padnutí čísla 6. Jde to nějakým způsobem? Klasickou hrací kostku dám dohromady, ale s tímto si nevím rady. :smile11:

V oblasti programování začínám, tak prosím omluvte mé začátečnické otázky. :(

Nahlásit jako SPAM
IP: 213.31.11.–
začátečník v oblasti programování, prosím o trpělivost =)
liborb
~ Redaktor
+18
Guru
3. 11. 2010   #2
-
0
-

A v jakém směru by sis to ovlivnění představoval?

Nahlásit jako SPAM
IP: 78.80.52.–
Wasp0
Newbie
3. 11. 2010   #3
-
0
-

To liborb : Například falešná kostka, která hodí vícekrát 6 než jakékoliv jiné číslo :smile1:
Mám mít za měsíc ve škole zkoušku a zatím zjišťuji, že v tom celkem lítam :smile13: Děkuji za jakoukoliv pomoc či radu.
Mohu sem kdyžtak překopírovat kód kostky, který již mám hotový jako příklad a na něj bysme to mohli aplikovat.

Nahlásit jako SPAM
IP: 213.31.11.–
začátečník v oblasti programování, prosím o trpělivost =)
liborb
~ Redaktor
+18
Guru
3. 11. 2010   #4
-
0
-

Ten kód není špatný nápad :) a možná to vidím moc jednoduše, ale co náhodná čísla nikoliv od 1 do 6, ale třeba do 8, a co je větší nebo rovno 6 je prostě 6 (3x větší šance, že padne 6).

Nahlásit jako SPAM
IP: 78.80.52.–
Wasp0
Newbie
3. 11. 2010   #5
-
0
-

To liborb :

namespace WindowsFormsApplication1

{
public partial class hraci_kostka : Form
{

Random náhoda = new Random();

public hraci_kostka()
{
InitializeComponent();
}

private void hazej_Click(object sender, EventArgs e)
{
int číslo = náhoda.Next(1, 6 + 1);
polecislo.Text = číslo.ToString();

}
}
}


přikládám kod, celkem dobrá myšlenka, zkusím popřemýšlet jak to zrealizovat. :smile1:

Nahlásit jako SPAM
IP: 213.31.11.–
začátečník v oblasti programování, prosím o trpělivost =)
Wasp0
Newbie
3. 11. 2010   #6
-
0
-

namespace WindowsFormsApplication1

{
public partial class hraci_kostka : Form
{

Random náhoda = new Random();

public hraci_kostka()
{
InitializeComponent();
}

private void hazej_Click(object sender, EventArgs e)
{
int číslo = náhoda.Next(1, 10 + 1);
if (číslo > 6)
číslo = 6;

polecislo.Text = číslo.ToString();

}
}
}


doplnil jsem podmínku if (zvýrazněná tučně) a zdá se že maká jak má. Takhle jsi to nějak měl na mysli? :smile7:

Nahlásit jako SPAM
IP: 213.31.11.–
začátečník v oblasti programování, prosím o trpělivost =)
Wasp0
Newbie
3. 11. 2010   #7
-
0
-

koukám zvýraznění není moc vidět, jedná se o řádek 31-33.

Nahlásit jako SPAM
IP: 213.31.11.–
začátečník v oblasti programování, prosím o trpělivost =)
liborb
~ Redaktor
+18
Guru
3. 11. 2010   #8
-
0
-

2 poznámky:

- nepoužívej diakritiku při programování
- novu instanci Random zakládej se semínkem (seed), jinak bude průběh "házení kostkou" při každém spuštění aplikace stejný

A tu mojí dobrou myšlenku :) zrealizuješ rozšířením rozsahu a následnou podmínkou.

EDIT: :smile4:

Nahlásit jako SPAM
IP: 78.80.52.–
Wasp0
Newbie
3. 11. 2010   #9
-
0
-

Děkuji za upozornění, za diakritiku se omlouvám, zlozvyk... :smile14:
semínko "seed", abych pravdu řekl opravdu začínám a slyším o tom poprvé, nicméně je to dobrý tip a určitě si to budu pamatovat a používat :smile1:
A jestli správně rozumím tvé myšlence, tak jsem to až na diakritiku a "seed" napsal správně? :smile1:

Nahlásit jako SPAM
IP: 213.31.11.–
začátečník v oblasti programování, prosím o trpělivost =)
liborb
~ Redaktor
+18
Guru
3. 11. 2010   #10
-
0
-

Wasp napsal:A jestli správně rozumím tvé myšlence, tak jsem to až na diakritiku a "seed" napsal správně? :smile1:



Diakritika je spíše kosmetika, seed je "nutnost" (používá se něco od času nebo tiků procesu od startu PC apod. - prostě něco, co při příštím spuštění bude mít jinou hodnotu). No a jinak si mojí myšlenku zrealizoval správně :)

Nahlásit jako SPAM
IP: 78.80.52.–
Wasp0
Newbie
3. 11. 2010   #11
-
0
-

To liborb : a jakým způsobem se "seed" zapisuje? zkusím se podívat do nějaké učebnice co mám ze školy jestli tam o tom není zmínka. :smile1:

Nahlásit jako SPAM
IP: 213.31.11.–
začátečník v oblasti programování, prosím o trpělivost =)
Kolemjdoucí
~ Anonymní uživatel
71 příspěvků
3. 11. 2010   #12
-
0
-

Dobrý den.
Mám pocit, že od jisté doby .Net generuje seed dle data automaticky. V nápovědě pro random je v konstruktoru bez argumentů:
Initializes the instance of ... random class, using a time dependent default seed value. Pokud jsem si to přeložil správně, seed už není nutné používat :)

Nahlásit jako SPAM
IP: 78.128.198.–
Wasp0
Newbie
3. 11. 2010   #13
-
0
-

To Kolemjdoucí : Dobrý den, děkuji za připomínku, zítra si pokusím pročíst nápovědu abych byl chytřejší

Nahlásit jako SPAM
IP: 88.101.104.–
začátečník v oblasti programování, prosím o trpělivost =)
skorec10
Newbie
3. 11. 2010   #14
-
0
-

ja by som spravil podmienku ze ak nepadne 6 tak tak zopakuje cyklus 3x kym nepadne 6, mas 3x vacsiu pravdepdoobnost ze ti padne pave 6 :-)

Nahlásit jako SPAM
IP: 213.108.120.–
Kolemjdoucí
~ Anonymní uživatel
71 příspěvků
4. 11. 2010   #15
-
0
-

To skorec1:
Předpokládejme, že v 1. cyklu máš pravděpodobnost padnutí 6 rovnou 0<=k<=1.
Takže kdybys zopakoval dostatečný počet opakování (víc než 1/k), dostal bys dle tvé logiky pravděpodobnost větší než 1. Což nemůže platit. Snad jsem to pochopil správně, kdyžtak mne opravte. Řešení liborb je dle mého názoru rychlé i korektní.

Nahlásit jako SPAM
IP: 78.128.198.–
Petrroll0
Stálý člen
7. 11. 2010   #16
-
0
-

Asi je to tím že jsem dnes trochu mimo, ale nedochází mi proč v parametrech pro .next předává 6+1 a ne 6 nebo 7. Dle MSDN library jde o rozsah, proto mi také vrtá hlavou proč je u kostky rozsah 1-7 (neboli 6+1).
EDIT: Jde mi o to jen z čiré zvědavosti.

Nahlásit jako SPAM
IP: 92.62.224.–
liborb
~ Redaktor
+18
Guru
8. 11. 2010   #17
-
0
-

Jsou věci, které je lepší zkusit, ale i v dokumentaci se píše "minValue - the inclusive lower bound; maxValue - the exclusive upper bound", takže je to interval <minValue, maxValue).

Nahlásit jako SPAM
IP: 78.80.52.–
Wasp0
Newbie
8. 11. 2010   #18
-
0
-

To Petrroll : jak jsem psal na začátku, začínám a zatím nemám moc široký přehled a snažím se držet toho co nám vysvětlují na VŠ. Nejspíš to nebude to správné, ale začít se nějak musí. Profesor nám říkal, že v takovémto případě se musí dávat horní mez o jednu výšší, tedy 6+1. Udajně je to nelogické a proto jsem to přijal jako pravidlo. V přikládám do přílohy výstřižek z knihy, kterou máme k dispozici ke studiu.

Nahlásit jako SPAM
IP: 213.31.11.–
začátečník v oblasti programování, prosím o trpělivost =)
Petrroll0
Stálý člen
8. 11. 2010   #19
-
0
-

Ach, teď to smysl dává. Omlouvám se za teď již zbytečné otázky.

Nahlásit jako SPAM
IP: 92.62.224.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 14 hostů

Podobná vlákna

Generace náhodného čísla — založil martasns

Vybrání náhodného souboru — založil BlackHole

Generator nahodneho textu — založil Michalek

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý