ÓÃRuby дTuring »ú
×î½üÔÚ¿´John E.Hopcroft,Rajeev Motwani,Jeffrey D.Ullman Èý¾ÞͷдµÄIntroduction to Automata Theory,Language,and Computation£¬Ïëдһ¸öTuring »úÑéÖ¤Ò»ÏÂ×Ô¼ºÐ´µÄ×´Ì¬×ªÒÆº¯Êý¶Ô²»¶Ô¡£ÀÁµÃºÜ£¬ÍøÉÏËÑÁ˼¸¸ö²»´íµÄ¡£µ«Ruby Quiz ÉϵÄÕâ¸ö×î¼òµ¥¡£
162 Turing »ú
ÎÊÌâÃèÊö
Quiz
description by James Edward Gray II
Turing »úÊÇÊ®¾ÅÊÀ¼ÍÈýÊ®Äê´úÌá³öµÄÒ»ÖֽṹºÜ¼òµ¥µÄ¼ÆËãÄ£ÐÍ¡£ËäÈ»Ëü±ÈÈç½ñµÄÈκμÆËã»ú¶¼Òª¼òµ¥£¬µ«´óÁ¿Ñо¿±íÃ÷Æä¼ÆËãÄÜÁ¦Ë¿ºÁ²»ÈõÓÚÈκÎÄÜÏëµ½µÄ»úÆ÷£¨µ±È»£¬ÓÃÆðÀ´²»Ì«·½±ã£©¡£
ÕâÖܵÄÈÎÎñÊÇÔį̀Turing »úÀ´ÍæÍæ¡£
һ̨Turing »ú°üÀ¨Èý¸ö¼òµ¥²¿¼þ£º
* Ò»¸ö״̬¼Ä´æÆ÷
* Ò»ÌõÎÞÏÞ³¤µÄÖ½´ø£¬Ö½´ø±»·ÖΪÎÞÊýС¸ñ£¬Ã¿¸ö¸ñ×ÓÄÜÈÝÄÉÒ»¸ö×Ö·û¡£»¹ÓÐÒ»¸ö¶Áдͷ£¬ÔÚÈκÎʱ¿Ì¶¼»áÖ¸ÏòÒ»¸öÈ·¶¨µÄС¸ñ¡£Ö½´øÉÏĬÈÏÊÇ¿Õ×Ö·û¡£
* Ò»×éÓÐÏÞÖ¸Á¡£³ÌÐò¾ÍÊÇÒ»¸ö×´Ì¬Ç¨ÒÆµÄ´ó±í¸ñ¡£Turing »ú¸ù¾Ý״̬¼Ä´æÆ÷µÄµ±Ç°ÖµºÍ¶ÁдͷËùÖ¸µÄ×Ö·û²éµÃÒ»ÌõÖ¸Áî¡£ÕâÌõÖ¸Áî°üÀ¨¼Ä´æÆ÷µÄÐÂ״̬£¬ÌîÈë¶ÁдͷָÏòµ¥ÔªµÄ×Ö·ûºÍ¶ÁдͷÏÂÒ»²½Òƶ¯µÄ·½Ïò¡£
ΪÁËÈÃÎÒÃǵÄTuring »ú×ã¹»¼òµ¥£¬ÎÒÃǹ涨״̬¼Ä´æÆ÷ÈÝÄɵÄ×ÖÓ¦Äܱ»ÕýÔò±í´ïʽ /\w+/ Æ¥ÅäÉÏ£¬¶øÖ½´øÉϵÄ×Ö·ûÒªÄܱ» /\w/ Æ¥ÅäÉÏ¡£ÁíÍ⣬ÎÒÃǹ涨¿Õ×Ö·ûΪÏ»®Ïß(_)¡£
Turing »úµÄ³ÌÐò¸ñʽÈçÏ£º
CurrentState _ NewState C R
ÉÏÊö¸ñʽÒâ˼ÊÇ£ºÈç¹ûµ±Ç°×´Ì¬ÊÇCurrentState ¶ø¶ÁдͷËùÖ¸µÄ×Ö·ûÊÇ¿Õ×Ö·ûµÄ»°£¬°Ñ״̬ÖÃΪNewState £¬²¢ÓÃ×Ö·ûC Ìæ»»¿Õ×Ö·û£¬È»ºó¶ÁдͷÓÒÒÆÒ»¸ñ¡£ÕâÎå¸ö²¿·ÖдÔÚÒ»ÐÐÀïÃæ£¬Óÿոñ¸ô¿ª¡£ÔÊÐí³ÌÐòÖгöÏÖµ¥ÐÐ×¢ÊÍ£¬¸ÃÐÐÖо®ºÅ(#)ËùÆðµÄ²¿·ÖΪעÊÍ¡£×¢ÊÍ¡¢¿Õ°×Ðн«±»ºöÂÔ¡£
ÄãµÄTuring »úÓ¦±»³õʼΪ³ÌÐòµÚÒ»ÐÐÖеÄCurrentState¡£µ±È»ËæÄ㣬ÄãÒ²¿ÉÔÚ³ÌÐòÔØÈëʱԤÖúÃÖ½´øµÄÄÚÈÝ£¬µ«È±Ê¡Îª¿Õ×Ö·û¡£µ±³ÌÐòÕÒ²»µ½Ò»ÌõÓ뵱ǰ״̬ºÍ¶ÁдͷËùÖ¸×Ö·û¶ÔÓ¦µÄÖ¸Áîʱ£¬´òÓ¡³öÖ½´øÉÏ´ÓµÚÒ»¸ö·Ç¿Õ×Ö·ûµ½×îºóÒ»¸ö·Ç¿Õ×Ö·ûÖ®¼äµÄÄÚÈÝ£¬È»ºóÍ˳ö¡£
ÏÂÃæÊÇÒ»¸öʾÀý£¬Äã¿ÉÒÔ¿´µ½ÎÒµÄTuring »úÊÇÔõôÔËÐеģº
$ cat palindrome.tm
# Report whether a string of 0 and 1 (ie. a binary
# number) is a palindrome.
look_first 0 go_end_0 _ R
look_first 1 go_end_1 _ R
look_first _ write_es Y R
go_end_0 0 go_end_0 0 R
go_end_0 1 go_end_0 1 R
go_end_0 _ check_end_0 _ L
go_end_1 0 go_end_1 0 R
go_e
Ïà¹ØÎĵµ£º
ÓÐЩʱºò¿ÉÄÜ»á¸ù¾ÝһЩÓÐÏÞµÄÐÅÏ¢£¬À´²éÕÒÒ³ÃæµÄÔªËØ£¬ÕâÀï¾ÙÒ»¸öÀý×ÓÀûÓÃÒ³ÃæÎÄ×ÖÀ´²éÕÒËùÔڵıêÇ©£¬ÒÔÌÔ±¦µÄµÇÂ¼Ò³ÃæÎªÀý£¬Ê¹ÓÃÒÔÏ´úÂë¿ÉÒÔʵÏÖ¸ù¾ÝÕË»§ÃûÀ´Ê¶±ð¶ÔÓ¦µÄ½ÚµãÃû³Æ£º
require ‘watir’
#ie = Watir::IE.attach(:url, /member1.taobao.com/)
ie = Watir::IE.start(”http://memb ......
ÓÃrubyн¨Ò»¸öexcelÎļþ£¬²¢ÇÒÉèÖÃһЩֵ¡£
require 'win32ole'
excel = WIN32OLE.new("excel.application")
excel.Visible = true
excel.WorkBooks.Open("d:\\test.xls")
excel.WorkSheets("sheet1").Activate
excel.Cells(2,3).value = "ÕÅÈý"
exce ......
Ëɱ¾ÐкêÈçÔ¼ÓÚÊ¥µ®½Ú·¢²¼ÁËRuby 1.9¡£¸ù¾ÝRubyµÄ¹ßÀý£¬Ð¡ÊýµãºóÃæµÚһλÈç¹ûÊǵ¥Êý£¬ÄÇô¾Í±íÃ÷ÕâÊÇÒ»¸öʵÑé°æ±¾£¬²»ÍƼöÓÃÓÚ²úÆ·»·¾³¡£Ëùν“²úÆ·»·¾³”£¬¶ÔÓÚĿǰµÄRubyÀ´Ëµ£¬»ù±¾ÉϾÍÊÇRuby on Rails¡£´ÓĿǰRoRÉçȺµÄ·´Ó³À´¿´£¬È·ÊµÓÐÈËÕýÔÚ³¢ÊÔÓÃRuby 1.9ÅäºÏRoR£¬µ«ÊÇÉÐÊôÍæÆ±ÐÔÖÊ¡£ÎÒѯÎÊÁËһЩ´¦ÔÚÕæÊµÏ ......
ÉÏһƪÎÄÕÂ
˵ÁËRubyµÄ°²×°ºÍÔËÐУ¬Ò²¼òµ¥µÄ˵ÁËÏÂÀàºÍ¶ÔÏó¡£ÕâÀïÖ÷Ҫ̸̸±äÁ¿µÄÎÊÌâ¡£
ÏÈ˵³£Á¿
¡£Èç¹û±äÁ¿ÃûÒÔ´óд×Öĸ¿ªÍ·£¬¾Í±»ÊÓΪ³£Á¿£¬µ«Í¨³£ÊÇËùÓÐ×Öĸ¶¼´óд¡£µ«ºÍÆäËûÓïÑÔ²»Í¬£¬ÔÚRubyÖУ¬ÄãÈÔÈ»¿ÉÒԸı䳣Á¿µÄÖµ£¬µ±È»½âÊÍÆ÷»áÅ׳öÒ»¸ö¾¯¸æ£º
#! /usr/bin/ruby
CONSTANT = 1
print "#{CONSTANT}\n&qu ......