易截截图软件、单文件、免安装、纯绿色、仅160KB
热门标签: c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 最新文章 : Ruby

用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+/ 匹配上,而纸带上的字符要能被 /\ ......

ruby drb

client.rb
======================================================================
require 'drb'
SERVER_IP = 'druby://127.0.0.1:6666'
CLIENT_IP = 'druby://10.10.10.102:7777'
c_path = 'd:/test/'
class Client
 def initialize(path)
  Dir.chdir(path)
 end
 
 def mkdir(path)
  begin
   Dir.mkdir(path)
  rescue
   p 'the path : ' +path+"  already exist !!!"
  end
 end
 
 def mkfile(path,text)
  f = File.open(path , 'w+')
  f.write(text)
  f.close
 end
 
 def file?(path)
  return File.file?(path)
 end
 def get_file_text(path)
  file = File.open(path)
  text= file.read
  file.close
  return text
 end
 def check_in(dir,obj)
  if file?(dir)
   obj.mkfile(dir,get_file_text(dir))
  else
   ob ......

代码高亮,Ruby代码


<!--
/* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-alt:SimSun;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 680460288 22 0 262145 0;}
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;
mso-font-charset:0;
mso-generic-font-family:roman;
mso-font-pitch:variable;
mso-font-signature:-1610611985 1107304683 0 0 159 0;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;
mso-font-charset:0;
mso-generic-font-family:swiss;
mso-font-pitch:variable;
mso-font-signature:-1610611985 1073750139 0 0 159 0;}
@font-face
{font-family:"\@宋体";
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 680460288 22 0 262145 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-unhide:no;
mso-styl ......

ruby on rails(十) 订单处置

订单处置,首先要有一个订单的详细列表(包括数量,价钱啥的)和一个对于个人的一些信息的一个表。因而我们创造两个模型,line_item(列表项),order(列表),其后编者如次
/db/migrate xxx_create_order xxx_line_item
Ruby代码
一.class CreateOrders < ActiveRecord::Migration
二.def self.up
3. create_table :orders do |t|
4. t.string :name
5. t.text :address
6. t.string :email
7. t.string :pay_type, :limit => 十
8. t.timestamps
9. end
十.end
11.
12.def self.down
13. drop_table :orders
14.end
15.d
class CreateOrders < ActiveRecord::Migration
def self.up
create_table :orders do |t|
t.string :name
t.text :address
t.string :email
t.string :pay_type, :limit => 十
t.timestamps
end
end
def self.down
drop_table :orders
end
end
Ruby代码
1. class CreateLineItems < ActiveRecord::Migration
二.def self.up
3. create_table :line_items do |t|
4. t.integer :product_id, :null => false,:options =>
5. "CONSTRAINT fk_line_items_products REFERENCE ......

ruby on rails(10) 处理订单

订单处置,首先要有一个订单的详细列表(包括数量,价钱啥的)和一个对于个人的一些信息的一个表。因而我们创造两个模型,line_item(列表项),order(列表),其后编者如次
/db/migrate xxx_create_order xxx_line_item
Ruby代码
一.class CreateOrders < ActiveRecord::Migration
二.def self.up
3. create_table :orders do |t|
4. t.string :name
5. t.text :address
6. t.string :email
7. t.string :pay_type, :limit => 十
8. t.timestamps
9. end
十.end
11.
12.def self.down
13. drop_table :orders
14.end
15.d
class CreateOrders < ActiveRecord::Migration
def self.up
create_table :orders do |t|
t.string :name
t.text :address
t.string :email
t.string :pay_type, :limit => 十
t.timestamps
end
end
def self.down
drop_table :orders
end
end
Ruby代码
1. class CreateLineItems < ActiveRecord::Migration
二.def self.up
3. create_table :line_items do |t|
4. t.integer :product_id, :null => false,:options =>
5. "CONSTRAINT fk_line_items_products REFERENCE ......

Ruby 101:动态编程


Ruby 101:动态编程
Written by Allen Lee
当method_missing的魔法失效时……
      在上一篇文章里,我们通过重写Hash类的method_missing方法把Hash对象模拟成匿名对象,但是,这种做法有时会产生一些莫名其妙的问题,举个例子吧,假如我把process方法(完整实现参见上一篇文章的代码31)的options参数从这样:

代码 1
改成这样:

代码 2
我们将会发现,不论options参数的count取什么值,我们总是得到两本书,为什么?想想看,method_missing方法的触发条件是什么?仅当我们调用的方法不存在时,method_missing方法才有机会出场,但是,Hash类本身就有count方法:

图 1
这打破了method_missing方法的触发条件,换句话说,method_missing方法被count方法"截胡"(麻将术语)了。Hash类的count方法返回键/值对的个数,而options参数默认就有两个键/值对,如果我们没有添加额外的键/值对,count方法的返回值将会总是2,这就是为什么修改options参数之后我们总是得到两本书。那么,如何解决这个问题?
      显然,method_missing方法和count方法无法同时存在,否则转发消息的逻辑总 ......
总记录数:146; 总页数:25; 每页6 条; 首页 上一页 [14] [15] [16] [17] 18 [19] [20] [21] [22] [23]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号