Random Bit Settings

@guy, on Sep 3 2007, 11:00 AM, said in Random Bit Settings:

"r(b1) r(!b1) r(!b1)"

Say, did you try this method out Archon? I'm interested to know if it works or not 🙂
It seems so simple and obvious I wonder why it's never been mentioned before. Is there some terrible flaw I'm not seeing? The only problem I can see is if the bit was already set beforehand then there's a good chance it will be clear afterwards, but I don't think that's likely to be an issue.

I actually didn't, since I'd implemented Pace's solution before you posted that. (Which, by the way, works wonderfully!) Now that that's out of the way, I've managed to alpha-test everything in the second chapter up until the finale, which I'm still torn on how to work. We can expect to see a beta by Monday. 😉

However, I will probably need to do the same trick again for random settings, so I'll try out your method Guy when I get there.

@guy, on Sep 2 2007, 06:00 PM, said in Random Bit Settings:

"r(b1) r(!b1) r(!b1)"

Actually, that looks to me like it would only be a 50% chance of r1 and 50% chance of !r1. The first two would be meaningless once Nova determines the value of the third one. No?

@mumbling-psycho, on Sep 9 2007, 07:25 PM, said in Random Bit Settings:

Actually, that looks to me like it would only be a 50% chance of b 1 and 50% chance of ! b 1. The first two would be meaningless once Nova determines the value of the third one. No?

That's the way it should be. B 1 as opposed to R 1.

The issue is he said that expression would be 12,5% chance of b1 being set. But it looks to me that it would still be 50%.

@mumbling-psycho, on Sep 10 2007, 11:25 AM, said in Random Bit Settings:

The first two would be meaningless once Nova determines the value of the third one. No?

No. They're each single expressions - Nova chooses to either execute that expression or not. At the last one, there's a 50% chance of Nova doing nothing and a 50% chance of it clearing b1. If it chooses to do nothing then that gives a chance for the previous one to have an effect.

Let's look at all the possibilities. Each piece has two possibilities so combined together there will be eight different possibilities, with a 12.5% chance of each one occuring.
b1 gets set, b1 gets cleared, b1 gets cleared. Result: b1 is not set
b1 gets set, b1 gets cleared, nothing happens. Result: b1 is not set
b1 gets set, nothing happens, b1 gets cleared. Result: b1 is not set
b1 gets set, nothing happens, nothing happens. Result: b1 is set
nothing happens, b1 gets cleared, b1 gets cleared. Result: b1 is not set
nothing happens, b1 gets cleared, nothing happens. Result: b1 is not set
nothing happens, nothing happens, b1 gets cleared. Result: b1 is not set
nothing happens, nothing happens, nothing happens. Result: b1 is unchanged. We'll assume it was initially clear.
Out of all the eight possibilities, only one results in b1 being set. Total probability: 12.5%

This post has been edited by Guy : 10 September 2007 - 05:17 PM

Hum, either you need to teach me how nova handles such expressions, either I just don't understand your reasonning.

This "nothing happens" line, are you implying that using the r operator, there's actually a 3rd possibility? I think not, but feel free to correct this, if there's actually 3 results to "r".

Then I see r(!b1). Does that mean it will only work if b1 is not set by the first r(b1)? I don't think so either, actually I would expect nova to treat r(b1) and r(!b1) the same, meaning, ignoring wether or not it is already set or cleared and randomize the state of b1.

So, it looks to me that it would go like this:
b1 gets set or cleared.
b1 gets set or cleared.
b1 gets set or cleared.
Resulting in 50% chance of either set or cleared.

EDIT: Wait. I think something is taking form in my head. Just one second... right... aaahh.. you're saying the r operator either leaves the bit's state unchanged OR sets it to what's in the parentheses? That would effectively mean that r(!b1) cannot set b1. I'd like to test that... I probably should, but testing randomness sounds silly to me. Then again, that would be valuable information...

EDIT 2: Aaaaaaah, it makes sense now!!! Thanks! :laugh:

This post has been edited by Mumbling Psycho : 10 September 2007 - 05:54 PM

Yeah, you've got it now ;). The r operator normally takes two arguments so you would put r(b1 !b1) if you wanted to randomly set or clear. Putting just one argument simply means it either does or doesn't do that expression.

The other option is 16 missions.
8 separate missions are for "buying" bits 1-8. They are set up in such a way that you can't "buy" bit 2 without owning bit 1, and you can't get bit 3 without bits 2 and 1, etc

8 more are test missions. Each has the same outcome(s), but different probabilites. Each mission requires !b9 to run
Mission 1 requires b1, has 20% probability, can't refuse, does whatever it is the event you want to trigger. It sets b9.
Mission 2 requires b1 and b2, has 40%probability, but is otherwise identical to mission 1
Mission 3 requires b1 and b2 and b3, has 60% probability, but is otherwise identitcal

I have not tested any of this. Try at your own risk. I cannot be reesponsible for failure, but I can be for success.