Машина Тьюринга Заданная конечная последовательность меток, записанных в клетки ленты подряд, без пропусков. Необходимо разработать машину Тьюринга, которая записывать в десятичной системе счисления количество этих меток.
Известный метод артиллерийской вилки, когда пристреливаются по принципу "перелет - недолет". Пусть отверстия пронумерованы от 1 до 15. Сначала пробуем отверстие №8 (посередине ряда). Если валик не помещается, следующим пробуем середину участка 8-15, т.е. отверстие №12. а если проваливается - то середину участка 1-8, т.е. отверстие №4. Далее, по аналогии, пробуем середину отрезка левее или правее сделанной пробы, т.е. отверстия с четными номерами. И четвертая проба будет контрольной - отверстие с нечетным номером. Контрольная - потому что место валика и так уже понятно.
Пусть отверстия пронумерованы от 1 до 15. Сначала пробуем отверстие №8 (посередине ряда). Если валик не помещается, следующим пробуем середину участка 8-15, т.е. отверстие №12. а если проваливается - то середину участка 1-8, т.е. отверстие №4. Далее, по аналогии, пробуем середину отрезка левее или правее сделанной пробы, т.е. отверстия с четными номерами. И четвертая проба будет контрольной - отверстие с нечетным номером. Контрольная - потому что место валика и так уже понятно.
#include <conio.h>
#include <time.h>
using namespace std;
void main()
{
srand(time(NULL));
setlocale(0, "");
int arr[17];
int a, b, chet=0, nechet = 0;
cout << "Введите диапазон ." << endl << "Нижняя граница диапазона: "; cin >> a; cout << "Верхняя граница диапазона: "; cin >> b; cout << endl;
for (int i = 0; i < 17; ++i)
{
arr[i] = a + rand() % (b-a+1);
cout <<" "<<arr[i];
}
for (int i = 0; i < 17; ++i)
{
if (arr[i] % 2 == 0) chet++;
else nechet++;
} if (chet > nechet)
cout << " \n Четных больше";
else if (nechet>chet)
cout << "\n Нечетных больше";
else cout << "\n Одинаковое количество четных и нечетных";
_getch();
}