Similar to "which kind of programmer are you":

http://holyjoe.net/hp/flash07.txt
(there the e^x solution was quite neat)

One get in input a value that can be 1 or 0 or -1 .

The objective is to map those input to:

1 -> 1

0 -> 0.5

-1 -> 0

Of course, the first approach is a "switch case" block. Other ideas? (note that the first range is scaled to the second, but one ending point stays the same)

(05-21-2018 10:24 AM)pier4r Wrote: [ -> ]Of course, the first approach is a "switch case" block. Other ideas? (note that the first range is scaled to the second, but one ending point stays the same)

The Xs are in arithmetic progression with d=-1 while the Ys have d=-0.5 so Y=X/2 plus a constant. As Y(0)=0.5 the constant is precisely 0.5 and so Y=X/2+0.5 which of course is the same solution as Thomas'.

The L.R. (Linear Regression) function on most any HP calc new or old would give you the solution at once (slope and intercept).

Regards.

V.

.

(05-21-2018 10:24 AM)pier4r Wrote: [ -> ]One get in input a value that can be 1 or 0 or -1 .

The objective is to map those input to:

1 -> 1

0 -> 0.5

-1 -> 0

That's trivial since changing the input by 1 changes the output by 0,5. So (1|1), (0|0,5) and (–1|0) are points on a straight line with a slope of 0,5. Due to (0|0,5) the y-intercept is 0,5 as well. So you can get the parameters by simply looking at the data. ;-)

Instead of 0,5x + 0,5 you can also write (x+1)/2.

Or in RPN:

1

+

2

/

WP34s users can save a step with

INC X

#1/2

x
BTW, you may vary the puzzle with a non-linear mapping. For three points it can always be done with a parabolic fit. But maybe there also is another and shorter/faster way to do it. ;-)

What about

5 -> 2

2 -> 1

1 -> 0

As a kind of warm-up you may try

1 -> 1

0 -> 0

–1 -> 0

;-)

Dieter

(05-21-2018 05:06 PM)Jim Horn Wrote: [ -> ]ABS + 2 /

I assume this is supposed to mean

ENTER ABS + 2 /

Yes, this works. But it requires five steps.

What about four? Or three? Or even less?

Dieter

(05-21-2018 05:34 PM)Joe Horn Wrote: [ -> ]1 - NOT

Which calculator do you have in mind here?

I tried this on a 35s and it returns

1 -> –1

0 -> 0

–1 -> 1

More important, what do you do on a HP25, HP67 or HP41 ?-)

Dieter

1->1

0->0

-1->0

Mine:

X<0?

CLX

Cheers, Werner

(05-21-2018 06:28 PM)Werner Wrote: [ -> ]X<0?

CLX

That's what I had in mind. ;-)

And now for the trickier part:

5 -> 2

2 -> 1

1 -> 0

Edit: My current solution does it with 3 steps.

And just 2 on the 34s.

I now see it's not quite as tricky as I thought. ;-)

Dieter

2- bytes if in FIX 00 mode

LN

RND

(05-21-2018 07:06 PM)Logan Wrote: [ -> ]2- bytes if in FIX 00 mode

LN

RND

Great. But for a complete solution you'd have to add a FIX 0, and this makes it one of the possible 3 step solutions. But on an HP67 it's even 4 steps, or 4 bytes on the '41.

However, logs usually are a bit slow, and changing the display mode should be avoided, if possible. But it can be done with the same 3 steps without logs and without a special display setting.

Dieter

(05-21-2018 06:34 PM)Dieter Wrote: [ -> ]And now for the trickier part:

5 -> 2

2 -> 1

1 -> 0

Edit: My current solution does it with 3 steps.

1 – SQRT

Works on all RPN/RPL models, I think.

(05-21-2018 07:33 PM)Joe Horn Wrote: [ -> ]1 – SQRT

Works on all RPN/RPL models, I think.

Hey, that's a good one!

My solution is different, but takes the same three steps.

Anyone else with three steps? Or even less?

Dieter

(05-21-2018 04:31 PM)Dieter Wrote: [ -> ]That's trivial since changing the input by 1 changes the output by 0,5. So (1|1), (0|0,5) and (–1|0) are points on a straight line with a slope of 0,5. Due to (0|0,5) the y-intercept is 0,5 as well. So you can get the parameters by simply looking at the data. ;-)

True. I thought about scaling a range.

(05-21-2018 07:56 PM)Arno K Wrote: [ -> ]What about

sqrt

ip

Arno

Doesn't work with 1 mapping to 0 though