晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
| DIR:/opt/alt/ruby34/share/gems/gems/bigdecimal-3.1.8/sample/ |
| Current File : //opt/alt/ruby34/share/gems/gems/bigdecimal-3.1.8/sample/linear.rb |
#!/usr/local/bin/ruby
# frozen_string_literal: false
#
# linear.rb
#
# Solves linear equation system(A*x = b) by LU decomposition method.
# where A is a coefficient matrix,x is an answer vector,b is a constant vector.
#
# USAGE:
# ruby linear.rb [input file solved]
#
# :stopdoc:
require "bigdecimal"
require "bigdecimal/ludcmp"
#
# NOTE:
# Change following BigDecimal.limit() if needed.
BigDecimal.limit(100)
#
include LUSolve
def rd_order(na)
printf("Number of equations ?") if(na <= 0)
n = ARGF.gets().to_i
end
na = ARGV.size
zero = BigDecimal("0.0")
one = BigDecimal("1.0")
while (n=rd_order(na))>0
a = []
as= []
b = []
if na <= 0
# Read data from console.
printf("\nEnter coefficient matrix element A[i,j]\n")
for i in 0...n do
for j in 0...n do
printf("A[%d,%d]? ",i,j); s = ARGF.gets
a << BigDecimal(s)
as << BigDecimal(s)
end
printf("Contatant vector element b[%d] ? ",i)
b << BigDecimal(ARGF.gets)
end
else
# Read data from specified file.
printf("Coefficient matrix and constant vector.\n")
for i in 0...n do
s = ARGF.gets
printf("%d) %s",i,s)
s = s.split
for j in 0...n do
a << BigDecimal(s[j])
as << BigDecimal(s[j])
end
b << BigDecimal(s[n])
end
end
x = lusolve(a,b,ludecomp(a,n,zero,one),zero)
printf("Answer(x[i] & (A*x-b)[i]) follows\n")
for i in 0...n do
printf("x[%d]=%s ",i,x[i].to_s)
s = zero
for j in 0...n do
s = s + as[i*n+j]*x[j]
end
printf(" & %s\n",(s-b[i]).to_s)
end
end
|