2023-10-20 bigbai
拆解、剖析、分解、析解、抠字等都是拆字的近义词。这些词都指对一个汉字进行逐部分分析,用各个部分的含义来推测该字的意义。在古时候,许多汉字的构造和形态都有着深刻的含义和象征意义。通过拆字可以更深入地了解汉字的内涵,并更好地理解古代文化。同时,在现代汉语中,很多词语也是通过组合不同的汉字而来的,通过拆字可以更好地理解这些词语的意义和构成。
#include <stdio.h>
#include <windows.h>
#include <time.h>
#include <conio.h>
>>#define frame_height 20 //define map size
#define frame_width 40
#define UP 'w' //define operate key
#define DOWN 's'
#define LEFT 'a'
#define RIGHT 'd'
>>int i,j,k;
char ch=UP; //initial direction
int grow=0; //flag: if snake grow
>>struct Food{
int x;
int y;
}food;
struct Snake{
int x[50];
int y[50];
int len;
int speed;
}snake; //snake[0] is head
>>void init_map(void);
void update_food(void);
void move_snake(void);
int is_alive(void);
void get_speed(void);
void gotoxy(int x, int y);
>>int main()
{
init_map(); //初始化地图
while(1)
{
update_food(); //是否产生食物
get_speed(); //获取速度
move_snake(); //移动蛇身
Sleep(snake.speed); //移动速度
if(!(is_alive())) //蛇的死活(撞墙或自食)
break;
}
printf("Game Over!");
getch();
>>return 0;
}
//initialize
void init_map(void)
{
//initial food
srand(time(NULL));
food.x=rand()%(frame_height-2)+1;
food.y=rand()%(frame_width-2)+1;
gotoxy(food.x, food.y);
printf("!");
//initial snake
snake.x[0]=frame_height/2;
snake.y[0]=frame_width/2;
gotoxy(snake.x[0], snake.y[0]);
printf("@");
snake.len=3;
snake.speed=200;
for(k=1;k<snake.len;k++)
{
snake.x[k]=snake.x[k-1]+1;
snake.y[k]=snake.y[k-1];
gotoxy(snake.x[k], snake.y[k]);
printf("@");
}
//initial bar
for(j=0;j<frame_width;j++)
{
gotoxy(0, j);
printf("#");
gotoxy(frame_height-1, j);
printf("#");
}
for(i=1;i<frame_height-1;i++)
{
gotoxy(i, 0);
printf("#");
gotoxy(i, frame_width-1);
printf("#");
}
}
//generate food
void update_food()
{
if(snake.x[0]==food.x&&snake.y[0]==food.y)
{
srand(time(NULL));
food.x=rand()%(frame_height-2)+1;
food.y=rand()%(frame_width-2)+1;
gotoxy(food.x, food.y);
printf("!");
>>snake.len++;
grow=1;
}
}
//move snake
void move_snake()
{
if(kbhit())
ch=getch();
if(!grow)
{
gotoxy(snake.x[snake.len-1], snake.y[snake.len-1]);
printf(" ");
}
for(k=snake.len-1;k>0;k--)
{
snake.x[k]=snake.x[k-1];
snake.y[k]=snake.y[k-1];
}
switch(ch)
{
case UP: snake.x[0]--;break;
case DOWN: snake.x[0]++;break;
case LEFT: snake.y[0]--;break;
case RIGHT: snake.y[0]++;break;
default: break;
}
gotoxy(snake.x[0], snake.y[0]);
printf("@");
grow=0;
gotoxy(frame_height, 0);
}
//is alive
int is_alive(void)
{
if(snake.x[0]==0||snake.x[0]==frame_height-1||snake.y[0]==frame_width-1||snake.y[0]==0)
return 0;
for(k=1;k<snake.len;k++)
if(snake.x[k]==snake.x[0]&&snake.y[k]==snake.y[0])
return 0;
return 1;
}
//speed up
void get_speed(void)
{
if(snake.len<=6) snake.speed=200;
else if(snake.len<=10) snake.speed=100;
else if(snake.len<=20) snake.speed=50;
else if(snake.len<=30) snake.speed=30;
else snake.speed=20;
}
//move cursor
void gotoxy(int x, int y)
{
HANDLE hout;
COORD cor;
hout=GetStdHandle(STD_OUTPUT_HANDLE);
cor.X=y;
cor.Y=x;
SetConsoleCursorPosition(hout,cor);
}
安桥5008是在2011年6月正式上市的。安桥5008最大的不同之处就是多了HDMI1.4a的支持,能传输3D的影音信号。TX-NA5008为9.1声道输出设计,额定功率为200W×9ch,最大功率为280W×9ch,TX-NA5008背部接口为HDMI1.4a标准,因此可以实现3D立体显示,音频回传(ARC)功能,以及蓝光源码无损音频输出等能力。
SC聚类指标是指戴维森堡丁指数(DBI)和Calinski-Harabaz(CH)。
作者项目的代码是用R跑的,但目前,网络中没有找到现成的可以计算DBI和CH的R程序,python中倒是一堆一堆的。因此作者找到了python计算DBI和CH的源码(R中有直接计算SC的方法)。
CH:CH指标通过计算类中各点与类中心的距离平方和,来度量类内的紧密度,通过计算各类中心点与整个数据集中心点距离平方和来度量数据集的分离度,CH指标由分离度与紧密度的比值得到。从而,CH越大代表着类自身越紧密,类与类之间越分散。(图中nj代表类别j中样本数量,m是所有样本的数量,Cpi和Cj是每个类别的类中心点,X拔是整个数据集的中心点)
SC: SC指标通过计算样本i到同类其他样本的平均距离计算类内的不相似度,通过计算样本i到其他所有类样本的平均距离的最小值计算样本i与类外的不相似度。一个样本i的轮廓系数由类外不相似度减去类内不相似度与类外不相似度和类内不相似度的较大者的比值得到。
DBI:任意两类别的类内样本到类中心平均距离之和除以两类中心点之间的距离,取最大值。DBI越小意味着类内距离越小,同时类间距离越大。
>安桥5008功放好于5007。安桥5008是在2011年6月正式上市的。安桥5008最大的不同之处就是多了HDMI1.4a的支持,能传输3D的影音信号。
TX-NA5008为9.1声道输出设计,额定功率为200W×9ch,最大功率为280W×9ch,TX-NA5008背部接口为HDMI1.4a标准,因此可以实现3D立体显示,音频回传(ARC)功能,以及蓝光源码无损音频输出等能力。
原文链接:https://www.bigbai.cc/news/6667.html
本文版权:如无特别标注,本站文章均为原创。