BG Development


Страници: (6) [1] 2 3 ... последна »  ( Първото ново мнение ) Reply to this topicStart new topicStart Poll

> Random със custom repeat rate
H_A_L_F
Публикувано на: 25-10-2018, 13:33
Quote Post



Име: Антон Банчев
Група: Потребител
Ранг: Почетен член

Мнения: 1496
Регистриран на: 01.03.04



Някой има ли идея за прост метод който да връща рандом инт (примерно от 1-10) но с начин да му се зададе процентен шанс за repeat на последното число, в случая с 1 до 10 по принцип има 10% шанс следващото число да е същото като предното, а аз може да искам да го променя на 5% или 2%.


edit: може да е нещо като

if(random(0,100)<=repeatRate) result=oldRandom;
else result = generateRandomThatExcludes(oldRandom);

но се чудя няма ли нещо измислено за целта

Това мнение е било редактирано от H_A_L_F на 25-10-2018, 13:41
PMEmail Poster
Top
Дон Реба
Публикувано на: 25-10-2018, 13:41
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 7308
Регистриран на: 11.11.06



ами правиш ако се падне същото, с определена вероятност дърпаш докато стане различно. примерно ако искаш от 10 на 2, дърпаш с вероятност 80%, което става като примерно rand()<maxrand*8/10
PM
Top
H_A_L_F
Публикувано на: 25-10-2018, 13:49
Quote Post



Име: Антон Банчев
Група: Потребител
Ранг: Почетен член

Мнения: 1496
Регистриран на: 01.03.04



Добре, но това ще работи само за намаляне на вероятноста, искам и да мога да я увеличавам според ситуацията. (Става въпрос за игра и се опитвам да балансирам трудноста динамично)
PMEmail Poster
Top
saruman
Публикувано на: 25-10-2018, 13:59
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 2079
Регистриран на: 21.07.10



https://forums.bgdev.org/index.php?showtopic=50692

Виж първия отговор на JahnBirdX,нещо подобно ти трябва ако разбирам правилно


--------------------
http://www.wefunkradio.com/radio/

Remember,remember the fifth of November
PMEmail Poster
Top
Дон Реба
Публикувано на: 25-10-2018, 14:45
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 7308
Регистриран на: 11.11.06



QUOTE (H_A_L_F @ 25-10-2018, 13:49)
Добре, но това ще работи само за намаляне на вероятноста, искам и да мога да я увеличавам според ситуацията. (Става въпрос за игра и се опитвам да балансирам трудноста динамично)

същото, само че наопаки, вместо да връщаш нова гарантирано различна стойност, връщаш старата
PM
Top
JanBirdX
Публикувано на: 25-10-2018, 14:59
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 1553
Регистриран на: 21.02.05



ами намираш функцията която го прави и готово. Като пиша функция имам предвид а0 + а1 * х + а2 * х^2 + .... + аn * x^n
PMEmail Poster
Top
SuN
Публикувано на: 25-10-2018, 15:04
Quote Post


Group Icon
Име:
Група: Администратор
Ранг: Почетен член

Мнения: 7240
Регистриран на: 27.01.05



QUOTE (H_A_L_F @ 25-10-2018, 13:33)
но се чудя няма ли нещо измислено за целта


Аз бих ползвал изброени стойностите с възможност за допълване до фиксиран брой пъти (не обичам неограничени динамични неща):
CODE
int ar[] = {<normal values>, <empty slots>};
int count = ...;
int value = ar[random(0, count)];


CODE
void add (int val) {
 ar[count++] = val;
}


П. П.
Примерния ми код е само за тези промени на шанса с 2% или 5% и ако не искаш да е формула.

Това мнение е било редактирано от SuN на 25-10-2018, 15:12


--------------------
Копирай лесно ударено и - ѝ Ѝ
Замърсяване на въздуха в София - http://aqicn.org/city/bulgaria/sofia/druzhba/
PMEmail Poster
Top
Реконструктор
Публикувано на: 25-10-2018, 15:09
Quote Post



Име:
Група: Потребител
Ранг: Редовен член

Мнения: 463
Регистриран на: 18.12.06



Не съм убеден, че може да стане с твърда вероятност. Може с "вероятност не по-ниска от 10%" но твърдо 10 не се сещам как да стане.

П.С. Всъщност понеже е игра, вероятно ще става дума за милиони "тегления", тогава ако се пази история на всички изтеглени числа (или поне достатъчно голяма част от тях), ще стане.

Това мнение е било редактирано от Реконструктор на 25-10-2018, 15:10
PMEmail Poster
Top
SuN
Публикувано на: 25-10-2018, 15:18
Quote Post


Group Icon
Име:
Група: Администратор
Ранг: Почетен член

Мнения: 7240
Регистриран на: 27.01.05



Я кажи накрая кой те е разбрал най-добре и е отговорил най-близко до твоите предпочитания. icon_smile.gif

Това мнение е било редактирано от SuN на 25-10-2018, 15:18


--------------------
Копирай лесно ударено и - ѝ Ѝ
Замърсяване на въздуха в София - http://aqicn.org/city/bulgaria/sofia/druzhba/
PMEmail Poster
Top
kierenski
Публикувано на: 25-10-2018, 16:50
Quote Post



Име:
Група: Потребител
Ранг: Активен

Мнения: 291
Регистриран на: 10.01.16



Май никой не е разбрал icon_wink.gif
H_A_L_F иска този метод защото по този начин се използва при хазартните игри да се генерира стабилен коефицент на попадение защото се изисква по закон.

H_A_L_F Това което искаш не е прост начин за генериране, има си цяла теория и алгоритъм как трябва да се направи (обикновено е добре пазена тайна).
PMEmail Poster
Top
1 потребители преглеждат тази тема в момента (1 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Страници: (6) [1] 2 3 ... последна » Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2018 | BG Development | All Rights Reserved
RSS 2.0