Jump to content

Map range: Difference between revisions

no edit summary
No edit summary
Line 724:
Usage (e.g.): map([1,10],[0,5],8.)
<lang parigp>map(r1,r2,x)=r2[1]+(x-r1[1])*(r2[2]-r2[1])/(r1[2]-r1[1])</lang>
 
=={{header|Perl}}==
<lang Perl>#!/usr/bin/perl -w
use strict ;
 
sub mapValue {
my ( $range1 , $range2 , $number ) = @_ ;
return ( $range2->[ 0 ] +
(( $number - $range1->[ 0 ] ) * ( $range2->[ 1 ] - $range2->[ 0 ] ) ) / ( $range1->[ -1 ]
- $range1->[ 0 ] ) ) ;
}
my @numbers = 0..10 ;
my @interval = ( -1 , 0 ) ;
map { print "The mapped value for $_ is " . mapValue( \@numbers , \@interval , $_ ) . " !\n" } @numbers ;
</lang>
Output:
<PRE>The mapped value for 0 is -1 !
The mapped value for 1 is -0.9 !
The mapped value for 2 is -0.8 !
The mapped value for 3 is -0.7 !
The mapped value for 4 is -0.6 !
The mapped value for 5 is -0.5 !
The mapped value for 6 is -0.4 !
The mapped value for 7 is -0.3 !
The mapped value for 8 is -0.2 !
The mapped value for 9 is -0.1 !
The mapped value for 10 is 0 !
</PRE>
 
=={{header|Perl 6}}==
262

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.