//--------------------------------------------------------------------------- void __fastcall TForm1::N2Click(TObject *Sender) { Automat automat(0); for(int i=1; i<Memo1->Text.Length()-1; i++) { Memo2->Text=Memo2->Text+"\r\n("+ Memo1->Text[i]+", "+ AnsiString(automat.psi(automat.q,Memo1->Text[i]))+", "+ AnsiString(automat.phi(automat.q,Memo1->Text[i]))+")"; } }
void generate_random_conjunct(const config::config & conf, const config::workload & wconf, size_t source, SELECTIVITY::type sel, size_t target, workload::conjunct & conj) { automaton automat(conf); size_t nb_disjuncts = uniform_random_generator(wconf.disjuncts.first, wconf.disjuncts.second).next(); conj.disjuncts.resize(nb_disjuncts); if (nb_disjuncts < MIN_DISJUNCTS) MIN_DISJUNCTS = nb_disjuncts; if (nb_disjuncts > MAX_DISJUNCTS) MAX_DISJUNCTS = nb_disjuncts; auto length_gen = uniform_random_generator(wconf.length.first, wconf.length.second); for (auto & disjunct : conj.disjuncts) { size_t len = length_gen.next(); generate_random_disjunct(automat, source, sel, target, len, wconf.length.second, disjunct); } }
int main(int argc, char *argv[]) { char *c="obraz"; char nazwa_obr[10]; int i; int sizex=0; int sizey=0; int siatka[100][100]; int csiatka[100][100]; int ilosc_gen; FILE* in=fopen(argv[1], "r");/*plik z wspolrzednymi aktywnymi*/ FILE* in2=fopen(argv[2], "r");/*plik z wymiarami siatki*/ fscanf(in2,"%d %d", &sizex,&sizey); siatka[100][100]=siatka[sizex][sizey]; csiatka[100][100]=csiatka[sizex][sizey]; printf("Proszę podać ilość generacji:\n"); scanf("%d", &ilosc_gen); wyzeruj(sizex, sizey, siatka); wyzeruj(sizex, sizey, csiatka); wprowadz_gen(sizey, csiatka, in); for(i=0; i< ilosc_gen ; i++){ sprintf(nazwa_obr,"%s%d.png",c,i); automat(sizex, sizey, siatka, csiatka); process_file(sizex, sizey, siatka); write_png_file(nazwa_obr); } return 0; }
//--------------------------------------------------------------------------- void __fastcall TForm1::N2Click(TObject *Sender) { for(int i=1;i<=4;i++) for(int j=1;j<=4;j++) Q[j-1][i-1]=StrToInt(s->Cells[i][j]); for(int len=2;len<5;len++) { bool foundsameglobal = false; Memo1->Text=Memo1->Text+"–езультат дл¤ слов длины "+len+"\r\n—лово \tдл¤ Vq0\tдл¤ Vq1\tдл¤ Vq2\tдл¤ Vq3\r\n"; AnsiString str="000000"; for(int ex=0;ex<(1<<len);ex++) { bool foundsame = false; bool found[32]; for(int j=0;j<32;j++)found[j]=false; for(int j=0;j<len;j++) { if((ex>>j)%2==0)str[len-j]='0'; else str[len-j]='1'; } Memo1->Text=Memo1->Text+str+"\t"; for(int j=0;j<s->ColCount-1;j++) { Automat automat(j); Memo1->Text=Memo1->Text+"\t"; int sost=0; for(int i=1; i<=len; i++) { Memo1->Text=Memo1->Text+ AnsiString(automat.psi(str[i])); sost=automat.phi(str[i]); } if(found[sost])foundsame=true; found[sost]=true; } Memo1->Text=Memo1->Text+"\r\n"; if(foundsame)foundsameglobal=true; if(foundsame)Memo1->Text=Memo1->Text+"јвтоматы неотличимы по слову "+str+"\r\n"; } //if(foundsameglobal)Memo1->Text=Memo1->Text+"\r\nјвтоматы неотличимы по слову длины "+len+"\r\n"; if(foundsameglobal)break; }
int main(void) { unsigned int c; /* * Initialize UART library, pass baudrate and AVR cpu clock * with the macro * UART_BAUD_SELECT() (normal speed mode ) * or * UART_BAUD_SELECT_DOUBLE_SPEED() ( double speed mode) */ uart_init( UART_BAUD_SELECT(UART_BAUD_RATE,F_CPU) ); DDRC = 0xff; /* Enable output on all of the B pins */ PORTC = 0x00; /* Set them all to 0v */ /* * now enable interrupt, since UART library is interrupt controlled */ sei(); uart_putc('\n'); uart_putc('\r'); echo_vol(); for(;;) { /* * Get received character from ringbuffer * uart_getc() returns in the lower byte the received character and * in the higher byte (bitmask) the last receive error * UART_NO_DATA is returned when no data is available. * */ c = uart_getc(); if ( c & UART_NO_DATA ) { /* * no data available from UART */ //if ( mode == 'r' ){ //rotate(last_direction); cli(); automat(); sei(); //} } else { switch (c) { case 'r': uart_puts_P("RIGHT\n\r"); target=target+tsteps; last_direction = 'r'; mode = 'r'; //rotate('r'); break; case 'l': uart_puts_P("LEFT\n\r"); target=target-tsteps; last_direction = 'l'; mode = 'r'; //rotate('l'); break; case 's': uart_puts_P("STOP\n\r"); mode = 's'; PORTC = 0x00; break; case 'c': uart_puts_P("CALIBRATE\n\r"); vol = 0; target=0; break; case 'i': echo_vol(); break; case 't': uart_puts_P("Target\n\r"); mode = 'r'; while (1) { c = uart_getc(); if (~ c & UART_NO_DATA ) { target = (unsigned int) c * FACTOR; break; } } ltoa(target, target_str, 10); uart_puts("New Target:\n\r"); uart_puts(target_str); uart_puts("\n\r"); break; default: uart_puts_P("\n\rr - Right\n\rl - Left\n\rs - stop\n\rc - Calibrate\n\rt - Target\n\ri - Info\n\r"); echo_vol(); break; } } } }