A friendly place for programming greenhorns!
approach value to 1
I have a variable that represents a double value in the range between 0 and 1. This variable should increase (i.e. come closer to 1) everytime a certain event occurs (say, a user clicks).

How (mathematically) would I calculate the variable, so that it comes closer to 1 everytime the event happens? This is probably pretty easy, but I'm lost here...

The problem I have is that I don't have the overall number of events (n) that already occured, but only the current value (v) of the variable. Otherwise I could calculate v = 1-1*n.

How (mathematically) would I calculate the variable, so that it comes closer to 1 everytime the event happens? This is probably pretty easy, but I'm lost here...

This is a weird requirement. You need to get closer to one, but you don't care how you approach it?

new_value = prev_value + ((1 - prev_value) / 1000);

Of course, the precision of a double isn't infinite. And it will eventually become one.

Henry
Well, you could add half the remaining interval every time an event occurs:

x += (1 - x)/2.0

Lukas Benberg wrote:
The problem I have is that I don't have the overall number of events (n) that already occured, but only the current value (v) of the variable. Otherwise I could calculate v = 1-1*n.

I don't think that'd return a value between 0 and 1..... What use would (1-n) be?
I mean, n being an integer....

Thank you all,
I think this is what I had in my mind: x += (1 - x)/2.0 .

Henry, for the moment I don't care _how_ I approach 1. Later, this may become relevant. I will have to think about your hint.

Prabz, you are right, what I actually meant was: v = 1-1/n

i think however you do it, you will have a limit to how many clicks they can make. at some point, you will hit the limit on the precision of a float/long, and you're done.

can you perhaps better explain the larger problem? Maybe there is a better solution...
Hi Fred,
the context is: I want to calculate something like the user's "preferences" for "items" from data I have. for further analysis, all preference values have to be between 0 and 1 (or alternatively between -1 and 1). I don't know in advance the final "preference" value, because preferences may increase later. also, the number of "items" may change later.

no wonder he is so sad, he hasn't seen this tiny ad:
The WEB SERVICES and JAX-RS Course
https://coderanch.com/t/690789/WEB-SERVICES-JAX-RS

This thread has been viewed 691 times.

All times above are in ranch (not your local) time.
The current ranch time is
Feb 18, 2018 02:05:16.