Just another update
This commit is contained in:
parent
a25938f123
commit
00a190b0a6
6591 changed files with 94363 additions and 23227 deletions
47
Task/Stem-and-leaf-plot/AWK/stem-and-leaf-plot.awk
Normal file
47
Task/Stem-and-leaf-plot/AWK/stem-and-leaf-plot.awk
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
# syntax: GAWK -f STEM-AND-LEAF_PLOT.AWK
|
||||
#
|
||||
# sorting:
|
||||
# PROCINFO["sorted_in"] is used by GAWK
|
||||
# SORTTYPE is used by Thompson Automation's TAWK
|
||||
#
|
||||
BEGIN {
|
||||
data = "12 127 28 42 39 113 42 18 44 118 44 37 113 124 37 48 127 36 29 31 " \
|
||||
"125 139 131 115 105 132 104 123 35 113 122 42 117 119 58 109 23 105 63 27 44 " \
|
||||
"105 99 41 128 121 116 125 32 61 37 127 29 113 121 58 114 126 53 114 96 25 " \
|
||||
"109 7 31 141 46 13 27 43 117 116 27 7 68 40 31 115 124 42 128 52 71 118 117 " \
|
||||
"38 27 106 33 117 116 111 40 119 47 105 57 122 109 124 115 43 120 43 27 27 18 " \
|
||||
"28 48 125 107 114 34 133 45 120 30 127 31 116 146"
|
||||
data_points = split(data,data_arr," ")
|
||||
for (i=1; i<=data_points; i++) {
|
||||
x = data_arr[i]
|
||||
stem = int(x / 10)
|
||||
leaf = x % 10
|
||||
if (i == 1) {
|
||||
lo = hi = stem
|
||||
}
|
||||
lo = min(lo,stem)
|
||||
hi = max(hi,stem)
|
||||
arr[stem][leaf]++
|
||||
}
|
||||
PROCINFO["sorted_in"] = "@ind_str_asc" ; SORTTYPE = 1
|
||||
for (i=lo; i<=hi; i++) {
|
||||
printf("%4d |",i)
|
||||
arr[i][""]
|
||||
for (j in arr[i]) {
|
||||
for (k=1; k<=arr[i][j]; k++) {
|
||||
printf(" %d",j)
|
||||
leaves_printed++
|
||||
}
|
||||
}
|
||||
printf("\n")
|
||||
}
|
||||
if (data_points == leaves_printed) {
|
||||
exit(0)
|
||||
}
|
||||
else {
|
||||
printf("error: %d data points != %d leaves printed\n",data_points,leaves_printed)
|
||||
exit(1)
|
||||
}
|
||||
}
|
||||
function max(x,y) { return((x > y) ? x : y) }
|
||||
function min(x,y) { return((x < y) ? x : y) }
|
||||
49
Task/Stem-and-leaf-plot/Maple/stem-and-leaf-plot.maple
Normal file
49
Task/Stem-and-leaf-plot/Maple/stem-and-leaf-plot.maple
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
StemPlot := proc( datatable::{rtable,list,algebraic} )
|
||||
local i, j, k, tf, LeafStemTable, LeafStemIndices;
|
||||
k:=0;
|
||||
|
||||
LeafStemTable := ListTools:-Categorize( (x,y) -> iquo(x, 10) = iquo(y, 10), sort(datatable));
|
||||
|
||||
if LeafStemTable = NULL then
|
||||
error "Empty List";
|
||||
elif nops( [ LeafStemTable ] ) = 1 or not( type( LeafStemTable[2], list) ) then
|
||||
LeafStemTable := [ LeafStemTable ];
|
||||
end if;
|
||||
|
||||
LeafStemIndices := { seq( iquo( LeafStemTable[i][1], 10 ), i = 1..nops( [ LeafStemTable ] ) ) };
|
||||
|
||||
for i from min( LeafStemIndices ) to max( LeafStemIndices ) do
|
||||
|
||||
if i in LeafStemIndices then
|
||||
k := k + 1;
|
||||
|
||||
if i = 0 then
|
||||
|
||||
if min( datatable ) >=0 then
|
||||
printf( "%-4a%s%-s\n", i, " | ", StringTools:-Remove( "[],", convert( [seq( abs( irem( LeafStemTable[k][j], 10 ) ), j = 1..nops( LeafStemTable[k] ) )], string ) ) );
|
||||
else
|
||||
tf := ListTools:-Occurrences( true, (x->type(x,negative))~(LeafStemTable[k]));
|
||||
printf( "%s%-4a%s%-s\n", "-", i, " | ", StringTools:-Remove( "[],", convert( [seq( abs( irem( LeafStemTable[k][j], 10 ) ), j = 1 .. tf )], string ) ) );
|
||||
printf( "%-4a%s%-s\n", i, " | ", StringTools:-Remove( "[],", convert( [seq( abs( irem( LeafStemTable[k][j], 10 ) ), j = tf + 1 .. nops( LeafStemTable[k] ) )], string ) ) );
|
||||
end if;
|
||||
|
||||
else
|
||||
|
||||
printf( "%-4a%s%-s\n", i, " | ", StringTools:-Remove( "[],", convert( [seq( abs( irem( LeafStemTable[k][j], 10 ) ), j = 1..nops( LeafStemTable[k] ) )], string ) ) );
|
||||
|
||||
end if;
|
||||
|
||||
else
|
||||
|
||||
printf( "%-4a%s\n", i, " | " );
|
||||
|
||||
end if;
|
||||
|
||||
end do;
|
||||
|
||||
return NULL;
|
||||
end proc:
|
||||
|
||||
Y := [ 12, 127, 28, 42, 39, 113, 42, 18, 44, 118, 44, 37, 113, 124, 37, 48, 127, 36, 29, 31, 125, 139, 131, 115, 105, 132, 104, 123, 35, 113, 122, 42, 117, 119, 58, 109, 23, 105, 63, 27, 44, 105, 99, 41, 128, 121, 116, 125, 32, 61, 37, 127, 29, 113, 121, 58, 114, 126, 53, 114, 96, 25, 109, 7, 31, 141, 46, 13, 27, 43, 117, 116, 27, 7, 68, 40, 31, 115, 124, 42, 128, 52, 71, 118, 117, 38, 27, 106, 33, 117, 116, 111, 40, 119, 47, 105, 57, 122, 109, 124, 115, 43, 120, 43, 27, 27, 18, 28, 48, 125, 107, 114, 34, 133, 45, 120, 30, 127, 31, 116, 146];
|
||||
|
||||
StemPlot(Y);
|
||||
|
|
@ -9,11 +9,7 @@ let data =
|
|||
34; 133; 45; 120; 30; 127; 31; 116; 146 ]
|
||||
|
||||
let data =
|
||||
List.map (fun d ->
|
||||
let a = d / 10 in
|
||||
let b = d mod 10 in
|
||||
(a, b)
|
||||
) data
|
||||
List.map (fun d -> (d / 10, d mod 10)) data
|
||||
|
||||
let keys =
|
||||
List.sort compare (unique (List.map fst data))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue