I ran this simple code:

```
#[test]
fn play() {
let now = Instant::now();
let mut result: usize = 0;
for j in (1..100_0000 + 1).rev() {
result += j
}
println!("{}", result);
println!("{:?}", now.elapsed());
let now = Instant::now();
let mut result: usize = 0;
for j in (1..=100_0000).rev() {
result += j
}
println!("{}", result);
println!("{:?}", now.elapsed());
let now = Instant::now();
let mut result: usize = 0;
for j in 1..100_0001 {
result += j
}
println!("{}", result);
println!("{:?}", now.elapsed());
let now = Instant::now();
let mut result: usize = 0;
for j in 1..=100_0000 {
result += j
}
println!("{}", result);
println!("{:?}", now.elapsed());
}
```

and got the output:

```
running 1 test
500000500000
23.868379ms
500000500000
53.537635ms
500000500000
54.150509ms
500000500000
51.44193ms
```

Why is the reversed Range (exlusive) version faster than others?