3. Porovnání (Definitnost matic)
Porovnání jednotlivých řešení po měkké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.25 | false | 0.0 | true | 0 | Bool |
| 3 | ispd_f64_t | 623189.0 | 11111.0 | 3.15388e5 | 6.97814e6 | 24 | Union{Missing, Float64} |
| 4 | ispd_f64_m | 1.49452e6 | 81240 | 189688.0 | 37107288 | 24 | Union{Missing, Int64} |
| 5 | ispsd_f64_t | 5.9285e5 | 13365.0 | 3.1887e5 | 5.60177e6 | 24 | Union{Missing, Float64} |
| 6 | ispsd_f64_m | 1.50003e6 | 81240 | 197456.0 | 37107288 | 24 | Union{Missing, Int64} |
| 7 | isid_f64_t | 6.35356e5 | 4.528 | 3.28987e5 | 5.85381e6 | 24 | Union{Missing, Float64} |
| 8 | isid_f64_m | 1.51278e6 | 0 | 197456.0 | 37107288 | 24 | Union{Missing, Int64} |
| 9 | ispd_hilbert_t | 3.72655e6 | 366442.0 | 1.24068e6 | 9.00834e6 | 41 | Union{Missing, Float64} |
| 10 | ispd_hilbert_m | 4.83244e6 | 734496 | 2.56153e6 | 9947888 | 41 | Union{Missing, Int64} |
| 11 | ispd_hilbert_c | 0.211538 | 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 │ Zerathorn the Pale true 1 7 │ Vyrion the Eternal true 1 8 │ Maerilith Stormweaver true 1 9 │ Sareth the Verdant true 1 10 │ Vessryn Bloodsong true 1 11 │ Eldwyn of the Shimmering Vale true 1 12 │ Selvethra of the Whispering Woods true 1 13 │ Valtheris of the Amber Flame true 1 14 │ chatgpt false 2 15 │ Aldorin the Luminous false 2 16 │ Seraphyne Windwhisper false 2 17 │ Thamior Embercloak false 2 18 │ Velindra the Azure false 2 19 │ Thalendir Brightflame false 2 20 │ Mirelda Starbloom false 2 21 │ Orlien Silverchant false 2 22 │ Faelora Nightbloom false 2 23 │ Galdur the Wise false 2 24 │ Yseline Frostwhisper false 2 25 │ Bramor the Tempest false 2 26 │ Elithar Dawnseeker false 2 27 │ Caelwyn of the Crystal Spire false 2 28 │ Tirvian Shadowmantle false 2 29 │ Erenwyn the Whispering false 2 30 │ Orren Emberforge false 2 31 │ Lunara Dreambinder false 2 32 │ Korthen Deepflame false 2 33 │ Aeloria of the Seven Sigils false 2 34 │ Dravok the Gloomed false 2 35 │ Velmaris Lightbinder false 2 36 │ Nimriel the Golden false 2 37 │ Talvorn Runebreaker false 2 38 │ Sylthara the Veiled false 2 39 │ Rhovar Mistborn false 2 40 │ Ilyrien Dawnpetal false 2 41 │ Talmek the Shattered false 2 42 │ Maranelle Frostpetal false 2 43 │ Xandor the Arcane false 2 44 │ Zytherin the Forgotten false 2 45 │ Cyralis Moonbinder false 2 46 │ Thauren the Wandering false 2 47 │ Ivenar Spellforge false 2 48 │ Kerron the Unseen false 2 49 │ Althira Starweaver false 2 50 │ Dromek the Bound false 2 51 │ Nysera Cloudveil false 2 52 │ Gorvath Ironchant 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 │ Vessryn Bloodsong 1.0 2 2 │ Thauren the Wandering 2.85474 4 3 │ Aeloria of the Seven Sigils 3.13167 5 4 │ Orlien Silverchant 16.8304 6 5 │ Korvath the Obsidian 18.8286 6 6 │ Cyralis Moonbinder 26.7993 8 7 │ Eldwyn of the Shimmering Vale 26.8114 8 8 │ Selvethra of the Whispering Woods 26.8222 9 9 │ Galdur the Wise 26.8548 11 10 │ Sylthara the Veiled 26.9593 12 11 │ Lyssara Moonveil 27.1538 12 12 │ Caelwyn of the Crystal Spire 27.7601 14 13 │ Zerathorn the Pale 27.7664 14 14 │ Elithar Dawnseeker 28.1023 16 15 │ Maerilith Stormweaver 28.6682 16 16 │ Kerron the Unseen 28.9986 18 17 │ Faelora Nightbloom 29.2408 19 18 │ Korthen Deepflame 29.5532 20 19 │ Dravok the Gloomed 30.61 21 20 │ Valtheris of the Amber Flame 30.8303 21 21 │ Eldaric Runehand 32.0861 22 22 │ kalvotom 56.4499 23 23 │ Nimriel the Golden 72.7229 25 24 │ Tirvian Shadowmantle 77.3273 26 25 │ Orren Emberforge 79.0581 27 26 │ Vyrion the Eternal 79.5636 27 27 │ Sareth the Verdant 79.6294 28 28 │ Morvain Duskwalker 628.038 29 29 │ chatgpt missing 44 30 │ Aldorin the Luminous missing 44 31 │ Seraphyne Windwhisper missing 44 32 │ Thamior Embercloak missing 44 33 │ Velindra the Azure missing 44 34 │ Thalendir Brightflame missing 44 35 │ Mirelda Starbloom missing 44 36 │ Yseline Frostwhisper missing 44 37 │ Bramor the Tempest missing 44 38 │ Erenwyn the Whispering missing 44 39 │ Lunara Dreambinder missing 44 40 │ Velmaris Lightbinder missing 44 41 │ Talvorn Runebreaker missing 44 42 │ Rhovar Mistborn missing 44 43 │ Ilyrien Dawnpetal missing 44 44 │ Talmek the Shattered missing 44 45 │ Maranelle Frostpetal missing 44 46 │ Xandor the Arcane missing 44 47 │ Zytherin the Forgotten missing 44 48 │ Ivenar Spellforge missing 44 49 │ Althira Starweaver missing 44 50 │ Dromek the Bound missing 44 51 │ Nysera Cloudveil missing 44 52 │ Gorvath Ironchant 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 │ Vessryn Bloodsong 81240 3 2 │ Aeloria of the Seven Sigils 81800 7 3 │ Orlien Silverchant 117368 9 4 │ Cyralis Moonbinder 117368 11 5 │ Selvethra of the Whispering Woods 117368 12 6 │ Galdur the Wise 117368 14 7 │ Lyssara Moonveil 117368 15 8 │ Valtheris of the Amber Flame 119064 25 9 │ Eldaric Runehand 119128 27 10 │ Eldwyn of the Shimmering Vale 119288 14 11 │ Dravok the Gloomed 119544 28 12 │ Maerilith Stormweaver 120712 24 13 │ Thauren the Wandering 160192 13 14 │ Korvath the Obsidian 181920 16 15 │ Sylthara the Veiled 197456 23 16 │ Caelwyn of the Crystal Spire 197456 25 17 │ Zerathorn the Pale 197456 25 18 │ Elithar Dawnseeker 197456 27 19 │ Kerron the Unseen 197456 29 20 │ Faelora Nightbloom 197456 30 21 │ Korthen Deepflame 197536 32 22 │ Tirvian Shadowmantle 277496 39 23 │ Nimriel the Golden 277528 39 24 │ Vyrion the Eternal 277528 41 25 │ Sareth the Verdant 277528 42 26 │ Orren Emberforge 278424 42 27 │ kalvotom 278648 39 28 │ Morvain Duskwalker 37107288 46 29 │ chatgpt missing 86 30 │ Aldorin the Luminous missing 86 31 │ Seraphyne Windwhisper missing 86 32 │ Thamior Embercloak missing 86 33 │ Velindra the Azure missing 86 34 │ Thalendir Brightflame missing 86 35 │ Mirelda Starbloom missing 86 36 │ Yseline Frostwhisper missing 86 37 │ Bramor the Tempest missing 86 38 │ Erenwyn the Whispering missing 86 39 │ Lunara Dreambinder missing 86 40 │ Velmaris Lightbinder missing 86 41 │ Talvorn Runebreaker missing 86 42 │ Rhovar Mistborn missing 86 43 │ Ilyrien Dawnpetal missing 86 44 │ Talmek the Shattered missing 86 45 │ Maranelle Frostpetal missing 86 46 │ Xandor the Arcane missing 86 47 │ Zytherin the Forgotten missing 86 48 │ Ivenar Spellforge missing 86 49 │ Althira Starweaver missing 86 50 │ Dromek the Bound missing 86 51 │ Nysera Cloudveil missing 86 52 │ Gorvath Ironchant 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 │ Vessryn Bloodsong 1.0 4 2 │ Orlien Silverchant 13.7975 11 3 │ Korvath the Obsidian 14.9013 19 4 │ Thauren the Wandering 15.3871 17 5 │ Eldwyn of the Shimmering Vale 22.172 19 6 │ Selvethra of the Whispering Woods 22.2035 18 7 │ Galdur the Wise 22.2778 21 8 │ Cyralis Moonbinder 22.2958 19 9 │ Sylthara the Veiled 22.5078 32 10 │ Lyssara Moonveil 22.6106 25 11 │ Zerathorn the Pale 22.9592 36 12 │ Caelwyn of the Crystal Spire 23.0863 37 13 │ Elithar Dawnseeker 23.3805 40 14 │ Maerilith Stormweaver 23.6916 38 15 │ Kerron the Unseen 24.0255 44 16 │ Faelora Nightbloom 24.2463 46 17 │ Korthen Deepflame 24.5761 49 18 │ Valtheris of the Amber Flame 25.4224 43 19 │ Eldaric Runehand 25.9113 46 20 │ Dravok the Gloomed 26.0095 48 21 │ Aeloria of the Seven Sigils 28.3367 28 22 │ kalvotom 49.5909 61 23 │ Nimriel the Golden 59.6044 62 24 │ Tirvian Shadowmantle 64.2965 63 25 │ Sareth the Verdant 66.1609 67 26 │ Vyrion the Eternal 66.1826 67 27 │ Orren Emberforge 66.2643 69 28 │ Morvain Duskwalker 419.138 74 29 │ chatgpt missing 128 30 │ Aldorin the Luminous missing 128 31 │ Seraphyne Windwhisper missing 128 32 │ Thamior Embercloak missing 128 33 │ Velindra the Azure missing 128 34 │ Thalendir Brightflame missing 128 35 │ Mirelda Starbloom missing 128 36 │ Yseline Frostwhisper missing 128 37 │ Bramor the Tempest missing 128 38 │ Erenwyn the Whispering missing 128 39 │ Lunara Dreambinder missing 128 40 │ Velmaris Lightbinder missing 128 41 │ Talvorn Runebreaker missing 128 42 │ Rhovar Mistborn missing 128 43 │ Ilyrien Dawnpetal missing 128 44 │ Talmek the Shattered missing 128 45 │ Maranelle Frostpetal missing 128 46 │ Xandor the Arcane missing 128 47 │ Zytherin the Forgotten missing 128 48 │ Ivenar Spellforge missing 128 49 │ Althira Starweaver missing 128 50 │ Dromek the Bound missing 128 51 │ Nysera Cloudveil missing 128 52 │ Gorvath Ironchant 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 │ Vessryn Bloodsong 81240 5 2 │ Orlien Silverchant 117368 13 3 │ Selvethra of the Whispering Woods 117368 20 4 │ Galdur the Wise 117368 23 5 │ Cyralis Moonbinder 117368 21 6 │ Lyssara Moonveil 117368 27 7 │ Valtheris of the Amber Flame 119064 46 8 │ Eldaric Runehand 119128 50 9 │ Eldwyn of the Shimmering Vale 119288 24 10 │ Dravok the Gloomed 119544 54 11 │ Maerilith Stormweaver 120712 45 12 │ Korvath the Obsidian 181920 27 13 │ Thauren the Wandering 197456 26 14 │ Sylthara the Veiled 197456 41 15 │ Zerathorn the Pale 197456 45 16 │ Caelwyn of the Crystal Spire 197456 46 17 │ Elithar Dawnseeker 197456 49 18 │ Kerron the Unseen 197456 53 19 │ Faelora Nightbloom 197456 55 20 │ Korthen Deepflame 197536 59 21 │ Aeloria of the Seven Sigils 199040 39 22 │ Tirvian Shadowmantle 277496 75 23 │ Nimriel the Golden 277528 75 24 │ Sareth the Verdant 277528 80 25 │ Vyrion the Eternal 277528 80 26 │ Orren Emberforge 278424 83 27 │ kalvotom 278648 76 28 │ Morvain Duskwalker 37107288 90 29 │ chatgpt missing 170 30 │ Aldorin the Luminous missing 170 31 │ Seraphyne Windwhisper missing 170 32 │ Thamior Embercloak missing 170 33 │ Velindra the Azure missing 170 34 │ Thalendir Brightflame missing 170 35 │ Mirelda Starbloom missing 170 36 │ Yseline Frostwhisper missing 170 37 │ Bramor the Tempest missing 170 38 │ Erenwyn the Whispering missing 170 39 │ Lunara Dreambinder missing 170 40 │ Velmaris Lightbinder missing 170 41 │ Talvorn Runebreaker missing 170 42 │ Rhovar Mistborn missing 170 43 │ Ilyrien Dawnpetal missing 170 44 │ Talmek the Shattered missing 170 45 │ Maranelle Frostpetal missing 170 46 │ Xandor the Arcane missing 170 47 │ Zytherin the Forgotten missing 170 48 │ Ivenar Spellforge missing 170 49 │ Althira Starweaver missing 170 50 │ Dromek the Bound missing 170 51 │ Nysera Cloudveil missing 170 52 │ Gorvath Ironchant 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 25 2 │ Vessryn Bloodsong 2998.23 7 3 │ Korvath the Obsidian 44984.5 30 4 │ Selvethra of the Whispering Woods 65596.3 24 5 │ Orlien Silverchant 65722.6 18 6 │ Galdur the Wise 65774.6 29 7 │ Cyralis Moonbinder 65970.2 28 8 │ Lyssara Moonveil 67362.3 35 9 │ Sylthara the Veiled 67532.5 50 10 │ Caelwyn of the Crystal Spire 67800.4 56 11 │ Elithar Dawnseeker 68161.0 60 12 │ Maerilith Stormweaver 70752.1 57 13 │ Kerron the Unseen 70859.2 66 14 │ Korthen Deepflame 72628.4 73 15 │ Faelora Nightbloom 72683.7 70 16 │ Dravok the Gloomed 74388.5 70 17 │ Valtheris of the Amber Flame 74705.9 63 18 │ Eldaric Runehand 79523.0 68 19 │ Aeloria of the Seven Sigils 80510.8 58 20 │ Zerathorn the Pale 82270.1 65 21 │ Thauren the Wandering 84561.2 47 22 │ kalvotom 1.40112e5 98 23 │ Nimriel the Golden 1.76473e5 98 24 │ Tirvian Shadowmantle 1.90224e5 99 25 │ Orren Emberforge 1.95143e5 108 26 │ Sareth the Verdant 1.95881e5 106 27 │ Vyrion the Eternal 3.93458e5 107 28 │ Morvain Duskwalker 1.2928e6 118 29 │ chatgpt missing 212 30 │ Aldorin the Luminous missing 212 31 │ Seraphyne Windwhisper missing 212 32 │ Thamior Embercloak missing 212 33 │ Velindra the Azure missing 212 34 │ Thalendir Brightflame missing 212 35 │ Mirelda Starbloom missing 212 36 │ Yseline Frostwhisper missing 212 37 │ Bramor the Tempest missing 212 38 │ Erenwyn the Whispering missing 212 39 │ Lunara Dreambinder missing 212 40 │ Velmaris Lightbinder missing 212 41 │ Talvorn Runebreaker missing 212 42 │ Rhovar Mistborn missing 212 43 │ Ilyrien Dawnpetal missing 212 44 │ Talmek the Shattered missing 212 45 │ Maranelle Frostpetal missing 212 46 │ Xandor the Arcane missing 212 47 │ Zytherin the Forgotten missing 212 48 │ Ivenar Spellforge missing 212 49 │ Althira Starweaver missing 212 50 │ Dromek the Bound missing 212 51 │ Nysera Cloudveil missing 212 52 │ Gorvath Ironchant 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 26 2 │ Vessryn Bloodsong 81240 9 3 │ Selvethra of the Whispering Woods 117368 27 4 │ Orlien Silverchant 117368 21 5 │ Galdur the Wise 117368 32 6 │ Cyralis Moonbinder 117368 31 7 │ Lyssara Moonveil 117368 38 8 │ Valtheris of the Amber Flame 119064 67 9 │ Eldaric Runehand 119240 73 10 │ Dravok the Gloomed 119544 76 11 │ Maerilith Stormweaver 120712 64 12 │ Korvath the Obsidian 181920 38 13 │ Sylthara the Veiled 197456 59 14 │ Caelwyn of the Crystal Spire 197456 65 15 │ Elithar Dawnseeker 197456 69 16 │ Kerron the Unseen 197456 75 17 │ Faelora Nightbloom 197456 79 18 │ Korthen Deepflame 197552 83 19 │ Zerathorn the Pale 198128 76 20 │ Aeloria of the Seven Sigils 199504 70 21 │ Tirvian Shadowmantle 277496 112 22 │ Nimriel the Golden 277528 112 23 │ Sareth the Verdant 277528 120 24 │ Orren Emberforge 278424 123 25 │ kalvotom 278648 114 26 │ Thauren the Wandering 314824 64 27 │ Vyrion the Eternal 635144 125 28 │ Morvain Duskwalker 37107288 137 29 │ chatgpt missing 254 30 │ Aldorin the Luminous missing 254 31 │ Seraphyne Windwhisper missing 254 32 │ Thamior Embercloak missing 254 33 │ Velindra the Azure missing 254 34 │ Thalendir Brightflame missing 254 35 │ Mirelda Starbloom missing 254 36 │ Yseline Frostwhisper missing 254 37 │ Bramor the Tempest missing 254 38 │ Erenwyn the Whispering missing 254 39 │ Lunara Dreambinder missing 254 40 │ Velmaris Lightbinder missing 254 41 │ Talvorn Runebreaker missing 254 42 │ Rhovar Mistborn missing 254 43 │ Ilyrien Dawnpetal missing 254 44 │ Talmek the Shattered missing 254 45 │ Maranelle Frostpetal missing 254 46 │ Xandor the Arcane missing 254 47 │ Zytherin the Forgotten missing 254 48 │ Ivenar Spellforge missing 254 49 │ Althira Starweaver missing 254 50 │ Dromek the Bound missing 254 51 │ Nysera Cloudveil missing 254 52 │ Gorvath Ironchant 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 │ Vessryn Bloodsong true 10 2 │ Selvethra of the Whispering Woods true 28 3 │ Maerilith Stormweaver true 65 4 │ Korvath the Obsidian true 39 5 │ Zerathorn the Pale true 77 6 │ Aeloria of the Seven Sigils true 71 7 │ Sareth the Verdant true 121 8 │ kalvotom true 115 9 │ Thauren the Wandering true 65 10 │ Vyrion the Eternal true 126 11 │ Morvain Duskwalker true 138 12 │ Eldwyn of the Shimmering Vale false 28 13 │ Orlien Silverchant false 23 14 │ Galdur the Wise false 34 15 │ Cyralis Moonbinder false 33 16 │ Lyssara Moonveil false 40 17 │ Valtheris of the Amber Flame false 69 18 │ Eldaric Runehand false 75 19 │ Dravok the Gloomed false 78 20 │ Sylthara the Veiled false 61 21 │ Caelwyn of the Crystal Spire false 67 22 │ Elithar Dawnseeker false 71 23 │ Kerron the Unseen false 77 24 │ Faelora Nightbloom false 81 25 │ Korthen Deepflame false 85 26 │ Tirvian Shadowmantle false 114 27 │ Nimriel the Golden false 114 28 │ Orren Emberforge false 125 29 │ chatgpt false 256 30 │ Aldorin the Luminous false 256 31 │ Seraphyne Windwhisper false 256 32 │ Thamior Embercloak false 256 33 │ Velindra the Azure false 256 34 │ Thalendir Brightflame false 256 35 │ Mirelda Starbloom false 256 36 │ Yseline Frostwhisper false 256 37 │ Bramor the Tempest false 256 38 │ Erenwyn the Whispering false 256 39 │ Lunara Dreambinder false 256 40 │ Velmaris Lightbinder false 256 41 │ Talvorn Runebreaker false 256 42 │ Rhovar Mistborn false 256 43 │ Ilyrien Dawnpetal false 256 44 │ Talmek the Shattered false 256 45 │ Maranelle Frostpetal false 256 46 │ Xandor the Arcane false 256 47 │ Zytherin the Forgotten false 256 48 │ Ivenar Spellforge false 256 49 │ Althira Starweaver false 256 50 │ Dromek the Bound false 256 51 │ Nysera Cloudveil false 256 52 │ Gorvath Ironchant 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 │ Thauren the Wandering 1.0 66 2 │ Selvethra of the Whispering Woods 2.45849 30 3 │ Maerilith Stormweaver 2.63795 68 4 │ Korvath the Obsidian 2.84763 43 5 │ Sareth the Verdant 2.85031 126 6 │ kalvotom 3.38576 121 7 │ Morvain Duskwalker 11.9371 145 8 │ Aeloria of the Seven Sigils 18.2315 79 9 │ Zerathorn the Pale 18.4213 86 10 │ Vessryn Bloodsong 23.5118 20 11 │ Vyrion the Eternal 24.5833 137 12 │ Eldwyn of the Shimmering Vale missing 70 13 │ Orlien Silverchant missing 65 14 │ Galdur the Wise missing 76 15 │ Cyralis Moonbinder missing 75 16 │ Lyssara Moonveil missing 82 17 │ Valtheris of the Amber Flame missing 111 18 │ Eldaric Runehand missing 117 19 │ Dravok the Gloomed missing 120 20 │ Sylthara the Veiled missing 103 21 │ Caelwyn of the Crystal Spire missing 109 22 │ Elithar Dawnseeker missing 113 23 │ Kerron the Unseen missing 119 24 │ Faelora Nightbloom missing 123 25 │ Korthen Deepflame missing 127 26 │ Tirvian Shadowmantle missing 156 27 │ Nimriel the Golden missing 156 28 │ Orren Emberforge missing 167 29 │ chatgpt missing 298 30 │ Aldorin the Luminous missing 298 31 │ Seraphyne Windwhisper missing 298 32 │ Thamior Embercloak missing 298 33 │ Velindra the Azure missing 298 34 │ Thalendir Brightflame missing 298 35 │ Mirelda Starbloom missing 298 36 │ Yseline Frostwhisper missing 298 37 │ Bramor the Tempest missing 298 38 │ Erenwyn the Whispering missing 298 39 │ Lunara Dreambinder missing 298 40 │ Velmaris Lightbinder missing 298 41 │ Talvorn Runebreaker missing 298 42 │ Rhovar Mistborn missing 298 43 │ Ilyrien Dawnpetal missing 298 44 │ Talmek the Shattered missing 298 45 │ Maranelle Frostpetal missing 298 46 │ Xandor the Arcane missing 298 47 │ Zytherin the Forgotten missing 298 48 │ Ivenar Spellforge missing 298 49 │ Althira Starweaver missing 298 50 │ Dromek the Bound missing 298 51 │ Nysera Cloudveil missing 298 52 │ Gorvath Ironchant 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 │ Thauren the Wandering 734496 67 2 │ Selvethra of the Whispering Woods 1018744 32 3 │ Maerilith Stormweaver 1188496 71 4 │ Sareth the Verdant 1234384 130 5 │ Korvath the Obsidian 1330320 48 6 │ kalvotom 2561528 127 7 │ Morvain Duskwalker 5925304 152 8 │ Vessryn Bloodsong 9615824 28 9 │ Zerathorn the Pale 9657992 95 10 │ Vyrion the Eternal 9941888 147 11 │ Aeloria of the Seven Sigils 9947888 90 12 │ Eldwyn of the Shimmering Vale missing 112 13 │ Orlien Silverchant missing 107 14 │ Galdur the Wise missing 118 15 │ Cyralis Moonbinder missing 117 16 │ Lyssara Moonveil missing 124 17 │ Valtheris of the Amber Flame missing 153 18 │ Eldaric Runehand missing 159 19 │ Dravok the Gloomed missing 162 20 │ Sylthara the Veiled missing 145 21 │ Caelwyn of the Crystal Spire missing 151 22 │ Elithar Dawnseeker missing 155 23 │ Kerron the Unseen missing 161 24 │ Faelora Nightbloom missing 165 25 │ Korthen Deepflame missing 169 26 │ Tirvian Shadowmantle missing 198 27 │ Nimriel the Golden missing 198 28 │ Orren Emberforge missing 209 29 │ chatgpt missing 340 30 │ Aldorin the Luminous missing 340 31 │ Seraphyne Windwhisper missing 340 32 │ Thamior Embercloak missing 340 33 │ Velindra the Azure missing 340 34 │ Thalendir Brightflame missing 340 35 │ Mirelda Starbloom missing 340 36 │ Yseline Frostwhisper missing 340 37 │ Bramor the Tempest missing 340 38 │ Erenwyn the Whispering missing 340 39 │ Lunara Dreambinder missing 340 40 │ Velmaris Lightbinder missing 340 41 │ Talvorn Runebreaker missing 340 42 │ Rhovar Mistborn missing 340 43 │ Ilyrien Dawnpetal missing 340 44 │ Talmek the Shattered missing 340 45 │ Maranelle Frostpetal missing 340 46 │ Xandor the Arcane missing 340 47 │ Zytherin the Forgotten missing 340 48 │ Ivenar Spellforge missing 340 49 │ Althira Starweaver missing 340 50 │ Dromek the Bound missing 340 51 │ Nysera Cloudveil missing 340 52 │ Gorvath Ironchant 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 │ Vessryn Bloodsong 28 2 │ Selvethra of the Whispering Woods 32 3 │ Korvath the Obsidian 48 4 │ Thauren the Wandering 67 5 │ Maerilith Stormweaver 71 6 │ Aeloria of the Seven Sigils 90 7 │ Zerathorn the Pale 95 8 │ Orlien Silverchant 107 9 │ Eldwyn of the Shimmering Vale 112 10 │ Cyralis Moonbinder 117 11 │ Galdur the Wise 118 12 │ Lyssara Moonveil 124 13 │ kalvotom 127 14 │ Sareth the Verdant 130 15 │ Sylthara the Veiled 145 16 │ Vyrion the Eternal 147 17 │ Caelwyn of the Crystal Spire 151 18 │ Morvain Duskwalker 152 19 │ Valtheris of the Amber Flame 153 20 │ Elithar Dawnseeker 155 21 │ Eldaric Runehand 159 22 │ Kerron the Unseen 161 23 │ Dravok the Gloomed 162 24 │ Faelora Nightbloom 165 25 │ Korthen Deepflame 169 26 │ Tirvian Shadowmantle 198 27 │ Nimriel the Golden 198 28 │ Orren Emberforge 209 29 │ chatgpt 340 30 │ Aldorin the Luminous 340 31 │ Seraphyne Windwhisper 340 32 │ Thamior Embercloak 340 33 │ Velindra the Azure 340 34 │ Thalendir Brightflame 340 35 │ Mirelda Starbloom 340 36 │ Yseline Frostwhisper 340 37 │ Bramor the Tempest 340 38 │ Erenwyn the Whispering 340 39 │ Lunara Dreambinder 340 40 │ Velmaris Lightbinder 340 41 │ Talvorn Runebreaker 340 42 │ Rhovar Mistborn 340 43 │ Ilyrien Dawnpetal 340 44 │ Talmek the Shattered 340 45 │ Maranelle Frostpetal 340 46 │ Xandor the Arcane 340 47 │ Zytherin the Forgotten 340 48 │ Ivenar Spellforge 340 49 │ Althira Starweaver 340 50 │ Dromek the Bound 340 51 │ Nysera Cloudveil 340 52 │ Gorvath Ironchant 340