1) И так, нам надо, что в слове всего 4 буквы и у нас есть 6 букв.
Поделим решение на две части: в первой части посчитаем все варианты, в которых буква Г стоит на первом месте, а во второй - где Г стоит на последнем.
Первая часть
Если буква Г стоит на первом месте, то у нас остается 3 "ячейки" под буквы (так как в слове 4 буквы и первая уже дана). В каждую из этих ячеек может стать любая из данных букв, КРОМЕ Г, так как сказано, что она встречается только один раз и она уже встретилась. То есть всего букв 5 и 3 ячейки. 5 вариантов букв во вторую * 5 вариантов в третью * 5 вариантов в четвертую = 125 вариантов. То есть всего есть 125 вариантов расстановки, если Г стоит на первом месте.
Вторая часть
Тут все абсолютно аналогично! Только Г стоит не на первом, а на последнем месте, и мы разбираем не вторую, третью и четвертую ячейки, а первую, вторую и третью. Тут тоже будет 125 вариантов.
То есть всех вариантов 125 + 125 = 250. Не так много слов однако.
2) Решение схоже с первой задачей. нам дано, что есть 3 буквы в слове и 6 букв на выбор. Но Я встречается или на первой, или на третьей позиции, или вообще не встречается.
Сначала посчитаем все случаи, когда Я не встретится вообще. Тогда нам надо 3 ячейки под буквы и 5 букв выбор, то есть 5 * 5 * 5 = 125 вариантов (без Я).
Теперь рассмотрим варианты с Я:
Первый
Я стоит на первой позиции. Тогда во второй и в третьей ячейке есть по 5 вариантов(так как букв 5), то есть 5 * 5 = 25 вариантов.
Второй
Я стоит на третьей позиции, тогда в первой и во второй ячейке есть по 5 вариантов, то есть всего 5 * 5 = 25 вариантов.
Всего будет 25 + 25 + 125 вариантов = 175 вариантов.
// PascalABC.NET 3.1, сборка 1250 от 28.05.2016 begin var a:=ArrRandom(30,1960,2016); a.Println; var iFirst:=a.IndexMin; var iLast:=iFirst; var vMin:=a[iFirst]; for var i:=29 downto iFirst+1 do if a[i]=vMin then begin iLast:=i; break end; if iLast=iFirst then Writeln('Самый старший человек номер ',iFirst+1) else Writeln('Первый из самых старших людей имеет номер ', iFirst+1,', последний из людей этого возраста - номер ', iLast+1) end.
Тестовое решение 1987 1971 1974 1989 1989 1960 1987 2016 1992 1962 1971 2011 1993 1962 2008 1994 1994 1976 1988 2014 2011 1960 1971 2000 1973 2010 1964 1976 1971 1993 Первый из самых старших людей имеет номер 6, последний из людей этого возраста - номер 22
1) И так, нам надо, что в слове всего 4 буквы и у нас есть 6 букв.
Поделим решение на две части: в первой части посчитаем все варианты, в которых буква Г стоит на первом месте, а во второй - где Г стоит на последнем.
Первая часть
Если буква Г стоит на первом месте, то у нас остается 3 "ячейки" под буквы (так как в слове 4 буквы и первая уже дана). В каждую из этих ячеек может стать любая из данных букв, КРОМЕ Г, так как сказано, что она встречается только один раз и она уже встретилась. То есть всего букв 5 и 3 ячейки. 5 вариантов букв во вторую * 5 вариантов в третью * 5 вариантов в четвертую = 125 вариантов. То есть всего есть 125 вариантов расстановки, если Г стоит на первом месте.
Вторая часть
Тут все абсолютно аналогично! Только Г стоит не на первом, а на последнем месте, и мы разбираем не вторую, третью и четвертую ячейки, а первую, вторую и третью. Тут тоже будет 125 вариантов.
То есть всех вариантов 125 + 125 = 250. Не так много слов однако.
2) Решение схоже с первой задачей. нам дано, что есть 3 буквы в слове и 6 букв на выбор. Но Я встречается или на первой, или на третьей позиции, или вообще не встречается.
Сначала посчитаем все случаи, когда Я не встретится вообще. Тогда нам надо 3 ячейки под буквы и 5 букв выбор, то есть 5 * 5 * 5 = 125 вариантов (без Я).
Теперь рассмотрим варианты с Я:
Первый
Я стоит на первой позиции. Тогда во второй и в третьей ячейке есть по 5 вариантов(так как букв 5), то есть 5 * 5 = 25 вариантов.
Второй
Я стоит на третьей позиции, тогда в первой и во второй ячейке есть по 5 вариантов, то есть всего 5 * 5 = 25 вариантов.
Всего будет 25 + 25 + 125 вариантов = 175 вариантов.
Это, в общем - то, и ответ.
begin
var a:=ArrRandom(30,1960,2016); a.Println;
var iFirst:=a.IndexMin;
var iLast:=iFirst;
var vMin:=a[iFirst];
for var i:=29 downto iFirst+1 do
if a[i]=vMin then begin iLast:=i; break end;
if iLast=iFirst
then Writeln('Самый старший человек номер ',iFirst+1)
else Writeln('Первый из самых старших людей имеет номер ',
iFirst+1,', последний из людей этого возраста - номер ',
iLast+1)
end.
Тестовое решение
1987 1971 1974 1989 1989 1960 1987 2016 1992 1962 1971 2011 1993 1962 2008 1994 1994 1976 1988 2014 2011 1960 1971 2000 1973 2010 1964 1976 1971 1993
Первый из самых старших людей имеет номер 6, последний из людей этого возраста - номер 22