⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 markovlet.c

📁 一本由小见大的书籍
💻 C
字号:
/* Copyright (C) 2000 Lucent Technologies *//* Modified from markov.c in 'Programming Pearls' by Jon Bentley *//* markovlet.c -- generate letter-level random text from input text
    Alg: Store text in an array on input
		 Scan complete text for each output character
			(Randomly select one matching k-gram)
 */#include <stdio.h>#include <stdlib.h>

char x[5000000];int main(){	int c, i, eqsofar, max, n = 0, k = 5;
	char *p, *nextp, *q;
	while ((c = getchar()) != EOF)
		x[n++] = c;
	x[n] = 0;	p = x;
	srand(1);	for (max = 2000; max > 0; max--) {
		eqsofar = 0;
		for (q = x; q < x + n - k + 1; q++) {
			for (i = 0; i < k && *(p+i) == *(q+i); i++)
				;
			if (i == k)
				if (rand() % ++eqsofar == 0)
					nextp = q;
		}		c = *(nextp+k);
		if (c == 0)
			break;
		putchar(c);
		p = nextp+1;	}
	return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -