Была задачка такая в школе у нас на одной важной работе. Про пещеры и клад. К ней нужно было применить алфавитный подход...
<<<span>Известно, что ровно в двух пещерах из пяти есть клады. Сколько битов нужно, чтобы закодировать информацию о расположении кладов?>>
Если задачу решать традиционно, как на первый взгляд кажется - изящно, то ответ получится примерно таков:
1 2 3 4 5
0 1 0 0 1
Итого: 5 битов.
Мы же говорим о рациональном подходе. Всего 5 пещер. В двух клады. Сколько вариантов расположения кладов существует?
1 2 3 4 5
1-2,1-3,1-4,1-5,2-3,2-4,2-5,3-4,3-5,4-5
Итого: 10 вариантов - вот тебе и алфавит. Можешь пронумеровать варианты(0, 1,2,3...) и информацию хранить будешь в скольки битах?
10=2^i
2^3=8(10 сюда не входит)
2^4=16(10 входит. Пусть будет немного лишней информации, зато она не потеряется.)
Получаем 4 бита.</span>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Введите строку: ");
string str = Console.ReadLine();// строка
Console.WriteLine("Введите подстроку: ");
string podstr = Console.ReadLine();//подстрока
var temp = str.Split().Where(i => i.Contains(podstr));
Console.WriteLine("Слова содержащие подстроку:");
foreach (var word in temp)
Console.Write(word + " ");
Console.ReadLine();
}
}
}
Ответ:
3^2-(7-6)=8
Объяснение:
2 Степень тройки это как бы 3*3, так что это не совсем подходит по условию, но по другому я не смог придумать.
Все эти предметы сгруппированы тем что в автомобиле ты сидишь, в самолете, на стуле, и за столом ты тоже сидишь.
Вот программный код на паскале:
<span>var
m,n: integer;
begin
read(m,n);
if m > n then
begin
writeln('1 paket tyajelee');
writeln('Ves tyajologo bolee paketa = ',m);
end ;</span>
<span>if m < n
then
begin
writeln('2 paket tyajelee');
writeln('Ves tyajologo bolee paketa = ',n);
end;
readln;
end.</span>