1. Porovnání (Interpolace)
Porovnání jednotlivých řešení po měkkém deadline prvního úkolu. Nejprve drobná příprava notebooku a dat.
using CSV, DataFrames"""
record_rank!(data_frame, column)
Pomocná hodnotící funkce přidělující body do sloupce `score` tabulky
`data_frame` podle pořadí ve sloupci `column` (seřazeném).
"""
function record_rank!(data_frame::DataFrame, column::Symbol)
rank = 1
value = first(data_frame[!, column])
for row in eachrow(data_frame)
if ismissing(row[column])
row[:score] += 42
continue
elseif ismissing(value)
value = row[column]
elseif row[column] != value
value = row[column]
rank += 1
end
row[:score] += rank
end
end;Načtení dat: odfiltrování nefunkčních odevzdání, smazání username, případných chybových výpisů a přidání "skórovacího" sloupce. Dále výpis základních statistik datasetu.
df = CSV.read("benchmark01.csv", DataFrame)
df[!, "score"] .= 0
filter!(row -> row.status == "ok", df)
select!(df, Not(:username, :error))
describe(df)| Row | variable | mean | min | median | max | nmissing | eltype |
|---|---|---|---|---|---|---|---|
| Symbol | Union… | Any | Union… | Any | Int64 | Type | |
| 1 | nick | Aldarin Stříbrný | Šedomír Poutník | 0 | DataString | ||
| 2 | src_code | 134.974 | 75 | 131.0 | 281 | 0 | Union{Missing, Int64} |
| 3 | src_comment | 62.3158 | 9 | 51.5 | 247 | 0 | Union{Missing, Int64} |
| 4 | constructor_check | 1.0 | true | 1.0 | true | 0 | Union{Missing, Bool} |
| 5 | evaluation_check | 1.0 | true | 1.0 | true | 0 | Union{Missing, Bool} |
| 6 | unsorted_check | 1.0 | true | 1.0 | true | 0 | Union{Missing, Bool} |
| 7 | bench_constructor_order_1_t | 241305.0 | 309.075 | 3.18239e5 | 403241.0 | 0 | Union{Missing, Float64} |
| 8 | bench_constructor_order_1_m | 5.32797e5 | 3600 | 637080.0 | 987112 | 0 | Union{Missing, Int64} |
| 9 | bench_constructor_order_1_c | 1.0 | true | 1.0 | true | 0 | Union{Missing, Bool} |
| 10 | bench_constructor_order_3_t | 1.10917e6 | 1670.2 | 1.19828e6 | 1.5358e6 | 0 | Union{Missing, Float64} |
| 11 | bench_constructor_order_3_m | 2.40212e6 | 7096 | 2.53034e6 | 3860784 | 0 | Union{Missing, Int64} |
| 12 | bench_constructor_order_3_c | 1.0 | true | 1.0 | true | 0 | Union{Missing, Bool} |
| 13 | bench_constructor_order_5_t | 2.40596e6 | 23274.0 | 2.5522e6 | 3.37662e6 | 0 | Union{Missing, Float64} |
| 14 | bench_constructor_order_5_m | 5.38125e6 | 47992 | 5.67316e6 | 8628824 | 0 | Union{Missing, Int64} |
| 15 | bench_constructor_order_5_c | 1.0 | true | 1.0 | true | 0 | Union{Missing, Bool} |
| 16 | bench_evaluation_order_3_t | 3501.29 | 2246.44 | 3631.81 | 7419.0 | 0 | Union{Missing, Float64} |
| 17 | bench_evaluation_order_3_m | 4863.16 | 2400 | 2400.0 | 20800 | 0 | Union{Missing, Int64} |
| 18 | bench_evaluation_order_3_c | 1.0 | true | 1.0 | true | 0 | Union{Missing, Bool} |
| 19 | bench_evaluation_order_5_t | 52462.2 | 24717.0 | 46057.0 | 1.0874e5 | 0 | Union{Missing, Float64} |
| 20 | bench_evaluation_order_5_m | 84584.4 | 31296 | 85104.0 | 187712 | 0 | Union{Missing, Int64} |
| 21 | bench_evaluation_order_5_c | 1.0 | true | 1.0 | true | 0 | Union{Missing, Bool} |
| 22 | status | ok | ok | 0 | DataString | ||
| 23 | score | 0.0 | 0 | 0.0 | 0 | 0 | Int64 |
Dále mezi hodnocené zařazuji i své odevzdání (nick kalvotom), kód vygenerovaný pomocí ChatGPT 6 (nick chatgpt) a Claude Opus 5.5. Kontrola splnění základních testů.
show(df[!, [:nick, :constructor_check, :evaluation_check, :unsorted_check]], allrows=true, allcols=true)38×4 DataFrame Row │ nick constructor_check evaluation_check unsorted_check │ DataStri… Bool? Bool? Bool? ─────┼────────────────────────────────────────────────────────────────────────────── 1 │ Torgun Dubový true true true 2 │ Šedomír Poutník true true true 3 │ Elfrid Měsíční true true true 4 │ Kilgar Zlatovous true true true 5 │ Semínek Zahradník true true true 6 │ Hnědoslav z Lesa true true true 7 │ Bunkin z Kopce true true true 8 │ Myrtila Houbařka true true true 9 │ Starý Hřibal true true true 10 │ Elowen Hvězdná true true true 11 │ Hargrim Kovář true true true 12 │ Bodlák Norovský true true true 13 │ Pírko z Pahorku true true true 14 │ Sylvána Rosná true true true 15 │ Bertolf z Horního Brodu true true true 16 │ Kořínek Lesní true true true 17 │ Brunhart Železný true true true 18 │ Měsíčka Medová true true true 19 │ Kouzlík Modrý true true true 20 │ Tasilo Podlesný true true true 21 │ Tilka z Vrbiny true true true 22 │ Bertram Brodský true true true 23 │ Aldarin Stříbrný true true true 24 │ Eldra Lucerna true true true 25 │ Kvítka Lipová true true true 26 │ Grondal Skalní true true true 27 │ Břečťanka Záhorská true true true 28 │ Kordel Hůrecký true true true 29 │ Svitomil Svícník true true true 30 │ Calien Jasná true true true 31 │ Bardur Kamenovous true true true 32 │ Baltazar Vousatý true true true 33 │ Hildora Kovadlinka true true true 34 │ Lupínka Zahradní true true true 35 │ Tarbin Čajovník true true true 36 │ kalvotom true true true 37 │ Claude Opus 5.5 true true true 38 │ ChatGPT true true true
Parametry kódu
Počet řádek kódu. Čím méně, tím lépe, což ale vždy neplatí, že. Měření pomocí nástroje cloc.
sort!(df, :src_code)
record_rank!(df, :src_code)
show(df[!,[:nick, :src_code, :score]], allrows=true)38×3 DataFrame Row │ nick src_code score │ DataStri… Int64? Int64 ─────┼────────────────────────────────────────── 1 │ Calien Jasná 75 1 2 │ Kilgar Zlatovous 89 2 3 │ Tilka z Vrbiny 94 3 4 │ Brunhart Železný 99 4 5 │ ChatGPT 99 4 6 │ Bunkin z Kopce 102 5 7 │ Kvítka Lipová 102 5 8 │ Hargrim Kovář 103 6 9 │ Tarbin Čajovník 103 6 10 │ Sylvána Rosná 104 7 11 │ Tasilo Podlesný 109 8 12 │ Bardur Kamenovous 110 9 13 │ Aldarin Stříbrný 111 10 14 │ Grondal Skalní 111 10 15 │ Semínek Zahradník 113 11 16 │ Šedomír Poutník 115 12 17 │ Hnědoslav z Lesa 117 13 18 │ Bodlák Norovský 129 14 19 │ Starý Hřibal 131 15 20 │ Elowen Hvězdná 131 15 21 │ Pírko z Pahorku 133 16 22 │ kalvotom 133 16 23 │ Myrtila Houbařka 135 17 24 │ Lupínka Zahradní 137 18 25 │ Svitomil Svícník 138 19 26 │ Břečťanka Záhorská 139 20 27 │ Torgun Dubový 142 21 28 │ Elfrid Měsíční 142 21 29 │ Bertram Brodský 143 22 30 │ Eldra Lucerna 143 22 31 │ Hildora Kovadlinka 151 23 32 │ Měsíčka Medová 152 24 33 │ Kořínek Lesní 154 25 34 │ Kouzlík Modrý 163 26 35 │ Baltazar Vousatý 175 27 36 │ Bertolf z Horního Brodu 245 28 37 │ Claude Opus 5.5 276 29 38 │ Kordel Hůrecký 281 30
Počet řádek komentářů (včetně docstringů). Zde naopak čím více, tím lépe.
sort!(df, :src_comment, rev=true)
record_rank!(df, :src_comment)
show(df[!,[:nick, :src_comment, :score]], allrows=true)38×3 DataFrame Row │ nick src_comment score │ DataStri… Int64? Int64 ─────┼───────────────────────────────────────────── 1 │ Bertolf z Horního Brodu 247 29 2 │ Claude Opus 5.5 160 31 3 │ Břečťanka Záhorská 126 23 4 │ Kvítka Lipová 112 9 5 │ Měsíčka Medová 106 29 6 │ Bertram Brodský 104 28 7 │ Kordel Hůrecký 84 37 8 │ Sylvána Rosná 82 15 9 │ Kouzlík Modrý 81 35 10 │ Bardur Kamenovous 76 19 11 │ Kořínek Lesní 75 36 12 │ Aldarin Stříbrný 67 22 13 │ Starý Hřibal 65 28 14 │ Lupínka Zahradní 65 31 15 │ Bodlák Norovský 64 28 16 │ Grondal Skalní 62 25 17 │ Pírko z Pahorku 62 31 18 │ kalvotom 55 32 19 │ Semínek Zahradník 52 28 20 │ Calien Jasná 51 19 21 │ Tasilo Podlesný 50 27 22 │ Eldra Lucerna 50 41 23 │ Elowen Hvězdná 49 35 24 │ Hildora Kovadlinka 48 44 25 │ Baltazar Vousatý 47 49 26 │ Kilgar Zlatovous 38 25 27 │ Elfrid Měsíční 35 45 28 │ Hnědoslav z Lesa 34 38 29 │ Hargrim Kovář 32 32 30 │ ChatGPT 31 31 31 │ Šedomír Poutník 27 40 32 │ Brunhart Železný 26 33 33 │ Torgun Dubový 25 51 34 │ Myrtila Houbařka 24 48 35 │ Svitomil Svícník 20 51 36 │ Tarbin Čajovník 17 39 37 │ Bunkin z Kopce 10 39 38 │ Tilka z Vrbiny 9 38
Float64: Konstruktor
Měření konstruktoru typicky obsahujícího kontroly a výpočet soustavy. Testujeme interpolaci řádu , a .
Řád , rychlost relativně k nejrychlejšímu (_t) a kontrola úspěšnosti (_c).
column_symbol = :bench_constructor_order_1_t
sort!(df, column_symbol)
df[!, column_symbol] /= df[1, column_symbol]
record_rank!(df, column_symbol)
show(df[!,[:nick, column_symbol, :score, :bench_constructor_order_1_c]], allrows=true, allcols=true)38×4 DataFrame Row │ nick bench_constructor_order_1_t score bench_constructor_order_1_c │ DataStri… Float64 Int64 Union{Missing, Bool} ─────┼────────────────────────────────────────────────────────────────────────────────────────── 1 │ Claude Opus 5.5 1.0 32 true 2 │ Bertolf z Horního Brodu 1.4255 31 true 3 │ Hnědoslav z Lesa 1.79279 41 true 4 │ kalvotom 13.8787 36 true 5 │ Svitomil Svícník 63.5023 56 true 6 │ Tilka z Vrbiny 76.4377 44 true 7 │ ChatGPT 77.6671 38 true 8 │ Tarbin Čajovník 79.094 47 true 9 │ Grondal Skalní 79.2574 34 true 10 │ Bertram Brodský 315.599 38 true 11 │ Kilgar Zlatovous 389.704 36 true 12 │ Bunkin z Kopce 1004.44 51 true 13 │ Šedomír Poutník 1004.81 53 true 14 │ Aldarin Stříbrný 1014.42 36 true 15 │ Sylvána Rosná 1015.93 30 true 16 │ Myrtila Houbařka 1021.32 64 true 17 │ Eldra Lucerna 1021.81 58 true 18 │ Semínek Zahradník 1023.88 46 true 19 │ Kvítka Lipová 1028.8 28 true 20 │ Starý Hřibal 1030.5 48 true 21 │ Brunhart Železný 1031.63 54 true 22 │ Kouzlík Modrý 1034.32 57 true 23 │ Torgun Dubový 1034.47 74 true 24 │ Tasilo Podlesný 1035.57 51 true 25 │ Elowen Hvězdná 1036.01 60 true 26 │ Kořínek Lesní 1041.44 62 true 27 │ Hargrim Kovář 1042.78 59 true 28 │ Bodlák Norovský 1043.42 56 true 29 │ Měsíčka Medová 1043.43 58 true 30 │ Pírko z Pahorku 1043.8 61 true 31 │ Břečťanka Záhorská 1063.35 54 true 32 │ Lupínka Zahradní 1074.03 63 true 33 │ Elfrid Měsíční 1075.91 78 true 34 │ Kordel Hůrecký 1103.35 71 true 35 │ Baltazar Vousatý 1122.12 84 true 36 │ Hildora Kovadlinka 1126.09 80 true 37 │ Calien Jasná 1146.14 56 true 38 │ Bardur Kamenovous 1304.67 57 true
A pak paměť ve stejném experimentu, čím méně, tím lépe.
column_symbol = :bench_constructor_order_1_m
sort!(df, column_symbol)
df[!, column_symbol] /= df[1, column_symbol]
record_rank!(df, column_symbol)
show(df[!,[:nick, column_symbol, :score, :bench_constructor_order_1_c]], allrows=true, allcols=true)38×4 DataFrame Row │ nick bench_constructor_order_1_m score bench_constructor_order_1_c │ DataStri… Float64 Int64 Union{Missing, Bool} ─────┼────────────────────────────────────────────────────────────────────────────────────────── 1 │ Claude Opus 5.5 1.0 33 true 2 │ Bertolf z Horního Brodu 1.25778 33 true 3 │ Hnědoslav z Lesa 1.25778 43 true 4 │ kalvotom 1.4 39 true 5 │ Svitomil Svícník 88.8689 60 true 6 │ Grondal Skalní 88.8822 39 true 7 │ Tilka z Vrbiny 90.1 50 true 8 │ Tarbin Čajovník 90.1311 54 true 9 │ ChatGPT 91.52 46 true 10 │ Bertram Brodský 93.3489 47 true 11 │ Kilgar Zlatovous 158.236 46 true 12 │ Baltazar Vousatý 176.227 95 true 13 │ Sylvána Rosná 176.484 42 true 14 │ Lupínka Zahradní 176.484 75 true 15 │ Břečťanka Záhorská 176.493 67 true 16 │ Brunhart Železný 176.498 68 true 17 │ Elowen Hvězdná 176.693 75 true 18 │ Kordel Hůrecký 176.742 87 true 19 │ Hildora Kovadlinka 176.964 97 true 20 │ Semínek Zahradník 176.969 64 true 21 │ Pírko z Pahorku 177.484 80 true 22 │ Hargrim Kovář 177.9 79 true 23 │ Aldarin Stříbrný 177.956 57 true 24 │ Šedomír Poutník 178.367 75 true 25 │ Eldra Lucerna 178.367 80 true 26 │ Myrtila Houbařka 178.42 87 true 27 │ Tasilo Podlesný 178.5 75 true 28 │ Torgun Dubový 178.562 99 true 29 │ Starý Hřibal 179.551 74 true 30 │ Kouzlík Modrý 180.627 84 true 31 │ Bunkin z Kopce 180.898 79 true 32 │ Kvítka Lipová 180.898 56 true 33 │ Kořínek Lesní 180.898 90 true 34 │ Calien Jasná 180.911 85 true 35 │ Bodlák Norovský 181.107 86 true 36 │ Elfrid Měsíční 181.871 109 true 37 │ Měsíčka Medová 181.898 90 true 38 │ Bardur Kamenovous 274.198 90 true
Řád , rychlost relativně k nejrychlejšímu (_t) a kontrola úspěšnosti (_c).
column_symbol = :bench_constructor_order_3_t
sort!(df, column_symbol)
df[!, column_symbol] /= df[1, column_symbol]
record_rank!(df, column_symbol)
show(df[!,[:nick, column_symbol, :score, :bench_constructor_order_3_c]], allrows=true, allcols=true)38×4 DataFrame Row │ nick bench_constructor_order_3_t score bench_constructor_order_3_c │ DataStri… Float64 Int64 Union{Missing, Bool} ─────┼────────────────────────────────────────────────────────────────────────────────────────── 1 │ Claude Opus 5.5 1.0 34 true 2 │ Bertolf z Horního Brodu 1.40103 35 true 3 │ Bertram Brodský 166.09 50 true 4 │ Kilgar Zlatovous 286.807 50 true 5 │ Elfrid Měsíční 649.382 114 true 6 │ Hnědoslav z Lesa 665.153 49 true 7 │ Šedomír Poutník 667.858 82 true 8 │ Lupínka Zahradní 683.496 83 true 9 │ Semínek Zahradník 687.986 73 true 10 │ Torgun Dubový 694.48 109 true 11 │ Bunkin z Kopce 697.215 90 true 12 │ Kouzlík Modrý 698.208 96 true 13 │ Brunhart Železný 700.887 81 true 14 │ Aldarin Stříbrný 711.168 71 true 15 │ Myrtila Houbařka 711.732 102 true 16 │ Pírko z Pahorku 712.337 96 true 17 │ Tilka z Vrbiny 716.339 67 true 18 │ Starý Hřibal 716.591 92 true 19 │ Hargrim Kovář 716.597 98 true 20 │ Eldra Lucerna 718.294 100 true 21 │ Elowen Hvězdná 718.343 96 true 22 │ Kořínek Lesní 721.173 112 true 23 │ Tasilo Podlesný 722.187 98 true 24 │ Grondal Skalní 725.456 63 true 25 │ Sylvána Rosná 725.936 67 true 26 │ Měsíčka Medová 728.819 116 true 27 │ Kvítka Lipová 729.695 83 true 28 │ Bodlák Norovský 733.537 114 true 29 │ Břečťanka Záhorská 740.288 96 true 30 │ Svitomil Svícník 743.975 90 true 31 │ Tarbin Čajovník 748.018 85 true 32 │ Baltazar Vousatý 749.697 127 true 33 │ ChatGPT 750.174 79 true 34 │ Hildora Kovadlinka 752.061 131 true 35 │ kalvotom 756.44 74 true 36 │ Calien Jasná 763.524 121 true 37 │ Bardur Kamenovous 903.616 127 true 38 │ Kordel Hůrecký 919.531 125 true
A pak paměť ve stejném experimentu, čím méně, tím lépe.
column_symbol = :bench_constructor_order_3_m
sort!(df, column_symbol)
df[!, column_symbol] /= df[1, column_symbol]
record_rank!(df, column_symbol)
show(df[!,[:nick, column_symbol, :score, :bench_constructor_order_3_c]], allrows=true, allcols=true)38×4 DataFrame Row │ nick bench_constructor_order_3_m score bench_constructor_order_3_c │ DataStri… Float64 Int64 Union{Missing, Bool} ─────┼────────────────────────────────────────────────────────────────────────────────────────── 1 │ Claude Opus 5.5 1.0 35 true 2 │ Bertolf z Horního Brodu 2.19955 37 true 3 │ Bertram Brodský 112.478 53 true 4 │ Kilgar Zlatovous 266.556 54 true 5 │ Lupínka Zahradní 355.406 88 true 6 │ Svitomil Svícník 355.406 95 true 7 │ Břečťanka Záhorská 355.41 102 true 8 │ Brunhart Železný 355.413 88 true 9 │ Grondal Skalní 355.413 70 true 10 │ Elowen Hvězdná 355.738 104 true 11 │ Semínek Zahradník 355.869 82 true 12 │ Hildora Kovadlinka 355.876 141 true 13 │ kalvotom 355.941 85 true 14 │ Hargrim Kovář 356.124 110 true 15 │ Pírko z Pahorku 356.149 109 true 16 │ Tilka z Vrbiny 356.266 81 true 17 │ Tarbin Čajovník 356.282 100 true 18 │ Myrtila Houbařka 356.397 118 true 19 │ Šedomír Poutník 356.587 99 true 20 │ Eldra Lucerna 356.587 117 true 21 │ Tasilo Podlesný 356.655 116 true 22 │ Starý Hřibal 356.962 111 true 23 │ ChatGPT 356.986 99 true 24 │ Baltazar Vousatý 357.954 148 true 25 │ Aldarin Stříbrný 359.293 93 true 26 │ Kouzlík Modrý 360.632 119 true 27 │ Sylvána Rosná 360.736 91 true 28 │ Torgun Dubový 363.316 134 true 29 │ Bunkin z Kopce 363.422 116 true 30 │ Kořínek Lesní 363.422 138 true 31 │ Měsíčka Medová 364.165 143 true 32 │ Kvítka Lipová 366.073 111 true 33 │ Calien Jasná 366.08 150 true 34 │ Bodlák Norovský 366.188 144 true 35 │ Hnědoslav z Lesa 366.53 80 true 36 │ Elfrid Měsíční 368.157 146 true 37 │ Kordel Hůrecký 445.913 158 true 38 │ Bardur Kamenovous 544.079 161 true
Řád , rychlost relativně k nejrychlejšímu (_t) a kontrola úspěšnosti (_c).
column_symbol = :bench_constructor_order_3_t
sort!(df, column_symbol)
df[!, column_symbol] /= df[1, column_symbol]
record_rank!(df, column_symbol)
show(df[!,[:nick, column_symbol, :score, :bench_constructor_order_3_c]], allrows=true, allcols=true)38×4 DataFrame Row │ nick bench_constructor_order_3_t score bench_constructor_order_3_c │ DataStri… Float64 Int64 Union{Missing, Bool} ─────┼────────────────────────────────────────────────────────────────────────────────────────── 1 │ Claude Opus 5.5 1.0 36 true 2 │ Bertolf z Horního Brodu 1.40103 39 true 3 │ Bertram Brodský 166.09 56 true 4 │ Kilgar Zlatovous 286.807 58 true 5 │ Elfrid Měsíční 649.382 151 true 6 │ Hnědoslav z Lesa 665.153 86 true 7 │ Šedomír Poutník 667.858 106 true 8 │ Lupínka Zahradní 683.496 96 true 9 │ Semínek Zahradník 687.986 91 true 10 │ Torgun Dubový 694.48 144 true 11 │ Bunkin z Kopce 697.215 127 true 12 │ Kouzlík Modrý 698.208 131 true 13 │ Brunhart Železný 700.887 101 true 14 │ Aldarin Stříbrný 711.168 107 true 15 │ Myrtila Houbařka 711.732 133 true 16 │ Pírko z Pahorku 712.337 125 true 17 │ Tilka z Vrbiny 716.339 98 true 18 │ Starý Hřibal 716.591 129 true 19 │ Hargrim Kovář 716.597 129 true 20 │ Eldra Lucerna 718.294 137 true 21 │ Elowen Hvězdná 718.343 125 true 22 │ Kořínek Lesní 721.173 160 true 23 │ Tasilo Podlesný 722.187 139 true 24 │ Grondal Skalní 725.456 94 true 25 │ Sylvána Rosná 725.936 116 true 26 │ Měsíčka Medová 728.819 169 true 27 │ Kvítka Lipová 729.695 138 true 28 │ Bodlák Norovský 733.537 172 true 29 │ Břečťanka Záhorská 740.288 131 true 30 │ Svitomil Svícník 743.975 125 true 31 │ Tarbin Čajovník 748.018 131 true 32 │ Baltazar Vousatý 749.697 180 true 33 │ ChatGPT 750.174 132 true 34 │ Hildora Kovadlinka 752.061 175 true 35 │ kalvotom 756.44 120 true 36 │ Calien Jasná 763.524 186 true 37 │ Bardur Kamenovous 903.616 198 true 38 │ Kordel Hůrecký 919.531 196 true
A pak paměť ve stejném experimentu, čím méně, tím lépe.
column_symbol = :bench_constructor_order_5_m
sort!(df, column_symbol)
df[!, column_symbol] /= df[1, column_symbol]
record_rank!(df, column_symbol)
show(df[!,[:nick, column_symbol, :score, :bench_constructor_order_5_c]], allrows=true, allcols=true)38×4 DataFrame Row │ nick bench_constructor_order_5_m score bench_constructor_order_5_c │ DataStri… Float64 Int64 Union{Missing, Bool} ─────┼────────────────────────────────────────────────────────────────────────────────────────── 1 │ Bertolf z Horního Brodu 1.0 40 true 2 │ Claude Opus 5.5 1.92932 38 true 3 │ Bertram Brodský 28.3724 59 true 4 │ Kilgar Zlatovous 81.4154 62 true 5 │ Lupínka Zahradní 118.003 101 true 6 │ Svitomil Svícník 118.003 130 true 7 │ Břečťanka Záhorská 118.003 137 true 8 │ Brunhart Železný 118.004 108 true 9 │ Grondal Skalní 118.004 101 true 10 │ Elowen Hvězdná 118.085 133 true 11 │ Semínek Zahradník 118.104 100 true 12 │ Hildora Kovadlinka 118.105 185 true 13 │ Hargrim Kovář 118.109 140 true 14 │ kalvotom 118.115 132 true 15 │ Pírko z Pahorku 118.146 138 true 16 │ Myrtila Houbařka 118.15 147 true 17 │ Tilka z Vrbiny 118.164 113 true 18 │ Tarbin Čajovník 118.166 147 true 19 │ Šedomír Poutník 118.211 123 true 20 │ Eldra Lucerna 118.211 154 true 21 │ Tasilo Podlesný 118.221 157 true 22 │ Starý Hřibal 118.233 148 true 23 │ ChatGPT 118.27 152 true 24 │ Baltazar Vousatý 118.907 201 true 25 │ Aldarin Stříbrný 119.173 129 true 26 │ Kouzlík Modrý 119.369 154 true 27 │ Sylvána Rosná 119.841 140 true 28 │ Bunkin z Kopce 120.305 152 true 29 │ Kořínek Lesní 120.305 185 true 30 │ Měsíčka Medová 120.448 195 true 31 │ Torgun Dubový 121.123 171 true 32 │ Kvítka Lipová 121.219 166 true 33 │ Calien Jasná 121.22 215 true 34 │ Bodlák Norovský 121.237 202 true 35 │ Hnědoslav z Lesa 121.32 117 true 36 │ Elfrid Měsíční 121.764 183 true 37 │ Kordel Hůrecký 157.816 229 true 38 │ Bardur Kamenovous 179.797 232 true
Float64: Vyhodnocování řád
Vyhodnocování funkční hodnoty po vytvoření objektu, v několika bodech. Stupeň polynomů nejvýše .
column_symbol = :bench_evaluation_order_3_t
sort!(df, column_symbol)
df[!, column_symbol] /= df[1, column_symbol]
record_rank!(df, column_symbol)
show(df[!,[:nick, column_symbol, :score, :bench_evaluation_order_3_c]], allrows=true, allcols=true)38×4 DataFrame Row │ nick bench_evaluation_order_3_t score bench_evaluation_order_3_c │ DataStri… Float64 Int64 Union{Missing, Bool} ─────┼──────────────────────────────────────────────────────────────────────────────────────── 1 │ kalvotom 1.0 133 true 2 │ Lupínka Zahradní 1.00445 103 true 3 │ Svitomil Svícník 1.00594 133 true 4 │ Claude Opus 5.5 1.0094 42 true 5 │ Elfrid Měsíční 1.01736 188 true 6 │ Kvítka Lipová 1.01983 172 true 7 │ Grondal Skalní 1.04412 108 true 8 │ Torgun Dubový 1.05703 179 true 9 │ Myrtila Houbařka 1.05901 156 true 10 │ Starý Hřibal 1.15763 158 true 11 │ Měsíčka Medová 1.17841 206 true 12 │ Tasilo Podlesný 1.21209 169 true 13 │ Šedomír Poutník 1.22099 136 true 14 │ Eldra Lucerna 1.23489 168 true 15 │ Calien Jasná 1.26763 230 true 16 │ Kouzlík Modrý 1.40711 170 true 17 │ Bertolf z Horního Brodu 1.42665 57 true 18 │ Bunkin z Kopce 1.50243 170 true 19 │ Kořínek Lesní 1.60554 204 true 20 │ Tilka z Vrbiny 1.62785 133 true 21 │ Bertram Brodský 1.63119 80 true 22 │ Tarbin Čajovník 1.6446 169 true 23 │ ChatGPT 1.64738 175 true 24 │ Brunhart Železný 1.65573 132 true 25 │ Hargrim Kovář 1.65962 165 true 26 │ Kilgar Zlatovous 1.6624 88 true 27 │ Sylvána Rosná 1.71093 167 true 28 │ Hildora Kovadlinka 1.75666 213 true 29 │ Hnědoslav z Lesa 1.75883 146 true 30 │ Elowen Hvězdná 1.77169 163 true 31 │ Semínek Zahradník 1.78677 131 true 32 │ Aldarin Stříbrný 1.79172 161 true 33 │ Pírko z Pahorku 1.79901 171 true 34 │ Baltazar Vousatý 1.97258 235 true 35 │ Břečťanka Záhorská 2.01553 172 true 36 │ Bardur Kamenovous 2.72423 268 true 37 │ Kordel Hůrecký 2.87663 266 true 38 │ Bodlák Norovský 3.30255 240 true
A pak paměť, čím méně, tím lépe.
column_symbol = :bench_evaluation_order_3_m
sort!(df, column_symbol)
df[!, column_symbol] /= df[1, column_symbol]
record_rank!(df, column_symbol)
show(df[!,[:nick, column_symbol, :score, :bench_evaluation_order_3_c]], allrows=true, allcols=true)38×4 DataFrame Row │ nick bench_evaluation_order_3_m score bench_evaluation_order_3_c │ DataStri… Float64 Int64 Union{Missing, Bool} ─────┼──────────────────────────────────────────────────────────────────────────────────────── 1 │ kalvotom 1.0 134 true 2 │ Lupínka Zahradní 1.0 104 true 3 │ Svitomil Svícník 1.0 134 true 4 │ Claude Opus 5.5 1.0 43 true 5 │ Elfrid Měsíční 1.0 189 true 6 │ Kvítka Lipová 1.0 173 true 7 │ Grondal Skalní 1.0 109 true 8 │ Torgun Dubový 1.0 180 true 9 │ Myrtila Houbařka 1.0 157 true 10 │ Starý Hřibal 1.0 159 true 11 │ Měsíčka Medová 1.0 207 true 12 │ Tasilo Podlesný 1.0 170 true 13 │ Šedomír Poutník 1.0 137 true 14 │ Eldra Lucerna 1.0 169 true 15 │ Kouzlík Modrý 1.0 171 true 16 │ Bunkin z Kopce 1.0 171 true 17 │ Kořínek Lesní 1.0 205 true 18 │ Elowen Hvězdná 1.0 164 true 19 │ Semínek Zahradník 1.0 132 true 20 │ Aldarin Stříbrný 1.0 162 true 21 │ Pírko z Pahorku 1.0 172 true 22 │ Bertolf z Horního Brodu 2.33333 59 true 23 │ Bertram Brodský 2.33333 82 true 24 │ Sylvána Rosná 2.33333 169 true 25 │ Baltazar Vousatý 2.33333 237 true 26 │ Tilka z Vrbiny 2.66667 136 true 27 │ Tarbin Čajovník 2.66667 172 true 28 │ ChatGPT 2.66667 178 true 29 │ Brunhart Železný 2.66667 135 true 30 │ Kilgar Zlatovous 2.66667 91 true 31 │ Břečťanka Záhorská 2.66667 175 true 32 │ Calien Jasná 3.0 234 true 33 │ Hargrim Kovář 3.0 169 true 34 │ Hildora Kovadlinka 3.0 217 true 35 │ Hnědoslav z Lesa 3.0 150 true 36 │ Kordel Hůrecký 4.0 271 true 37 │ Bardur Kamenovous 6.0 274 true 38 │ Bodlák Norovský 8.66667 247 true
BigFloat: Vyhodnocování řád
Vyhodnocování funkční hodnoty po vytvoření objektu, v několika bodech. Stupeň polynomů nejvýše , datový typ BigFloat.
column_symbol = :bench_evaluation_order_5_t
sort!(df, column_symbol)
df[!, column_symbol] /= df[1, column_symbol]
record_rank!(df, column_symbol)
show(df[!,[:nick, column_symbol, :score, :bench_evaluation_order_5_c]], allrows=true, allcols=true)38×4 DataFrame Row │ nick bench_evaluation_order_5_t score bench_evaluation_order_5_c │ DataStri… Float64 Int64 Union{Missing, Bool} ─────┼──────────────────────────────────────────────────────────────────────────────────────── 1 │ Kvítka Lipová 1.0 174 true 2 │ Claude Opus 5.5 1.04216 45 true 3 │ kalvotom 1.064 137 true 4 │ Calien Jasná 1.07153 238 true 5 │ Hargrim Kovář 1.08391 174 true 6 │ Bertram Brodský 1.10333 88 true 7 │ Svitomil Svícník 1.12404 141 true 8 │ Grondal Skalní 1.12522 117 true 9 │ Brunhart Železný 1.15277 144 true 10 │ Torgun Dubový 1.26872 190 true 11 │ Lupínka Zahradní 1.2894 115 true 12 │ Hnědoslav z Lesa 1.35587 162 true 13 │ Elfrid Měsíční 1.38387 202 true 14 │ Tarbin Čajovník 1.38751 186 true 15 │ Kilgar Zlatovous 1.45297 106 true 16 │ Bertolf z Horního Brodu 1.56463 75 true 17 │ Bunkin z Kopce 1.62261 188 true 18 │ ChatGPT 1.68216 196 true 19 │ Tilka z Vrbiny 1.74989 155 true 20 │ Myrtila Houbařka 1.97686 177 true 21 │ Starý Hřibal 2.53866 180 true 22 │ Šedomír Poutník 2.56746 159 true 23 │ Měsíčka Medová 2.58529 230 true 24 │ Tasilo Podlesný 2.58895 194 true 25 │ Eldra Lucerna 2.608 194 true 26 │ Sylvána Rosná 2.61488 195 true 27 │ Hildora Kovadlinka 2.63313 244 true 28 │ Baltazar Vousatý 2.77052 265 true 29 │ Aldarin Stříbrný 2.86337 191 true 30 │ Bardur Kamenovous 2.87511 304 true 31 │ Pírko z Pahorku 2.91401 203 true 32 │ Elowen Hvězdná 2.94585 196 true 33 │ Kořínek Lesní 2.96917 238 true 34 │ Kordel Hůrecký 3.15277 305 true 35 │ Kouzlík Modrý 3.34935 206 true 36 │ Semínek Zahradník 3.43126 168 true 37 │ Bodlák Norovský 4.34693 284 true 38 │ Břečťanka Záhorská 4.39942 213 true
A pak paměť, čím méně, tím lépe.
column_symbol = :bench_evaluation_order_5_m
sort!(df, column_symbol)
df[!, column_symbol] /= df[1, column_symbol]
record_rank!(df, column_symbol)
show(df[!,[:nick, column_symbol, :score, :bench_evaluation_order_5_c]], allrows=true, allcols=true)38×4 DataFrame Row │ nick bench_evaluation_order_5_m score bench_evaluation_order_5_c │ DataStri… Float64 Int64 Union{Missing, Bool} ─────┼──────────────────────────────────────────────────────────────────────────────────────── 1 │ Kvítka Lipová 1.0 175 true 2 │ Bertram Brodský 1.10276 90 true 3 │ Claude Opus 5.5 1.15337 48 true 4 │ Hargrim Kovář 1.15389 178 true 5 │ Calien Jasná 1.17894 243 true 6 │ Kilgar Zlatovous 1.43456 112 true 7 │ Bertolf z Horního Brodu 1.56237 82 true 8 │ kalvotom 1.76687 145 true 9 │ Brunhart Železný 1.89519 153 true 10 │ Svitomil Svícník 1.92025 151 true 11 │ Grondal Skalní 1.92025 127 true 12 │ Elfrid Měsíční 2.04806 213 true 13 │ Torgun Dubový 2.22699 202 true 14 │ Lupínka Zahradní 2.22699 127 true 15 │ Bunkin z Kopce 2.22699 200 true 16 │ ChatGPT 2.35532 209 true 17 │ Tilka z Vrbiny 2.35532 168 true 18 │ Hnědoslav z Lesa 2.38088 176 true 19 │ Tarbin Čajovník 2.50869 201 true 20 │ Bardur Kamenovous 2.92996 320 true 21 │ Myrtila Houbařka 3.30061 194 true 22 │ Starý Hřibal 3.41564 198 true 23 │ Šedomír Poutník 3.41564 177 true 24 │ Měsíčka Medová 3.41564 248 true 25 │ Tasilo Podlesný 3.41564 212 true 26 │ Eldra Lucerna 3.41564 212 true 27 │ Aldarin Stříbrný 3.41564 209 true 28 │ Pírko z Pahorku 3.41564 221 true 29 │ Elowen Hvězdná 3.41564 214 true 30 │ Kořínek Lesní 3.41564 256 true 31 │ Kouzlík Modrý 3.41564 224 true 32 │ Semínek Zahradník 3.41564 186 true 33 │ Sylvána Rosná 3.51789 214 true 34 │ Baltazar Vousatý 3.5184 285 true 35 │ Hildora Kovadlinka 3.59458 265 true 36 │ Kordel Hůrecký 3.62065 327 true 37 │ Bodlák Norovský 4.23364 307 true 38 │ Břečťanka Záhorská 5.99796 237 true
Závěrečná tabulka
Zaznamenávali jsme v každé kategorii (sdílené) pořadí. Čím nižší hodnota, tím lepší výsledek.
sort!(df, :score)
show(df[!,[:nick, :score]], allrows=true)38×2 DataFrame Row │ nick score │ DataStri… Int64 ─────┼──────────────────────────────── 1 │ Claude Opus 5.5 48 2 │ Bertolf z Horního Brodu 82 3 │ Bertram Brodský 90 4 │ Kilgar Zlatovous 112 5 │ Grondal Skalní 127 6 │ Lupínka Zahradní 127 7 │ kalvotom 145 8 │ Svitomil Svícník 151 9 │ Brunhart Železný 153 10 │ Tilka z Vrbiny 168 11 │ Kvítka Lipová 175 12 │ Hnědoslav z Lesa 176 13 │ Šedomír Poutník 177 14 │ Hargrim Kovář 178 15 │ Semínek Zahradník 186 16 │ Myrtila Houbařka 194 17 │ Starý Hřibal 198 18 │ Bunkin z Kopce 200 19 │ Tarbin Čajovník 201 20 │ Torgun Dubový 202 21 │ ChatGPT 209 22 │ Aldarin Stříbrný 209 23 │ Tasilo Podlesný 212 24 │ Eldra Lucerna 212 25 │ Elfrid Měsíční 213 26 │ Elowen Hvězdná 214 27 │ Sylvána Rosná 214 28 │ Pírko z Pahorku 221 29 │ Kouzlík Modrý 224 30 │ Břečťanka Záhorská 237 31 │ Calien Jasná 243 32 │ Měsíčka Medová 248 33 │ Kořínek Lesní 256 34 │ Hildora Kovadlinka 265 35 │ Baltazar Vousatý 285 36 │ Bodlák Norovský 307 37 │ Bardur Kamenovous 320 38 │ Kordel Hůrecký 327