master
Miloslav Ciz 2 years ago
parent 1bb79b2097
commit b455cb53ca

143
elo.md

@ -0,0 +1,143 @@
# Elo
The Elo system (named after Arpad Elo, NOT an [acronym](acronym.md)) is a mathematical system for rating the relative strength of players of a certain game, most notably and widely used in [chess](chess.md) but also elsewhere (video games, table tennis, ...). Based on number of wins, losses and draws against other Elo rated opponents, the system computes a number (rating) for each player that highly [correlates](correlation.md) with that player's current strength/skill; as games are played, ratings of players are constantly being updated to reflect changes in their strength. The numeric rating can then be used to predict the probability of a win, loss or draw of any two players in the system, as well as e.g. for constructing ladders of current top players and matchmaking players of similar strength in online games. For example if player A has an Elo rating of 1700 and player B 1400, player A is expected to win in a game with player B with the [probability](probability.md) of 85%. Besides Elo there exist alternative and improved systems, notably e.g. the [Glicko](glicko.md) system (which further adds e.g. confidence intervals).
The Elo system was created specifically for chess (even though it can be applied to other games as well, it doesn't rely on any chess specific rules) and described by Arpad Elo in his 1978 book called *The Rating of Chessplayers, Past and Present*, by which time it was already in use by FIDE. It replaced older rating systems, most notably the [Harkness](harkness.md) system. Despite more "advanced" systems being around nowadays, Elo remains the most widely used one.
**Elo rates only RELATIVE performance**, not absolute, i.e. the rating number of a player says nothing in itself, it is only the DIFFERENCE in rating points between two players that matters, so in an extreme case two players rated 300 and 1000 in one rating pool may in another one be rated 10300 and 11000 (the difference of 700 is the only thing that stays the same, mean value can change freely). This may be influenced by initial conditions and things such as **rating inflation** (or deflation) -- if for example a [chess](chess.md) website assigns some start rating to new users which tends to overestimate an average newcomer's abilities, newcomers will come to the site, play a few games which they will lose, then they [ragequit](ragequit.md) but they've already fed their points to the good players, causing the average rating of a good player to grow over time.
**Keep in mind Elo is a big simplification of reality**, as is any attempt at capturing skill with a single number -- even though it is a very good predictor of something akin a "skill" and outcomes of games, trying to capture a "skill" with a single number is similar to e.g. trying to capture such a multidimensional thing as intelligence with a single dimensional [IQ](iq.md) number. For example due to many different areas of a game to be mastered and different playstyles [transitivity](transitivity.md) may be broken in reality: it may happen that player A mostly beats player B, player B mostly beats player C and player C mostly beats player A, which Elo won't capture.
## How It Works
Initial rating of players is not specified by Elo, each rating organization applies its own method (e.g. assign an arbitrary value of let's say 1000 or letting the player play a few unrated games to estimate his skill).
Suppose we have two players, player 1 with rating *A* and player 2 with rating *B*. In a game between them player 1 can either win, i.e. score 1 point, lose, i.e. score 0 points, or draw, i.e. score 0.5 points.
The expected score *E* of a game between the two players is computed using a [sigmoid function](sigmoid.md) (400 is just a [magic constant](magic_constant.md) that's usually used, it makes it so that a positive difference of 400 points makes a player 10 times more likely to win):
*E = 1 / (1 + 10^((B - A)/400))*
For example if we set the ratings *A = 1700* and *B = 1400*, we get a result *E ~= 0.85*, i.e in a series of many games player 1 will get an average of about *0.85* points per game, which can mean that out of 100 games he wins 85 times and loses 16 times (but it can also mean that out of 100 games he e.g. wins 70 times and draws 30). Computing the same formula from the player 2 perspective gives *E ~= 0.15* which makes sense as the number of points expected to gain by the players have to add up to 1 (the formula says in what ratio the two players split the 1 point of the game).
After playing a game the ratings of the two players are adjusted depending on the actual outcome of the game. The winning player takes some amount of rating points from the loser (i.e. the loser loses the same amount of point the winner gains which means the total number of points in the system doesn't change as a result of games being played). The new rating of player 1, *A2*, is computed as:
*A2 = A + K * (R - E)*
where *R* is the outcome of the game (for player 1, i.e. 1 for a win, 0 for loss, 0.5 for a draw) and *K* is the change rate which affects how quickly the ratings will change (can be set to e.g. 30 but may be different e.g. for new or low rated players). So with e.g. *K = 25* if for our two players the game ends up being a draw, player 2 takes 9 points from player 1 (*A2 = 1691*, *B2 = 1409*, note that drawing a weaker player is below the expected result).
## Some Code
Here is a [C](c.md) code that simulates players of different skills playing games and being rated with Elo. Keep in mind the example is simple, it uses the potentially imperfect `rand` function etc., but it shows the principle quite well. At the beginning each player is assigned an Elo of 1000 and a random skill which is [normally distrubuted](normal_distribution.md), a game between two players consists of each player drawing a random number in range from from 1 to his skill number, the player that draws a bigger number wins (i.e. a player with higher skill is more likely to win).
```
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define PLAYERS 101
#define GAMES 10000
#define K 25 // Elo K factor
typedef struct
{
unsigned int skill;
unsigned int elo;
} Player;
Player players[PLAYERS];
double eloExpectedScore(unsigned int elo1, unsigned int elo2)
{
return 1.0 / (1.0 + pow(10.0,((((double) elo2) - ((double) elo1)) / 400.0)));
}
int eloPointGain(double expectedResult, double result)
{
return K * (result - expectedResult);
}
int main(void)
{
srand(100);
for (int i = 0; i < PLAYERS; ++i)
{
players[i].elo = 1000; // give everyone inital Elo of 1000
// normally distributed skill in range 0-99:
players[i].skill = 0;
for (int j = 0; j < 8; ++j)
players[i].skill += rand() % 100;
players[i].skill /= 8;
}
for (int i = 0; i < GAMES; ++i) // play games
{
unsigned int player1 = rand() % PLAYERS,
player2 = rand() % PLAYERS;
// let players draw numbers, bigger number wins
unsigned int number1 = rand() % (players[player1].skill + 1),
number2 = rand() % (players[player2].skill + 1);
double gameResult = 0.5;
if (number1 > number2)
gameResult = 1.0;
else if (number2 > number1)
gameResult = 0.0;
int pointGain = eloPointGain(eloExpectedScore(
players[player1].elo,
players[player2].elo),gameResult);
players[player1].elo += pointGain;
players[player2].elo -= pointGain;
}
for (int i = PLAYERS - 2; i >= 0; --i) // bubble-sort by Elo
for (int j = 0; j <= i; ++j)
if (players[j].elo < players[j + 1].elo)
{
Player tmp = players[j];
players[j] = players[j + 1];
players[j + 1] = tmp;
}
for (int i = 0; i < PLAYERS; i += 5) // print
printf("#%d: Elo: %d (skill: %d\%)\n",i,players[i].elo,players[i].skill);
return 0;
}
```
The code may output e.g.:
```
#0: Elo: 1134 (skill: 62%)
#5: Elo: 1117 (skill: 63%)
#10: Elo: 1102 (skill: 59%)
#15: Elo: 1082 (skill: 54%)
#20: Elo: 1069 (skill: 58%)
#25: Elo: 1054 (skill: 54%)
#30: Elo: 1039 (skill: 52%)
#35: Elo: 1026 (skill: 52%)
#40: Elo: 1017 (skill: 56%)
#45: Elo: 1016 (skill: 50%)
#50: Elo: 1006 (skill: 40%)
#55: Elo: 983 (skill: 50%)
#60: Elo: 974 (skill: 42%)
#65: Elo: 970 (skill: 41%)
#70: Elo: 954 (skill: 44%)
#75: Elo: 947 (skill: 47%)
#80: Elo: 936 (skill: 40%)
#85: Elo: 927 (skill: 48%)
#90: Elo: 912 (skill: 52%)
#95: Elo: 896 (skill: 35%)
#100: Elo: 788 (skill: 22%)
```
We can see that Elo quite nicely correlates with the player's real skill.

@ -15,7 +15,7 @@ See [WTF](wtf.md).
### How does LRS differ from [suckless](suckless.md), [KISS](kiss.md) and similar types of software?
Technically these sets largely overlap and LRS is sometimes just a slightly different angle of looking at the same things. I have invented LRS as my own take on suckless software -- as I cannot speak on behalf of the whole suckless community, I have created my own "fork" and simply set my own definitions without worrying about misinterpreting and misquoting someone else. However, LRS does have its specific ideas and areas of focus. The main point is that **LRS is derived from an unconditional love of all life** rather than some shallow idea such as "[productivity](productivity_cult.md)". In practice this leads to such things as a high stress put on [public domain](public_domain.md) and legal safety, altruism, anti-capitalism, accepting software such as games as desirable type of software, NOT subscribing to the [productivity cult](productivity_cult.md), seeing [privacy](privacy.md) as ultimately undesirable etc.
Technically these sets largely overlap and LRS is sometimes just a slightly different angle of looking at the same things. I have invented LRS as my own take on suckless software -- as I cannot speak on behalf of the whole suckless community, I have created my own "fork" and simply set my own definitions without worrying about misinterpreting and misquoting someone else. However, LRS does have its specific ideas and areas of focus. The main point is that **LRS is derived from an unconditional love of all life** rather than some shallow idea such as "[productivity](productivity_cult.md)". In practice this leads to such things as a high stress put on [public domain](public_domain.md) and legal safety, altruism, anti-capitalism, accepting software such as games as desirable type of software, NOT subscribing to the [productivity cult](productivity_cult.md), seeing [privacy](privacy.md) as ultimately undesirable etc. While suckless is apolitical and its scope is mostly limited to software, LRS speaks about the whole society.
### Why this obsession with extreme simplicity? Is it because you're too stupid to understand complex stuff?
@ -29,7 +29,7 @@ Simplicity is crucial not only for the quality of technology, i.e. for example i
Going for the simple technology doesn't necessarily have to mean we have to give up the "nice things" such as computer games or 3D graphics. Many things, such as responsiveness and customizability of programs, would improve. Even if the results won't be so shiny, we can recreate much of what we are used to in a much simpler way. You may now ask: why don't companies do things simply if they can? Because complexity benefits them in creating de facto monopolies, as mentioned above, by reducing the number of people who can tinker with their creations. And also because capitalism pushes towards making things quickly rather than well -- and yes, even non commercial "FOSS" programs are pushed towards this, they still compete and imitate the commercial programs. Already now you can see how technology and society are intertwined in complex ways that all need to be understood before one comes to realize the necessity of simplicity.
### How would you ideal society work? Isn't it a utopia?
### How would your ideal society work? Isn't it utopia?
See the article on [less retarded society](less_retarded_society.md), it contains a detailed FAQ especially on that.
@ -71,9 +71,9 @@ We're not fascists, we're in fact the exact opposite: our aim is to create techn
What we do NOT engage in is political correctness, censorship, offended culture, identity politics and pseudoleftism. We do NOT support fascist groups such as feminists and LGBT and we will NOT practice bullying and [codes of conducts](coc.md). We do not pretend there aren't any differences between people and we will make jokes that make you feel offended.
### Why do you use the word Nigger so much?
### Why do you use the word nigger so much?
To counter its censorship. The more they censor something, the more I am going to uncensor it. They have to learn that the only way to make me not say that word so often is to stop censoring it, so to their action of censorship I produce a reaction they dislike. That's basically how you train a dog. (Please don't ask who "they" are.).
To counter its censorship, we mustn't be afraid of words. The more they censor something, the more I am going to uncensor it. They have to learn that the only way to make me not say that word so often is to stop censoring it, so to their action of censorship I produce a reaction they dislike. That's basically how you train a dog. (Please don't ask who "they" are, it's pretty obvious).
It also has the nice side effect of making this less likely to be used by corporations and SJWs.
@ -87,7 +87,7 @@ OK, firstly we do NOT love *everything*, we do NOT advocate against hate itself,
Now when it comes to *"hating"* people, there's an important distinction to be stressed: we never hate a living being as such, we may only hate their properties. So when we say we *hate* someone, it's merely a matter of language convenience -- saying we *hate* someone never means we hate a person as such, but only some thing about that person, for example his opinions, his work, actions, behavior or even appearance. I can hear you ask: what's the difference? The difference is we'll never try to eliminate a living being or cause it suffering because we love it, we may only try to change, in non-violent ways, their attributes we find wrong (which we *hate*): for example we may try to educate the person, point out errors in his arguments, give him advice, and if that doesn't work we may simply choose to avoid his presence. But we will never target hate against him.
And yeah, of course sometimes we make jokes and sarcastic comments, it is relied on your ability to recognize those yourself.
And yeah, of course sometimes we make [jokes](jokes.md) and sarcastic comments, it is relied on your ability to recognize those yourself. We see it as retarded and a great insult to intelligence to put disclaimers on jokes, that's really the worst thing you can do to a joke.
### So you really "love" everyone, even dicks like Trump, school shooters, instagram influencers etc.?
@ -99,11 +99,11 @@ This is not a question you dummy. Have you even read the title of this page? Any
### Lol you've got this fact wrong and you misunderstand this and this topic, you've got bugs in code, your writing sucks etc. How dare you write about things you have no clue about?
I want a public domain encyclopedia that includes topics of new technology. Since this supposedly modern society failed to produce even a single one and since every idiot on this planet wants to keep his copyright on everything he writes, I am forced to write the encyclopedia myself, even for the price of making mistakes. No, US public domain doesn't count as world wide public domain. Blame this society for not allowing even a tiny bit of information to slip into public domain. Writing my own encyclopedia is literally the best I can do in the situation I am in. Nothing is perfect, I still believe this can be helpful to someone. You shouldn't take facts from a random website for granted. If you wanna help me correct errors, email me.
I want a public domain encyclopedia that includes topics of new technology, and also one which doesn't literally make me want to kill myself due to inserted propaganda of evil etc. Since this supposedly modern society failed to produce even a single such encyclopedia and since every idiot on this planet wants to keep his copyright on everything he writes, I am forced to write the encyclopedia myself, even for the price of making mistakes. No, US public domain doesn't count as world wide public domain. Even without copyright there are still so called [moral rights](moral_rights.md) etc. Blame this society for not allowing even a tiny bit of information to slip into public domain. Writing my own encyclopedia is literally the best I can do in the situation I am in. Nothing is perfect, I still believe this can be helpful to someone. You shouldn't take facts from a random website for granted. If you wanna help me correct errors, email me.
### How can you use [CC0](cc0.md) if you, as anarchists, reject laws and intellectual property?
We use it to **remove** law from our project. Using a [license](license.md) such as [GFDL](gfdl.md) would mean we're keeping our copyright and are willing to execute enforcement of intellectual property laws, however using a CC0 [waiver](waiver.md) means we GIVE UP all lawful exclusive rights that have been forced on us. This has no negative effects: if law applies, then we use it to remove itself, and if it doesn't, then nothing happens. To those that acknowledge the reality of the fact that adapting proprietary information can lead to being bullied by the state we give a guarantee this won't happen, and others simply don't have to care.
We use it to **remove** law from our project, it's kind of like using a weapon to destroy itself. Using a [license](license.md) such as [GFDL](gfdl.md) would mean we're keeping our copyright and are willing to execute enforcement of intellectual property laws, however using a CC0 [waiver](waiver.md) means we GIVE UP all lawful exclusive rights that have been forced on us. This has no negative effects: if law applies, then we use it to remove itself, and if it doesn't, then nothing happens. To those that acknowledge the reality of the fact that adapting proprietary information can lead to being bullied by the state we give a guarantee this won't happen, and others simply don't have to care.
### What software does this wiki use?
@ -113,7 +113,7 @@ We use it to **remove** law from our project. Using a [license](license.md) such
No.
### Are you the only one in the world who is not affected by the propaganda?
### Are you the only one in the world who is not affected by propaganda?
It definitely seems so.

@ -98,4 +98,4 @@ Other technology than software may also be aligned with LRS principles, e.g.:
- **[Knives](knife.md)** are pretty less retarded.
- [rocks](rock.md)
- [chess](chess.md)
- [football](football.md)
- street [football](football.md)

@ -34,6 +34,7 @@ Are you a noob but see our ideas as appealing and would like to join us? Say no
## Did You Know
- That all [Intel](intel.md) [processors](cpu.md) since 2008 (and [AMD](amd.md) processors since 2013) have a hardware [backdoor](backdoor.md) ([Intel ME](intel_me.md), [AMD PSP](amd_psp.md)) that allow spying on users of those processors no matter what operating system they run?
- That [capitalism](capitalism.md) is probably the most [retarded](retard.md) and dangerous idea in [history](history.md)?
- You can mathematically [prove you don't know some information](no_knowledge_proof.md)?
- That a complement of a [formal language](formal_language.md) can be computationally simpler than the original -- for example that a [pushdown automaton](pushdown_automaton.md) cannot tell which strings are of form a^(n)b^(n)c^(n), but it can tell exactly which ones are not?

@ -2,7 +2,9 @@
Soyence is propaganda, [politics](politics.md) and [business](business.md) claiming to be and trying to blend with [science](science.md), nowadays promoted typically by [pseudoleftist](pseudoleft.md) [soyboys](soyboy.md). It is what the typical reddit [atheist](atheism.md) believes is science or what Neil De Grass Tyson tells you is science. Soyence calls itself science and [gatekeeps](gatekeeping.md) the term science by calling unpopular science -- such as that regarding human [race](race.md) or questioning big pharma [vaccines](vaccine.md) -- "[pseudoscience](pseudoscience.md)". Soyence itself is pseudoscience but it has the added attribute of promoting some politics.
Compared to good old [fun](fun.mf) pseudosciences such as [astrology](astrology.md), soyence is extra sneaky by purposefully blending in with real science, i.e. within a certain truly scientific field, such as biology, there is a soyentific cancer mixed in by activists, corporations and state, that may be hard to separate for common folk and sometimes even pros. This is extremely harmful as the underlying science gives credibility to propaganda bullshit.
Compared to good old [fun](fun.mf) pseudosciences such as [astrology](astrology.md), soyence is extra sneaky by purposefully trying to blend in with real science, i.e. within a certain truly scientific field, such as biology, there is a soyentific cancer mixed in by activists, corporations and state, that may be hard to separate for common folk and sometimes even pros. This is extremely [harmful](harmful.md) as the neighboring science gives credibility to propaganda bullshit.
Soyence uses all the cheap tricks of politics to win stupid people, it builds on the cult of bullying religion, overuse of "rationality", building cults of personality ("science educators", the [gatekeepers](gatekeeping.md) of "science") and appealing to egoism and naivity of wannabe smartasses while at the same time not even holding up to principles of science such as genuine objectivity. A soyence kid will for example keep preaching about how everything should be proven by reproducible experiments while at the same time accepting [de facto](de_facto.md) irreproducible results, e.g. those obtained with billion dollar worth research performed at [CERN](cern.md) which can NOT be reproduced anywhere else than at CERN with thousands of top scientist putting in years of work. Such results are not reproducible in practice, they are accepted on the basis of pure faith. The kid will argue that in theory someone else can build another CERN and reproduce the results, but that won't happen in practice, it's just a purely theoretical unrealistic scenario so his version of what "science" is is really based on reproducibility that only works in a dreamed up world, this kind of reproducibility doesn't at all fulfill its original purpose of allowing others to check, confirm or refute the results of experiments. This starts to play a bigger role when for example vaccines start to get promoted by the government as "proven safe by science" (read "claimed safe by a corporation who makes money off of people being sick"), the soyence kid will gladly accept the vaccine and [fight](fight_culture.md) for their acceptance just thanks to this label, not based on any truly scientific facts but out of pure faith in self proclaimed science authorities -- here the soyentist is relying purely on faith, a concept he would like to think he hates with his soul.
Soyence relies on low [IQ](iq.md), shallow education and popular "science education" (e.g. neil de grass), while making its followers believe they are smart. It produces propaganda material such as "documentaries" with Morgan Freeman, series like The Big Bang Theory and [YouTube](youtube.md) videos with titles such as "Debunking Flat Earth with FACTS AND LOGIC", so there's a huge mass of [NPCs](npc.md) thinking they are Einsteins who blindly support this cult. Soyence attacks science from within by attacking its core principles, i.e. it tries to ridicule and punish thinking outside the box and asking specific questions -- in this it is not dissimilar to a mass [religion](religion.md).

@ -14,4 +14,6 @@ Creating a TAS is not an easy task, it requires great knowledge of the game (man
There also exists a term *tool assisted superplay* which is the same principle as TAS but basically with the intention of just flexing, without the goal of finishing the game fast (e.g. playing a [Doom](doom.md) level against hundreds of enemies without taking a single hit).
Some idiots are against TASes for various reasons, mostly out of fear that TASers will use the tools to cheat in RTAs or that TASes will make the human runners obsolete etc. That's all bullshit of course, as can e.g. be seen in the case of [Trackmania](trackmania.md) -- in 2021 TAS tools started to appear for Trackmania and many people feared it would kill the game's competition, however after the release of the tools no such disaster happened, TAS became hugely popular and now everyone loves it, human competition happily continues, plus the development of the tools actually helped uncover many cheaters among the top players (such as Riolu who was forced to leave the scene, this caused a nice drama in the community).
Some idiots are against TASes for various reasons, mostly out of fear that TASers will use the tools to [CHEAAAAAAAT](cheating.md) in RTAs or that TASes will make the human runners obsolete etc. That's all bullshit of course, it's like being against computers out of fear they would make human calculators obsolete. Furthermore TASes always coexist perfectly peacefully with RTA runs as can e.g. be seen in the case of [Trackmania](trackmania.md) -- in 2021 TAS tools started to appear for Trackmania and many people feared it would kill the game's competition, however after the release of the tools no such disaster happened, TAS became hugely popular and now everyone loves it, human competition happily continues, plus the development of the tools actually helped uncover many cheaters among the top players (especially Riolu who was forced to leave the scene, this caused a nice drama in the community).
We could even go as far as to say that morally TAS is the superior way of speedrunning as it puts humans in the role or thinkers rather than treating them as wannabe machines who waste enormous amounts of time on grinding real time runs with arbitrary obstacles (such as requiring a run to not be spliced etc.), which a real machine can simply do instantly and perfectly. There is really no point in someone spending 10000 hours of life on getting lucky and nailing a series of frame perfect keypresses when a computer can do this in 1 second.

@ -0,0 +1,7 @@
# Donald Trump
*"me goin to hav covfefe"* --president of the [United States](usa.md)
TODO
He is the smartest [capitalist](capitalism.md) of all time, which puts his intellect somewhere between a dolphin and a rat. When written in [binary](binary.md), his [IQ](iq.md) goes into triple digits!
Loading…
Cancel
Save