- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
#include <stdio.h>
#include <stdint.h>
#define ARR_L 11
#define INS_P (arr[0])
#define MOD_L(a) ((a) % ARR_L)
#define INS_P_M (MOD_L(INS_P))
#define ARR_ACS(a) (arr[MOD_L(a)]) //access to arr
void foo (uint8_t *arr)
{
ARR_ACS(3) = INS_P * ARR_ACS(INS_P);
ARR_ACS( MOD_L( INS_P_M + 1 ) ) = ((INS_P * INS_P) * 2);
if (INS_P != 0) {ARR_ACS(INS_P_M)++;};
INS_P = INS_P_M + 1;
// tut voobche lubaya fignya, kotoraya chtoby izmenyala
// figny v massive v zavisimosti ot sostoyania massiva
}
int main(void) {
uint8_t arr[ARR_L] = {0,2,6,3,2,62,7,113,0,26,13};
for (size_t a = 0; a < 10000; a++)
{
foo(arr);
printf
(
"%.3u %.3u %.3u %.3u %.3u "
"%.3u %.3u %.3u %.3u %.3u %.3u\n",
INS_P,arr[1],arr[2],arr[3],arr[4],
arr[5],arr[6],arr[7],arr[8],arr[9],arr[10]);
}
return 0;
}
Машина Тьюринга с лентой конечной длины - конечный автомат. Состояние обязательно зациклится, какие бы правила преобразования над конечным алфавитом мы не вводили и каким бы ни было начальное состояние ленты.
В сишке есть возможности вменяемо сделать вывод чисел из массива подряд для N-ного количества аргументов?
Цикл не предлагать