3. Porovnání (Definitnost matic)
Porovnání jednotlivých řešení po tvrdém deadline druhého úkolu.
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, smazání username a přidání "skórovacího" sloupce a výpis základních statistik datasetu.
df = CSV.read("benchmark03.csv", DataFrame)
df[!, "score"] .= 0
select!(df, Not(:username))
describe(df)| Row | variable | mean | min | median | max | nmissing | eltype |
|---|---|---|---|---|---|---|---|
| Symbol | Union… | Any | Union… | Any | Int64 | Type | |
| 1 | nick | Aeloria of the Seven Sigils | kalvotom | 0 | String | ||
| 2 | rat_correct | 0.403846 | false | 0.0 | true | 0 | Bool |
| 3 | ispd_f64_t | 5.82276e5 | 3780.44 | 312039.0 | 6.19825e6 | 11 | Union{Missing, Float64} |
| 4 | ispd_f64_m | 1.20761e6 | 112 | 197456.0 | 37107288 | 11 | Union{Missing, Int64} |
| 5 | ispsd_f64_t | 5.69018e5 | 3826.11 | 3.12424e5 | 6.96396e6 | 11 | Union{Missing, Float64} |
| 6 | ispsd_f64_m | 1.07848e6 | 240 | 197456.0 | 37107288 | 11 | Union{Missing, Int64} |
| 7 | isid_f64_t | 6.9111e5 | 4.479 | 334853.0 | 6.00203e6 | 11 | Union{Missing, Float64} |
| 8 | isid_f64_m | 1.36837e6 | 0 | 197456.0 | 37107288 | 11 | Union{Missing, Int64} |
| 9 | ispd_hilbert_t | 3.3958e6 | 252818.0 | 2.06826e6 | 8.61048e6 | 32 | Union{Missing, Float64} |
| 10 | ispd_hilbert_m | 4.45451e6 | 446344 | 2.63175e6 | 9947904 | 32 | Union{Missing, Int64} |
| 11 | ispd_hilbert_c | 0.384615 | false | 0.0 | true | 0 | Bool |
| 12 | 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 (nick chatgpt).
Správnost v exaktní aritmetice
Správnost na malé matici s velmi malými racionálními vlastními čísly. Přístupy založené na vlastních číslech počítaných numerickým algoritmem ve strojových číslech zde selžou.
sort!(df, :rat_correct, rev=true)
record_rank!(df, :rat_correct)
show(df[!,[:nick, :rat_correct, :score]], allrows=true)52×3 DataFrame Row │ nick rat_correct score │ String Bool Int64 ─────┼─────────────────────────────────────────────────────── 1 │ kalvotom true 1 2 │ Morvain Duskwalker true 1 3 │ Eldaric Runehand true 1 4 │ Lyssara Moonveil true 1 5 │ Korvath the Obsidian true 1 6 │ Mirelda Starbloom true 1 7 │ Zerathorn the Pale true 1 8 │ Vyrion the Eternal true 1 9 │ Maerilith Stormweaver true 1 10 │ Sareth the Verdant true 1 11 │ Lunara Dreambinder true 1 12 │ Rhovar Mistborn true 1 13 │ Talmek the Shattered true 1 14 │ Vessryn Bloodsong true 1 15 │ Eldwyn of the Shimmering Vale true 1 16 │ Ivenar Spellforge true 1 17 │ Selvethra of the Whispering Woods true 1 18 │ Althira Starweaver true 1 19 │ Valtheris of the Amber Flame true 1 20 │ Gorvath Ironchant true 1 21 │ Xandor the Arcane true 1 22 │ chatgpt false 2 23 │ Aldorin the Luminous false 2 24 │ Seraphyne Windwhisper false 2 25 │ Thamior Embercloak false 2 26 │ Velindra the Azure false 2 27 │ Thalendir Brightflame false 2 28 │ Orlien Silverchant false 2 29 │ Faelora Nightbloom false 2 30 │ Galdur the Wise false 2 31 │ Elithar Dawnseeker false 2 32 │ Caelwyn of the Crystal Spire false 2 33 │ Tirvian Shadowmantle false 2 34 │ Erenwyn the Whispering false 2 35 │ Orren Emberforge false 2 36 │ Korthen Deepflame false 2 37 │ Aeloria of the Seven Sigils false 2 38 │ Dravok the Gloomed false 2 39 │ Velmaris Lightbinder false 2 40 │ Nimriel the Golden false 2 41 │ Sylthara the Veiled false 2 42 │ Ilyrien Dawnpetal false 2 43 │ Maranelle Frostpetal false 2 44 │ Zytherin the Forgotten false 2 45 │ Cyralis Moonbinder false 2 46 │ Thauren the Wandering false 2 47 │ Kerron the Unseen false 2 48 │ Dromek the Bound false 2 49 │ Nysera Cloudveil false 2 50 │ Bramor the Tempest false 2 51 │ Talvorn Runebreaker false 2 52 │ Yseline Frostwhisper false 2
Větší () matice s Float64 prvky
Časová a paměťová náročnost výpočtu na matici s prvky strojov7mi čísly. Případ PD.
sort!(df, :ispd_f64_t)
df[!, :ispd_f64_t] /= df[1, :ispd_f64_t]
record_rank!(df, :ispd_f64_t)
show(df[!,[:nick, :ispd_f64_t, :score]], allrows=true)52×3 DataFrame Row │ nick ispd_f64_t score │ String Float64? Int64 ─────┼───────────────────────────────────────────────────────── 1 │ Xandor the Arcane 1.0 2 2 │ Eldaric Runehand 2.15424 3 3 │ Vessryn Bloodsong 3.28885 4 4 │ Thauren the Wandering 8.14931 6 5 │ Aeloria of the Seven Sigils 9.26769 7 6 │ Orlien Silverchant 48.6258 8 7 │ Korvath the Obsidian 50.6824 8 8 │ Yseline Frostwhisper 71.0173 10 9 │ Sylthara the Veiled 72.0135 11 10 │ Bramor the Tempest 75.8779 12 11 │ Talvorn Runebreaker 75.9072 13 12 │ Gorvath Ironchant 76.8836 13 13 │ Rhovar Mistborn 77.0489 14 14 │ Cyralis Moonbinder 77.2848 16 15 │ Eldwyn of the Shimmering Vale 78.007 16 16 │ Selvethra of the Whispering Woods 78.2601 17 17 │ Lyssara Moonveil 80.4891 18 18 │ Galdur the Wise 80.5157 20 19 │ Caelwyn of the Crystal Spire 81.112 21 20 │ Kerron the Unseen 82.2685 22 21 │ Maerilith Stormweaver 82.5403 22 22 │ Zerathorn the Pale 82.731 23 23 │ Ivenar Spellforge 83.2556 24 24 │ Maranelle Frostpetal 83.8362 26 25 │ Korthen Deepflame 85.172 27 26 │ Elithar Dawnseeker 85.2143 28 27 │ Faelora Nightbloom 88.0793 29 28 │ Dravok the Gloomed 88.4487 30 29 │ Valtheris of the Amber Flame 99.0749 30 30 │ kalvotom 137.365 31 31 │ Nimriel the Golden 206.041 33 32 │ Dromek the Bound 227.281 34 33 │ Talmek the Shattered 228.29 34 34 │ Mirelda Starbloom 230.773 35 35 │ Sareth the Verdant 231.245 36 36 │ Orren Emberforge 231.326 38 37 │ Lunara Dreambinder 232.901 38 38 │ Tirvian Shadowmantle 241.098 40 39 │ Vyrion the Eternal 246.327 40 40 │ Althira Starweaver 554.54 41 41 │ Morvain Duskwalker 1639.56 42 42 │ chatgpt missing 44 43 │ Aldorin the Luminous missing 44 44 │ Seraphyne Windwhisper missing 44 45 │ Thamior Embercloak missing 44 46 │ Velindra the Azure missing 44 47 │ Thalendir Brightflame missing 44 48 │ Erenwyn the Whispering missing 44 49 │ Velmaris Lightbinder missing 44 50 │ Ilyrien Dawnpetal missing 44 51 │ Zytherin the Forgotten missing 44 52 │ Nysera Cloudveil missing 44
sort!(df, :ispd_f64_m)
record_rank!(df, :ispd_f64_m)
show(df[!, [:nick, :ispd_f64_m, :score]], allrows=true)52×3 DataFrame Row │ nick ispd_f64_m score │ String Int64? Int64 ─────┼────────────────────────────────────────────────────── 1 │ Xandor the Arcane 112 3 2 │ Vessryn Bloodsong 81240 6 3 │ Aeloria of the Seven Sigils 81896 10 4 │ kalvotom 81944 35 5 │ Eldaric Runehand 82120 8 6 │ Orlien Silverchant 117368 14 7 │ Yseline Frostwhisper 117368 16 8 │ Cyralis Moonbinder 117368 22 9 │ Selvethra of the Whispering Woods 117368 23 10 │ Lyssara Moonveil 117368 24 11 │ Galdur the Wise 117368 26 12 │ Talvorn Runebreaker 117480 20 13 │ Dravok the Gloomed 119160 38 14 │ Eldwyn of the Shimmering Vale 119288 25 15 │ Valtheris of the Amber Flame 119448 40 16 │ Maerilith Stormweaver 121096 33 17 │ Thauren the Wandering 160192 18 18 │ Korvath the Obsidian 181920 21 19 │ Bramor the Tempest 197456 26 20 │ Gorvath Ironchant 197456 27 21 │ Rhovar Mistborn 197456 28 22 │ Caelwyn of the Crystal Spire 197456 35 23 │ Kerron the Unseen 197456 36 24 │ Zerathorn the Pale 197456 37 25 │ Ivenar Spellforge 197456 38 26 │ Maranelle Frostpetal 197456 40 27 │ Elithar Dawnseeker 197456 42 28 │ Faelora Nightbloom 197456 43 29 │ Sylthara the Veiled 197472 26 30 │ Korthen Deepflame 197536 43 31 │ Talmek the Shattered 277496 51 32 │ Mirelda Starbloom 277496 52 33 │ Tirvian Shadowmantle 277496 57 34 │ Nimriel the Golden 277528 51 35 │ Sareth the Verdant 277528 54 36 │ Lunara Dreambinder 277528 56 37 │ Vyrion the Eternal 277528 58 38 │ Dromek the Bound 277544 53 39 │ Orren Emberforge 278424 58 40 │ Althira Starweaver 5566456 62 41 │ Morvain Duskwalker 37107288 64 42 │ chatgpt missing 86 43 │ Aldorin the Luminous missing 86 44 │ Seraphyne Windwhisper missing 86 45 │ Thamior Embercloak missing 86 46 │ Velindra the Azure missing 86 47 │ Thalendir Brightflame missing 86 48 │ Erenwyn the Whispering missing 86 49 │ Velmaris Lightbinder missing 86 50 │ Ilyrien Dawnpetal missing 86 51 │ Zytherin the Forgotten missing 86 52 │ Nysera Cloudveil missing 86
Případ PSD.
sort!(df, :ispsd_f64_t)
df[!, :ispsd_f64_t] /= df[1, :ispsd_f64_t]
record_rank!(df, :ispsd_f64_t)
show(df[!,[:nick, :ispsd_f64_t, :score]], allrows=true)52×3 DataFrame Row │ nick ispsd_f64_t score │ String Float64? Int64 ─────┼───────────────────────────────────────────────────────── 1 │ Xandor the Arcane 1.0 4 2 │ Vessryn Bloodsong 3.86241 8 3 │ Althira Starweaver 6.8056 65 4 │ Orlien Silverchant 48.831 18 5 │ Korvath the Obsidian 50.3498 26 6 │ Thauren the Wandering 52.4235 24 7 │ Yseline Frostwhisper 69.981 23 8 │ Sylthara the Veiled 72.4082 34 9 │ Gorvath Ironchant 74.5781 36 10 │ Talvorn Runebreaker 75.284 30 11 │ Bramor the Tempest 75.4097 37 12 │ Eldwyn of the Shimmering Vale 75.8282 37 13 │ Cyralis Moonbinder 76.6568 35 14 │ Rhovar Mistborn 76.8599 42 15 │ Selvethra of the Whispering Woods 77.1637 38 16 │ Galdur the Wise 78.9839 42 17 │ Lyssara Moonveil 79.8322 41 18 │ Caelwyn of the Crystal Spire 79.8716 53 19 │ Zerathorn the Pale 80.4004 56 20 │ Maerilith Stormweaver 81.2959 53 21 │ Kerron the Unseen 81.6559 57 22 │ Maranelle Frostpetal 83.071 62 23 │ Ivenar Spellforge 83.1706 61 24 │ Elithar Dawnseeker 83.7941 66 25 │ Korthen Deepflame 84.2678 68 26 │ Eldaric Runehand 84.3676 34 27 │ Faelora Nightbloom 86.588 70 28 │ Aeloria of the Seven Sigils 92.922 38 29 │ Dravok the Gloomed 95.3665 67 30 │ Valtheris of the Amber Flame 97.654 70 31 │ kalvotom 135.868 66 32 │ Nimriel the Golden 201.818 83 33 │ Tirvian Shadowmantle 223.533 90 34 │ Dromek the Bound 224.997 87 35 │ Mirelda Starbloom 227.331 87 36 │ Orren Emberforge 228.391 94 37 │ Talmek the Shattered 228.867 88 38 │ Sareth the Verdant 229.202 92 39 │ Lunara Dreambinder 230.742 95 40 │ Vyrion the Eternal 235.962 98 41 │ Morvain Duskwalker 1820.12 105 42 │ chatgpt missing 128 43 │ Aldorin the Luminous missing 128 44 │ Seraphyne Windwhisper missing 128 45 │ Thamior Embercloak missing 128 46 │ Velindra the Azure missing 128 47 │ Thalendir Brightflame missing 128 48 │ Erenwyn the Whispering missing 128 49 │ Velmaris Lightbinder missing 128 50 │ Ilyrien Dawnpetal missing 128 51 │ Zytherin the Forgotten missing 128 52 │ Nysera Cloudveil missing 128
sort!(df, :ispsd_f64_m)
record_rank!(df, :ispsd_f64_m)
show(df[!, [:nick, :ispsd_f64_m, :score]], allrows=true)52×3 DataFrame Row │ nick ispsd_f64_m score │ String Int64? Int64 ─────┼─────────────────────────────────────────────────────── 1 │ Xandor the Arcane 240 5 2 │ Althira Starweaver 80328 67 3 │ Vessryn Bloodsong 81240 11 4 │ kalvotom 81944 70 5 │ Orlien Silverchant 117368 23 6 │ Yseline Frostwhisper 117368 28 7 │ Cyralis Moonbinder 117368 40 8 │ Selvethra of the Whispering Woods 117368 43 9 │ Galdur the Wise 117368 47 10 │ Lyssara Moonveil 117368 46 11 │ Talvorn Runebreaker 117480 36 12 │ Dravok the Gloomed 119160 74 13 │ Eldwyn of the Shimmering Vale 119288 45 14 │ Valtheris of the Amber Flame 119448 79 15 │ Eldaric Runehand 119512 44 16 │ Maerilith Stormweaver 121096 64 17 │ Korvath the Obsidian 181920 38 18 │ Thauren the Wandering 197456 37 19 │ Gorvath Ironchant 197456 49 20 │ Bramor the Tempest 197456 50 21 │ Rhovar Mistborn 197456 55 22 │ Caelwyn of the Crystal Spire 197456 66 23 │ Zerathorn the Pale 197456 69 24 │ Kerron the Unseen 197456 70 25 │ Maranelle Frostpetal 197456 75 26 │ Ivenar Spellforge 197456 74 27 │ Elithar Dawnseeker 197456 79 28 │ Faelora Nightbloom 197456 83 29 │ Sylthara the Veiled 197472 48 30 │ Korthen Deepflame 197536 83 31 │ Aeloria of the Seven Sigils 199040 54 32 │ Tirvian Shadowmantle 277496 107 33 │ Mirelda Starbloom 277496 104 34 │ Talmek the Shattered 277496 105 35 │ Nimriel the Golden 277528 101 36 │ Sareth the Verdant 277528 110 37 │ Lunara Dreambinder 277528 113 38 │ Vyrion the Eternal 277528 116 39 │ Dromek the Bound 277544 106 40 │ Orren Emberforge 278424 114 41 │ Morvain Duskwalker 37107288 126 42 │ chatgpt missing 170 43 │ Aldorin the Luminous missing 170 44 │ Seraphyne Windwhisper missing 170 45 │ Thamior Embercloak missing 170 46 │ Velindra the Azure missing 170 47 │ Thalendir Brightflame missing 170 48 │ Erenwyn the Whispering missing 170 49 │ Velmaris Lightbinder missing 170 50 │ Ilyrien Dawnpetal missing 170 51 │ Zytherin the Forgotten missing 170 52 │ Nysera Cloudveil missing 170
Případ ID.
sort!(df, :isid_f64_t)
df[!, :isid_f64_t] /= df[1, :isid_f64_t]
record_rank!(df, :isid_f64_t)
show(df[!,[:nick, :isid_f64_t, :score]], allrows=true)52×3 DataFrame Row │ nick isid_f64_t score │ String Float64? Int64 ─────┼─────────────────────────────────────────────────────────── 1 │ Eldwyn of the Shimmering Vale 1.0 46 2 │ Vessryn Bloodsong 3281.54 13 3 │ Xandor the Arcane 4419.96 8 4 │ Korvath the Obsidian 42446.8 42 5 │ Yseline Frostwhisper 59757.8 33 6 │ Sylthara the Veiled 61035.1 54 7 │ Gorvath Ironchant 63445.4 56 8 │ Bramor the Tempest 64567.1 58 9 │ Cyralis Moonbinder 65956.0 49 10 │ Selvethra of the Whispering Woods 66137.3 53 11 │ Rhovar Mistborn 66318.2 66 12 │ Orlien Silverchant 67117.2 35 13 │ Galdur the Wise 67539.9 60 14 │ Lyssara Moonveil 67958.2 60 15 │ Caelwyn of the Crystal Spire 67988.5 81 16 │ Kerron the Unseen 70735.1 86 17 │ Ivenar Spellforge 70979.9 91 18 │ Maranelle Frostpetal 71004.7 93 19 │ Korthen Deepflame 71977.7 102 20 │ Dravok the Gloomed 74674.3 94 21 │ Faelora Nightbloom 74760.7 104 22 │ Valtheris of the Amber Flame 75312.8 101 23 │ Maerilith Stormweaver 76240.0 87 24 │ Eldaric Runehand 78727.6 68 25 │ Aeloria of the Seven Sigils 79748.6 79 26 │ Zerathorn the Pale 82729.4 95 27 │ Thauren the Wandering 83875.4 64 28 │ kalvotom 1.15624e5 98 29 │ Talvorn Runebreaker 126804.0 65 30 │ Elithar Dawnseeker 1.41404e5 109 31 │ Nimriel the Golden 1.71064e5 132 32 │ Tirvian Shadowmantle 1.90634e5 139 33 │ Mirelda Starbloom 1.94394e5 137 34 │ Sareth the Verdant 1.9539e5 144 35 │ Talmek the Shattered 195480.0 140 36 │ Dromek the Bound 1.95604e5 142 37 │ Lunara Dreambinder 1.96507e5 150 38 │ Orren Emberforge 2.04894e5 152 39 │ Vyrion the Eternal 4.15843e5 155 40 │ Althira Starweaver 9.63892e5 107 41 │ Morvain Duskwalker 1.34004e6 167 42 │ chatgpt missing 212 43 │ Aldorin the Luminous missing 212 44 │ Seraphyne Windwhisper missing 212 45 │ Thamior Embercloak missing 212 46 │ Velindra the Azure missing 212 47 │ Thalendir Brightflame missing 212 48 │ Erenwyn the Whispering missing 212 49 │ Velmaris Lightbinder missing 212 50 │ Ilyrien Dawnpetal missing 212 51 │ Zytherin the Forgotten missing 212 52 │ Nysera Cloudveil missing 212
sort!(df, :isid_f64_m)
record_rank!(df, :isid_f64_m)
show(df[!, [:nick, :isid_f64_m, :score]], allrows=true)52×3 DataFrame Row │ nick isid_f64_m score │ String Int64? Int64 ─────┼────────────────────────────────────────────────────── 1 │ Eldwyn of the Shimmering Vale 0 47 2 │ Xandor the Arcane 80744 10 3 │ Vessryn Bloodsong 81240 16 4 │ kalvotom 81944 102 5 │ Yseline Frostwhisper 117368 38 6 │ Cyralis Moonbinder 117368 54 7 │ Selvethra of the Whispering Woods 117368 58 8 │ Orlien Silverchant 117368 40 9 │ Galdur the Wise 117368 65 10 │ Lyssara Moonveil 117368 65 11 │ Dravok the Gloomed 119160 100 12 │ Valtheris of the Amber Flame 119448 108 13 │ Eldaric Runehand 119624 76 14 │ Maerilith Stormweaver 121096 96 15 │ Korvath the Obsidian 181920 52 16 │ Gorvath Ironchant 197456 67 17 │ Bramor the Tempest 197456 69 18 │ Rhovar Mistborn 197456 77 19 │ Caelwyn of the Crystal Spire 197456 92 20 │ Kerron the Unseen 197456 97 21 │ Ivenar Spellforge 197456 102 22 │ Maranelle Frostpetal 197456 104 23 │ Faelora Nightbloom 197456 115 24 │ Sylthara the Veiled 197472 66 25 │ Korthen Deepflame 197552 115 26 │ Zerathorn the Pale 198128 109 27 │ Aeloria of the Seven Sigils 199120 94 28 │ Talvorn Runebreaker 234960 81 29 │ Tirvian Shadowmantle 277496 156 30 │ Mirelda Starbloom 277496 154 31 │ Talmek the Shattered 277496 157 32 │ Nimriel the Golden 277528 150 33 │ Sareth the Verdant 277528 162 34 │ Lunara Dreambinder 277528 168 35 │ Dromek the Bound 277560 161 36 │ Orren Emberforge 278424 172 37 │ Thauren the Wandering 314824 85 38 │ Elithar Dawnseeker 314824 130 39 │ Vyrion the Eternal 635144 177 40 │ Althira Starweaver 11293744 130 41 │ Morvain Duskwalker 37107288 191 42 │ chatgpt missing 254 43 │ Aldorin the Luminous missing 254 44 │ Seraphyne Windwhisper missing 254 45 │ Thamior Embercloak missing 254 46 │ Velindra the Azure missing 254 47 │ Thalendir Brightflame missing 254 48 │ Erenwyn the Whispering missing 254 49 │ Velmaris Lightbinder missing 254 50 │ Ilyrien Dawnpetal missing 254 51 │ Zytherin the Forgotten missing 254 52 │ Nysera Cloudveil missing 254
Pozitivní definitnost Hilbertovy matice
O Hilbertově matici libovolného čtvercového rozměru lze dokázat, že je PD. Pojďme se podívat, jak si s tím poradí naše řešiče (prvky Hilbertovy matice zadávám jako racionální čísla s BigFloat čitatelem/jmenovatelem). Nejprve test správné odpovědi.
sort!(df, :ispd_hilbert_c, rev=true)
record_rank!(df, :ispd_hilbert_c)
show(df[!,[:nick, :ispd_hilbert_c, :score]], allrows=true)52×3 DataFrame Row │ nick ispd_hilbert_c score │ String Bool Int64 ─────┼────────────────────────────────────────────────────────── 1 │ Xandor the Arcane true 11 2 │ Vessryn Bloodsong true 17 3 │ kalvotom true 103 4 │ Selvethra of the Whispering Woods true 59 5 │ Orlien Silverchant true 41 6 │ Eldaric Runehand true 77 7 │ Maerilith Stormweaver true 97 8 │ Korvath the Obsidian true 53 9 │ Rhovar Mistborn true 78 10 │ Ivenar Spellforge true 103 11 │ Zerathorn the Pale true 110 12 │ Aeloria of the Seven Sigils true 95 13 │ Mirelda Starbloom true 155 14 │ Talmek the Shattered true 158 15 │ Sareth the Verdant true 163 16 │ Lunara Dreambinder true 169 17 │ Thauren the Wandering true 86 18 │ Vyrion the Eternal true 178 19 │ Althira Starweaver true 131 20 │ Morvain Duskwalker true 192 21 │ Eldwyn of the Shimmering Vale false 49 22 │ Yseline Frostwhisper false 40 23 │ Cyralis Moonbinder false 56 24 │ Galdur the Wise false 67 25 │ Lyssara Moonveil false 67 26 │ Dravok the Gloomed false 102 27 │ Valtheris of the Amber Flame false 110 28 │ Gorvath Ironchant false 69 29 │ Bramor the Tempest false 71 30 │ Caelwyn of the Crystal Spire false 94 31 │ Kerron the Unseen false 99 32 │ Maranelle Frostpetal false 106 33 │ Faelora Nightbloom false 117 34 │ Sylthara the Veiled false 68 35 │ Korthen Deepflame false 117 36 │ Talvorn Runebreaker false 83 37 │ Tirvian Shadowmantle false 158 38 │ Nimriel the Golden false 152 39 │ Dromek the Bound false 163 40 │ Orren Emberforge false 174 41 │ Elithar Dawnseeker false 132 42 │ chatgpt false 256 43 │ Aldorin the Luminous false 256 44 │ Seraphyne Windwhisper false 256 45 │ Thamior Embercloak false 256 46 │ Velindra the Azure false 256 47 │ Thalendir Brightflame false 256 48 │ Erenwyn the Whispering false 256 49 │ Velmaris Lightbinder false 256 50 │ Ilyrien Dawnpetal false 256 51 │ Zytherin the Forgotten false 256 52 │ Nysera Cloudveil false 256
A pro zajímavost opět ještě časová a paměťová náročnost.
sort!(df, :ispd_hilbert_t)
df[!, :ispd_hilbert_t] /= df[1, :ispd_hilbert_t]
record_rank!(df, :ispd_hilbert_t)
show(df[!,[:nick, :ispd_hilbert_t, :score]], allrows=true)52×3 DataFrame Row │ nick ispd_hilbert_t score │ String Float64? Int64 ─────┼────────────────────────────────────────────────────────── 1 │ Eldaric Runehand 1.0 78 2 │ Orlien Silverchant 1.13715 43 3 │ Thauren the Wandering 1.40663 89 4 │ Selvethra of the Whispering Woods 3.50533 63 5 │ Maerilith Stormweaver 3.57567 102 6 │ Sareth the Verdant 3.90224 169 7 │ Korvath the Obsidian 3.95371 60 8 │ Mirelda Starbloom 6.2128 163 9 │ Rhovar Mistborn 6.49463 87 10 │ Lunara Dreambinder 8.17806 179 11 │ Talmek the Shattered 8.18363 169 12 │ kalvotom 8.32633 115 13 │ Ivenar Spellforge 14.2905 116 14 │ Morvain Duskwalker 15.3618 206 15 │ Zerathorn the Pale 24.0834 125 16 │ Aeloria of the Seven Sigils 25.7359 111 17 │ Vessryn Bloodsong 32.5708 34 18 │ Xandor the Arcane 32.8263 29 19 │ Althira Starweaver 33.8331 150 20 │ Vyrion the Eternal 34.058 198 21 │ Eldwyn of the Shimmering Vale missing 91 22 │ Yseline Frostwhisper missing 82 23 │ Cyralis Moonbinder missing 98 24 │ Galdur the Wise missing 109 25 │ Lyssara Moonveil missing 109 26 │ Dravok the Gloomed missing 144 27 │ Valtheris of the Amber Flame missing 152 28 │ Gorvath Ironchant missing 111 29 │ Bramor the Tempest missing 113 30 │ Caelwyn of the Crystal Spire missing 136 31 │ Kerron the Unseen missing 141 32 │ Maranelle Frostpetal missing 148 33 │ Faelora Nightbloom missing 159 34 │ Sylthara the Veiled missing 110 35 │ Korthen Deepflame missing 159 36 │ Talvorn Runebreaker missing 125 37 │ Tirvian Shadowmantle missing 200 38 │ Nimriel the Golden missing 194 39 │ Dromek the Bound missing 205 40 │ Orren Emberforge missing 216 41 │ Elithar Dawnseeker missing 174 42 │ chatgpt missing 298 43 │ Aldorin the Luminous missing 298 44 │ Seraphyne Windwhisper missing 298 45 │ Thamior Embercloak missing 298 46 │ Velindra the Azure missing 298 47 │ Thalendir Brightflame missing 298 48 │ Erenwyn the Whispering missing 298 49 │ Velmaris Lightbinder missing 298 50 │ Ilyrien Dawnpetal missing 298 51 │ Zytherin the Forgotten missing 298 52 │ Nysera Cloudveil missing 298
A pak paměť, čím méně, tím lépe.
sort!(df, :ispd_hilbert_m)
record_rank!(df, :ispd_hilbert_m)
show(df[!, [:nick, :ispd_hilbert_m, :score]], allrows=true)52×3 DataFrame Row │ nick ispd_hilbert_m score │ String Int64? Int64 ─────┼────────────────────────────────────────────────────────── 1 │ Eldaric Runehand 446344 79 2 │ Orlien Silverchant 488904 45 3 │ Thauren the Wandering 734496 92 4 │ Selvethra of the Whispering Woods 1018744 67 5 │ Maerilith Stormweaver 1188496 107 6 │ Sareth the Verdant 1234384 175 7 │ Korvath the Obsidian 1330320 67 8 │ Rhovar Mistborn 1983152 95 9 │ Mirelda Starbloom 2298336 172 10 │ kalvotom 2504344 125 11 │ Talmek the Shattered 2759160 180 12 │ Lunara Dreambinder 2846616 191 13 │ Ivenar Spellforge 5540352 129 14 │ Morvain Duskwalker 5925304 220 15 │ Vessryn Bloodsong 9615824 49 16 │ Zerathorn the Pale 9659656 141 17 │ Xandor the Arcane 9681272 46 18 │ Vyrion the Eternal 9941904 216 19 │ Althira Starweaver 9944704 169 20 │ Aeloria of the Seven Sigils 9947904 131 21 │ Eldwyn of the Shimmering Vale missing 133 22 │ Yseline Frostwhisper missing 124 23 │ Cyralis Moonbinder missing 140 24 │ Galdur the Wise missing 151 25 │ Lyssara Moonveil missing 151 26 │ Dravok the Gloomed missing 186 27 │ Valtheris of the Amber Flame missing 194 28 │ Gorvath Ironchant missing 153 29 │ Bramor the Tempest missing 155 30 │ Caelwyn of the Crystal Spire missing 178 31 │ Kerron the Unseen missing 183 32 │ Maranelle Frostpetal missing 190 33 │ Faelora Nightbloom missing 201 34 │ Sylthara the Veiled missing 152 35 │ Korthen Deepflame missing 201 36 │ Talvorn Runebreaker missing 167 37 │ Tirvian Shadowmantle missing 242 38 │ Nimriel the Golden missing 236 39 │ Dromek the Bound missing 247 40 │ Orren Emberforge missing 258 41 │ Elithar Dawnseeker missing 216 42 │ chatgpt missing 340 43 │ Aldorin the Luminous missing 340 44 │ Seraphyne Windwhisper missing 340 45 │ Thamior Embercloak missing 340 46 │ Velindra the Azure missing 340 47 │ Thalendir Brightflame missing 340 48 │ Erenwyn the Whispering missing 340 49 │ Velmaris Lightbinder missing 340 50 │ Ilyrien Dawnpetal missing 340 51 │ Zytherin the Forgotten missing 340 52 │ Nysera Cloudveil missing 340
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)52×2 DataFrame Row │ nick score │ String Int64 ─────┼────────────────────────────────────────── 1 │ Orlien Silverchant 45 2 │ Xandor the Arcane 46 3 │ Vessryn Bloodsong 49 4 │ Selvethra of the Whispering Woods 67 5 │ Korvath the Obsidian 67 6 │ Eldaric Runehand 79 7 │ Thauren the Wandering 92 8 │ Rhovar Mistborn 95 9 │ Maerilith Stormweaver 107 10 │ Yseline Frostwhisper 124 11 │ kalvotom 125 12 │ Ivenar Spellforge 129 13 │ Aeloria of the Seven Sigils 131 14 │ Eldwyn of the Shimmering Vale 133 15 │ Cyralis Moonbinder 140 16 │ Zerathorn the Pale 141 17 │ Galdur the Wise 151 18 │ Lyssara Moonveil 151 19 │ Sylthara the Veiled 152 20 │ Gorvath Ironchant 153 21 │ Bramor the Tempest 155 22 │ Talvorn Runebreaker 167 23 │ Althira Starweaver 169 24 │ Mirelda Starbloom 172 25 │ Sareth the Verdant 175 26 │ Caelwyn of the Crystal Spire 178 27 │ Talmek the Shattered 180 28 │ Kerron the Unseen 183 29 │ Dravok the Gloomed 186 30 │ Maranelle Frostpetal 190 31 │ Lunara Dreambinder 191 32 │ Valtheris of the Amber Flame 194 33 │ Faelora Nightbloom 201 34 │ Korthen Deepflame 201 35 │ Vyrion the Eternal 216 36 │ Elithar Dawnseeker 216 37 │ Morvain Duskwalker 220 38 │ Nimriel the Golden 236 39 │ Tirvian Shadowmantle 242 40 │ Dromek the Bound 247 41 │ Orren Emberforge 258 42 │ chatgpt 340 43 │ Aldorin the Luminous 340 44 │ Seraphyne Windwhisper 340 45 │ Thamior Embercloak 340 46 │ Velindra the Azure 340 47 │ Thalendir Brightflame 340 48 │ Erenwyn the Whispering 340 49 │ Velmaris Lightbinder 340 50 │ Ilyrien Dawnpetal 340 51 │ Zytherin the Forgotten 340 52 │ Nysera Cloudveil 340