Author: Côme
Date: 12:37:31 06/20/01
Go up one level in this thread
On June 20, 2001 at 15:23:56, Dann Corbit wrote:
>On June 20, 2001 at 15:06:51, Côme wrote:
>
>>On June 20, 2001 at 13:38:23, Dann Corbit wrote:
>>
>>>On June 20, 2001 at 13:08:10, Mark Young wrote:
>>>[snip]
>>>>Not by me, I don't have a problem with him being a GM, He teaches me chess on
>>>>chess wise. I am not the one who has a problem with a 2484 elo GM, It was not I
>>>>that suggest GM's are not GM's because they don't have a super high rating or
>>>>because they are old.
>>>
>>>However, when they are old, it really does become more and more of a "paper
>>>title" -- let's admit it. There is a huge inertia in ELO calculations. If you
>>>play ten years, starting when you are ten years old, even if you are a prodigy,
>>>it is doubtful you will start out above 1800. So, over a broad span of time,
>>>your ELO figures in thousands of games at below (say) 2200. Imagine the
>>>incredible performance you must achieve to pull the ELO over 2500! You must
>>>play tremendous chess for a very long time to do it. Now, examine the reverse
>>>side of the coin. Suppose you are a super GM who has played for decades. Maybe
>>>for 20 years your ELO was over 2600. If your ELO is now at 2495, it means you
>>>are playing 1800 chess.
>>
>>Hello !
>>That is nonsense Dann and I hope you realise. A past 2600 player who have now
>>2495 doesn't play 1800 chess.All your paragraphe is nonsense may be you should
>>play chess before talking about it.
>
>Sorry, but those are the facts. Suppose a super GM of 2600 ELO plays in a big
>tournament and scores just 1% of the points. That's a rating difference of 800
>ELO. 2600-800 = 1800. Here are the computations:
>
>#include <stdio.h>
>#include <math.h>
>#include "uscf.h"
>
>double provisional_rating(
> double opponent_average_rating,
> unsigned wins,
> unsigned draws,
> unsigned losses
>)
>{
> double new_rating;
> if (wins + draws + losses == 0)
> new_rating = 0.;
> else
> new_rating = opponent_average_rating +
> (400.0 * ((wins + 0.5 * draws) - (0.5 * draws + losses)) /
> (wins + draws + losses));
> return (double) (unsigned) (new_rating + 0.5);
>}
>double established_rating(
> double old_rating,
> double event_score,
> double rating_difference,
> char half_k_event,
> double prize_amount,
> unsigned event_level
>)
>{
> double rating;
> double k = old_rating >= 2400.0 ? 16.0 : old_rating >= 2100.0 ?
>24.0 : 32.0;
> if (half_k_event)
> k *= 0.5;
> rating = old_rating + k * (event_score - win_expectancy(rating_difference));
> if (old_rating <= 2099.0 &&
> rating >= 2100.0 &&
> rating <= 2399.0)
> rating = 2100.0 + (rating - 2100.0) * 0.75;
> else if (old_rating >= 2100.0 &&
> old_rating <= 2399.0 &&
> rating <= 2099.0)
> rating = 2100.0 * (rating - 2100.0) * 1.33;
> else if (old_rating >= 2100.0 &&
> old_rating <= 2399.0 &&
> rating >= 2400.0 &&
> rating <= 3000.0)
> rating = 2400.0 * (rating - 2400.0) * 0.66;
> else if (old_rating >= 2400.0 &&
> old_rating <= 3000.0 &&
> rating >= 2100.0 &&
> rating <= 2399.0)
> rating = 2400.0 * (rating - 2400.0) * 1.50;
> return rating_floor_adj(old_rating, rating, prize_amount, event_level);
>}
>double win_expectancy(
> double rating_difference
>)
>{
> return 1.0 / (pow(10.0, (rating_difference / 400.0)) + 1.);
>}
>double rating_floor_adj(
> double old_rating,
> double new_rating,
> double prize_amount,
> unsigned event_level
>)
>{
> char large_cash_prize = 0;
> double temp_floor = old_rating - 200.0;
> unsigned ltf = ((unsigned) (temp_floor)) % 100UL * 100UL;
> if (old_rating >= 2400 || old_rating <= 100)
> return new_rating;
> if (old_rating < 1600)
> ltf = 100;
> if (old_rating < 2200 && prize_amount >= 1000)
> large_cash_prize = 1;
> else if (old_rating < 2300 && prize_amount >= 1500)
> large_cash_prize = 1;
> else if (old_rating < 2400 && prize_amount >= 2000)
> large_cash_prize = 1;
> if (large_cash_prize)
> ltf = event_level;
> return ltf > new_rating ? (double) ltf : new_rating;
>}
>unsigned long rating_floor(
> double old_rating,
> double new_rating,
> double prize_amount,
> unsigned event_level
>)
>{
> char large_cash_prize = 0;
> unsigned floor_value = (((unsigned) (old_rating - 200)) % 100U) *
>100U;
> if (old_rating >= 2400 || old_rating <= 100)
> return (unsigned long) (new_rating + 0.5);
> if (old_rating < 1600)
> floor_value = 100;
> if (old_rating < 2200 && prize_amount >= 1000)
> large_cash_prize = 1;
> else if (old_rating < 2300 && prize_amount >= 1500)
> large_cash_prize = 1;
> else if (old_rating < 2400 && prize_amount >= 2000)
> large_cash_prize = 1;
> if (large_cash_prize)
> floor_value = event_level;
> return floor_value;
>}
>const char *
> describe_uscf_rating(
> unsigned rating
>)
>{
> char *rating_name;
> if (rating > 2399)
> rating_name = "Senior Master";
> else if (rating >= 2200)
> rating_name = "Master";
> else if (rating >= 2000)
> rating_name = "Expert";
> else if (rating >= 1800)
> rating_name = "Class A";
> else if (rating >= 1600)
> rating_name = "Class B";
> else if (rating >= 1400)
> rating_name = "Class C";
> else if (rating >= 1200)
> rating_name = "Class D";
> else if (rating >= 1000)
> rating_name = "Class E";
> else if (rating >= 800)
> rating_name = "Class F";
> else if (rating >= 600)
> rating_name = "Class G";
> else if (rating >= 400)
> rating_name = "Class H";
> else if (rating >= 200)
> rating_name = "Class I";
> else
> rating_name = "Class J";
> return rating_name;
>}
>char string[32767];
>int main(void)
>{
> double old_rating = 2600;
> double event_score = .01;
> double rating_difference = 100;
> char half_k_event = 0;
> double prize_amount = 100000;
> unsigned event_level = 2500;
> printf("%f\n", established_rating(
> old_rating,
> event_score,
> rating_difference,
> half_k_event,
> prize_amount,
> event_level));
> return 0;
>}
>
>C:\tmp>uscf
>2594.401040
>
>His ELO has now dropped to 2594 from 1600. Can you see how badly he'd have to
>tank it to drop to 2490? It would take a terrific number of tournaments getting
>slaughtered every time.
You mean he only lose 6 pts ??????
All of this is pure nonsense !!!
btw GM blatny just lose about 44 pts in europeen championship and he made a 2250
or 2300 TPR.
Your numbers sucks bigtime you know.
Best regards
Alexandre Côme
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.