public void A580375() {
var size = 10;
var maxDelta = 1;
var iters = 100000;
var counter = Enumerable.Range(0, size).Select(x => 0).ToList();
var k = 1;
for (var z = 0; z < iters; z++) {
var a = new int[size];
for (var i = 0; i < a.Length; i++) {
a[i] = i;
}
for (var i = size - 1; i >= 0; --i) {
for (var j = 0; j < k; j++) {
var h = Math.Max(i - maxDelta, 0);
var g = Math.Min(i + maxDelta, a.Length - 1);
if (Dswap(a, i, MathUtils.Random(h, g + 1), maxDelta)) {
// break;
}
}
}
for (var i = 0; i < size; i++) {
if (a[i] == 4) {
counter[i]++;
}
}
}
Debug.WriteLine(counter.Select(x => $"{100d * x / iters:F1}%").JoinToString(", "));
}