From 5bc15d9d25aef49bf474bd56a13746a91e2ccd34 Mon Sep 17 00:00:00 2001 From: HVukman Date: Fri, 8 Aug 2025 17:31:29 +0200 Subject: Create 333_p1.fs --- challenge-333/hvukman/f#/333_p1.fs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 challenge-333/hvukman/f#/333_p1.fs diff --git a/challenge-333/hvukman/f#/333_p1.fs b/challenge-333/hvukman/f#/333_p1.fs new file mode 100644 index 0000000000..7bebaaf2ac --- /dev/null +++ b/challenge-333/hvukman/f#/333_p1.fs @@ -0,0 +1,15 @@ +// 333 part 1 + +let input = [ [|2;1|] ; [|2;3|] ; [|2;5|] ]; +let input2 = [ [|1;4|] ; [|3;4|] ; [|10;4|] ]; +let input3 = [ [|0;0|] ; [|1;1|] ; [|2;3|] ]; +let input4 = [ [|10000;10000|] ; [|20000;20000|] ; [|30000;30000|] ]; +let inputs_1 = [ input; input2 ; input3; input4] +// -- calculated the determinant +// -- https://de.wikipedia.org/wiki/Kollinearität#Analytische_Geometrie +let det (x:int array list) = let x1,x2,x3 = x[0].[0],x[1].[0],x[2].[0] + let y1,y2,y3 = x[0].[1],x[1].[1],x[2].[1] + let det = x1*y2 + x2*y3 + x3*y1 - x1*y3 - x2*y1 - x3*y2 + if det =0 then printf "%s\n" "true" else printf "%s\n" "false" + + -- cgit From df447c718d6659e8d01603ce895296c62e1bab1d Mon Sep 17 00:00:00 2001 From: HVukman Date: Fri, 8 Aug 2025 17:31:54 +0200 Subject: Create 333_p2.fs --- challenge-333/hvukman/f#/333_p2.fs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 challenge-333/hvukman/f#/333_p2.fs diff --git a/challenge-333/hvukman/f#/333_p2.fs b/challenge-333/hvukman/f#/333_p2.fs new file mode 100644 index 0000000000..1b6209313d --- /dev/null +++ b/challenge-333/hvukman/f#/333_p2.fs @@ -0,0 +1,18 @@ +// 333 part 2 + +let input_1 = [| 1;0; 2; 3; 0; 4; 5; 0 |] +let input_2 = [| 1; 2; 3 |] +let input_3 = [| 1; 2; 3; 0 |] +let input_4 = [| 0; 0; 0; 0 |] +let input_5 = [| 1; 2; 0; 3; 4 |] +let inputs_2 = [ input_1; input_2; input_3; input_4; input_5 ] + +// if 0 double else x; then truncuate to length of x +let dup (x:int array) = Array.collect (fun x -> match x with + |0 -> [|0;0|] + |_ -> [|x|] ) x |> Array.take (Array.length x) + +for i in (inputs_2) do + for j in dup(i) do + printf "%i " j + printf "%s\n" "" -- cgit From 752dd83428a0952a490a7f759f96e4daad8b67be Mon Sep 17 00:00:00 2001 From: HVukman Date: Fri, 8 Aug 2025 17:32:14 +0200 Subject: Update 333_p1.fs --- challenge-333/hvukman/f#/333_p1.fs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/challenge-333/hvukman/f#/333_p1.fs b/challenge-333/hvukman/f#/333_p1.fs index 7bebaaf2ac..cc2b153ebb 100644 --- a/challenge-333/hvukman/f#/333_p1.fs +++ b/challenge-333/hvukman/f#/333_p1.fs @@ -11,5 +11,8 @@ let det (x:int array list) = let x1,x2,x3 = x[0].[0],x[1].[0],x[2].[0] let y1,y2,y3 = x[0].[1],x[1].[1],x[2].[1] let det = x1*y2 + x2*y3 + x3*y1 - x1*y3 - x2*y1 - x3*y2 if det =0 then printf "%s\n" "true" else printf "%s\n" "false" + +for x in inputs_1 do + det (x) -- cgit From daa35d6745d3f1519aab69c3e42ec269ebb5e108 Mon Sep 17 00:00:00 2001 From: HVukman Date: Fri, 8 Aug 2025 17:33:09 +0200 Subject: Create 333_p1.lua --- challenge-333/hvukman/lua/333_p1.lua | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 challenge-333/hvukman/lua/333_p1.lua diff --git a/challenge-333/hvukman/lua/333_p1.lua b/challenge-333/hvukman/lua/333_p1.lua new file mode 100644 index 0000000000..af59673a14 --- /dev/null +++ b/challenge-333/hvukman/lua/333_p1.lua @@ -0,0 +1,18 @@ + +function Straight(x) + local dummy = true + -- calculated the determinant + -- https://de.wikipedia.org/wiki/Kollinearität#Analytische_Geometrie + local det = x[1][1]*x[2][2] + x[2][1]*x[3][2]+ + x[3][1]*x[1][2] - x[1][1]*x[3][2] - x[2][1]*x[1][2] + - x[3][1]*x[2][2] + print( det == 0) + + +end + +Straight({ {2,1},{2,3},{2,5},{2,3}}) +Straight({ {1,4},{3,4},{10,4}}) +Straight({ {0,0},{1,1},{2,3}}) +Straight({ {1,1},{1,1},{1,1}} ) +Straight({ {1000000, 1000000} , {2000000, 2000000}, {3000000, 3000000}}) -- cgit From 3de48fb7d924191619907307a35a4aee89441c49 Mon Sep 17 00:00:00 2001 From: HVukman Date: Fri, 8 Aug 2025 17:40:02 +0200 Subject: Create 333_p2.lua --- challenge-333/hvukman/lua/333_p2.lua | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 challenge-333/hvukman/lua/333_p2.lua diff --git a/challenge-333/hvukman/lua/333_p2.lua b/challenge-333/hvukman/lua/333_p2.lua new file mode 100644 index 0000000000..7fe02a96b7 --- /dev/null +++ b/challenge-333/hvukman/lua/333_p2.lua @@ -0,0 +1,27 @@ +-- insert in res while res<=x +function Dup2(x) + local len = #x + local res = {} + for l,v in ipairs(x) do + + if v == 0 then + table.insert(res,0) + if #res >= len then break end + table.insert(res,0) + else + table.insert(res,v) + end + if #res >= len then break end + end + + for k,m in ipairs(res) do + io.write (m," ") + end + io.write ("\n") +end + +Dup2({ 1; 0; 2; 3; 0; 4; 5; 0}) +Dup2({ 1;2;3}) +Dup2({ 1;2;3;0}) +Dup2({ 0;0;1;2}) +Dup2({ 1;2;0;3;4}) -- cgit From d82f2717f86d5e3044508dcd38059ef9f9674daf Mon Sep 17 00:00:00 2001 From: HVukman Date: Sat, 9 Aug 2025 14:36:49 +0200 Subject: Create 333_p1.l --- challenge-333/hvukman/picolisp/333_p1.l | 39 +++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 challenge-333/hvukman/picolisp/333_p1.l diff --git a/challenge-333/hvukman/picolisp/333_p1.l b/challenge-333/hvukman/picolisp/333_p1.l new file mode 100644 index 0000000000..d8b55fc403 --- /dev/null +++ b/challenge-333/hvukman/picolisp/333_p1.l @@ -0,0 +1,39 @@ +(de dummy (X) + (mapcar * X 100000) +) + +(setq inp + (list (list (2 1) (2 3) (2 5) ) (list (1 4) (3 4) (10 4) ) + (list (0 0) (1 1) (2 3) ) + (list (1 1) (1 1) (1 1) ) + (mapcar dummy (list (1 1) (2 2) (3 3) )) + ) +) + +## caluclated the determinant between line 1, line 2 and 1 1 1 +(de straight (X) +(let + (P1 (get X 1) P2 (get X 2) P3 (get X 3) + x1 (get P1 1) x2 (get P2 1) + x3 (get P3 1) + y1 (get P1 2) y2 (get P2 2) + y3 (get P3 2) + ) + (if (= 0 + ( + (sum + (mapcar (quote (X) (apply * X )) + (list (list x1 y2 ) (list x2 y3 ) (list x3 y1 )))) + (sum - (mapcar (quote (X) (apply * X )) + (list (list x1 y3 ) (list x2 y1 ) (list x3 y2 ))))) + ) + (println 'true) + (println 'false) + ) +) +) + + +(for X inp + (straight X) +) + +#(load "perlpico/333_p1.l") -- cgit From 2f39da2aa6a6fc31dd7da0db19f0bf690a76c48d Mon Sep 17 00:00:00 2001 From: HVukman Date: Sat, 9 Aug 2025 14:39:18 +0200 Subject: Create 333_p2.l --- challenge-333/hvukman/picolisp/333_p2.l | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 challenge-333/hvukman/picolisp/333_p2.l diff --git a/challenge-333/hvukman/picolisp/333_p2.l b/challenge-333/hvukman/picolisp/333_p2.l new file mode 100644 index 0000000000..112fbb4807 --- /dev/null +++ b/challenge-333/hvukman/picolisp/333_p2.l @@ -0,0 +1,31 @@ + +(de dup (Z) +# link with made until length of z +(make +(for X (size Z) + (T (< (- (size Z) 1) (size (made)) ) (println (made)) ) + (cond + ( + (= 0 (get Z X)) + # insert 0 twice if 0 and does not excede length og input z + (link 0) + (if (> (size Z) (size (made)) ) + (link 0) + ) + ) + (T + (link (get Z X)) + ) + ) +) + (println (made)) +) +) + +(setq inp (list '(1 2 3) '(1 2 3 0) '(0 0 1 2) '(1 2 0 0 3))) + +(for X inp + (dup X) +) + +# (load "perlpico/333_p2.l") -- cgit