Кто поможет с комбинаторикой?! Вся запуталась :-(((
Сколько целых чисел от 0 до 999 999
в десятичной записи которых нет двух одинаковых, рядом стоящих цифр?
Сыну, семикласснику надо это как-то объяснить, и сама вся запуталась....вот...
Шестизначных чисел от 100 000 до 999 999 существует 900 000. Из них у 90% (810 000) первая и вторая цифры различны. Из этих 810 000 чисел у 90% (т. е. 729 000) различны вторая и третья цифры. Из этих 729 000 чисел у 90% (т. е 656 100) различны третья и четвёртая цифра. И т. д.
Короче, число шестизначных чисел, у которых нет рядом стоящих одинаковых чисел равно:
900 000 • 0.9 • 0.9 • 0.9 • 0.9 • 0.9 = 1 000 000 • (0.9^6) = 9^6 = 531 441.
Аналогично, для n-значного чисел это равно 9^n.
Поскольку числа от 0 до 999 999 включают шестизначные, пятизначные, четырёхзначные и т. д. числа и ноль, то искомое число равно:
S(6) = 9^6 + 9^5 + 9^4 + 9^3 + 9^2 +9^1 + 9^0
Воспользовавшись формулой для суммы геометрической прогрессии получим
S(6) = (9^7–1)/8 = 597 871
В общем случае

Небольшая программка на паскале, которая путём перебора получает то же самое число:
var i,j,n1,n2,n,cnt:longint;
begin
cnt:=0;
for i:=0 to 999999 do begin
n1:=i mod 10; n:=i;
for j:=0 to 6 do begin
n:=n div 10;
if n=0 then break;
n2:=n mod 10;
if n1=n2 then begin inc(cnt); break end;
n1:=n2;
end;
end;
writeln(1000000-cnt);
end.
Мне кажется, нужно решать так:
Найти последовательно количество чисел, где есть хотя бы две стоящие рядом одинаковые цифры:
двузначные числа: 9
трехзначные числа: 9(10+9) = 171
черырехзначные числа: 9(100+9(10+9)) = 1071
пятизначные числа: 9(1000+9(100+9(10+9)+9)) = 11520
шестизначные числа: 9(10000+9(1000+9(280)+180)) = 101700
Все числа, имеющие хотя бы две стоящие рядом одинаковые цифры = 9 + 171 + 1071 + 11520 + 101700 = 114471
Все числа, не имеющие двух стоящих рядом одинаковых цифр = 1000000 - 114471 = 885529