Похожие чаты

Hey guys, any suggestion regarding this: int n = rand() %

2;
if (n==0)
{
doSomthing()
}

doSomething() function will be executed at a probable (random) intervals based on this condition. However, any advice on how to make it more stable? Meaning to have a condition that will execute doSomthing() function exactly 50% or 30% of the whole run time.

8 ответов

24 просмотра

U can use the rand function itself

n = rand() % 10; if (n > 4) {...} that will be for 50% theoretically, :)

Kuntal M
n = rand() % 10; if (n > 4) {...} that will be fo...

n % 2 == 0, it will work even more precise :)

Monem- Автор вопроса

Everyone just uses modulus like that, but everyone ponders how to do better too... The usual attempt looks something like: #define N 100 // or whatever #define USE_MAX (N * (RAND_MAX/N)) // re-multiply and idiv truncate int x; do x = rand(); while(x >= USE_MAX); x %= N; I believe there is a better way but don't know off the top of my head.

Monem- Автор вопроса

If you're using C++ you'll better results using uniform https://en.cppreference.com/w/cpp/numeric/random/uniform_int_distribution With values, for example 1,100 and probability to get value, for example < 20 will be 20% That makes it very easy to change probabilities when you need.

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
any reference of this implementation?
BitBuddha
29
Ⓐrtto, [4/23/24 7:02 PM] Please explain more fully how it is not working exactly, and what are the steps you are taking, and what error messages come or what happens. Ⓐrtto, ...
Ezza Kezza
2
sounds like people have lost their kaspa on tradeogre... does this mean tradeogre not trustworthy?
Ezza Kezza
15
Страшнейшая правда про списки ЦБ. С первых дней жизни P2P сферы, молодые человеки, начитавшись законодательной базы и "внутренних" документов, решили, что им противостоит сер...
Foxcool
3
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
So much speculation in the last week. So much volatility in price. This is because Hedera has a GC that isn't using the network it's governing. Why aren't people asking why a...
Summit Seeker R
9
Карта сайта