RubMat 2.2.1 → 2.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.document +5 -0
- data/Gemfile +15 -0
- data/LICENSE.txt +20 -0
- data/README.rdoc +19 -0
- data/Rakefile +46 -17
- data/VERSION +1 -0
- data/bin/rubmat +4 -128
- data/lib/rubmat.rb +597 -102
- data/test/helper.rb +18 -0
- data/test/test_rubmat.rb +7 -0
- metadata +119 -30
- data/LICENSE +0 -17
- data/README.md +0 -9
- data/RubMat.png +0 -0
- data/gplv3.png +0 -0
- data/lib/fixnumexpand.rb +0 -35
- data/lib/help.rb +0 -40
- data/lib/librbdiscrete.rb +0 -435
- data/lib/main.rb +0 -125
- data/lib/statics.yml +0 -4
data/test/helper.rb
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'bundler'
|
3
|
+
begin
|
4
|
+
Bundler.setup(:default, :development)
|
5
|
+
rescue Bundler::BundlerError => e
|
6
|
+
$stderr.puts e.message
|
7
|
+
$stderr.puts "Run `bundle install` to install missing gems"
|
8
|
+
exit e.status_code
|
9
|
+
end
|
10
|
+
require 'test/unit'
|
11
|
+
require 'shoulda'
|
12
|
+
|
13
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
14
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
15
|
+
require 'rubmat'
|
16
|
+
|
17
|
+
class Test::Unit::TestCase
|
18
|
+
end
|
data/test/test_rubmat.rb
ADDED
metadata
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: RubMat
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
hash: 3
|
5
|
+
prerelease:
|
5
6
|
segments:
|
6
7
|
- 2
|
7
8
|
- 2
|
8
|
-
-
|
9
|
-
version: 2.2.
|
9
|
+
- 2
|
10
|
+
version: 2.2.2
|
10
11
|
platform: ruby
|
11
12
|
authors:
|
12
13
|
- Mahmut Bulut
|
@@ -14,52 +15,138 @@ autorequire:
|
|
14
15
|
bindir: bin
|
15
16
|
cert_chain: []
|
16
17
|
|
17
|
-
date: 2012-05-
|
18
|
-
default_executable:
|
18
|
+
date: 2012-05-12 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
|
-
|
22
|
-
prerelease: false
|
21
|
+
type: :development
|
23
22
|
requirement: &id001 !ruby/object:Gem::Requirement
|
23
|
+
none: false
|
24
|
+
requirements:
|
25
|
+
- - ">="
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
hash: 3
|
28
|
+
segments:
|
29
|
+
- 0
|
30
|
+
version: "0"
|
31
|
+
version_requirements: *id001
|
32
|
+
name: shoulda
|
33
|
+
prerelease: false
|
34
|
+
- !ruby/object:Gem::Dependency
|
35
|
+
type: :development
|
36
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
24
37
|
none: false
|
25
38
|
requirements:
|
26
39
|
- - ~>
|
27
40
|
- !ruby/object:Gem::Version
|
41
|
+
hash: 31
|
42
|
+
segments:
|
43
|
+
- 3
|
44
|
+
- 12
|
45
|
+
version: "3.12"
|
46
|
+
version_requirements: *id002
|
47
|
+
name: rdoc
|
48
|
+
prerelease: false
|
49
|
+
- !ruby/object:Gem::Dependency
|
50
|
+
type: :development
|
51
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
52
|
+
none: false
|
53
|
+
requirements:
|
54
|
+
- - ">="
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
hash: 23
|
57
|
+
segments:
|
58
|
+
- 1
|
59
|
+
- 0
|
60
|
+
- 0
|
61
|
+
version: 1.0.0
|
62
|
+
version_requirements: *id003
|
63
|
+
name: bundler
|
64
|
+
prerelease: false
|
65
|
+
- !ruby/object:Gem::Dependency
|
66
|
+
type: :development
|
67
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
68
|
+
none: false
|
69
|
+
requirements:
|
70
|
+
- - ~>
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
hash: 49
|
73
|
+
segments:
|
74
|
+
- 1
|
75
|
+
- 8
|
76
|
+
- 3
|
77
|
+
version: 1.8.3
|
78
|
+
version_requirements: *id004
|
79
|
+
name: jeweler
|
80
|
+
prerelease: false
|
81
|
+
- !ruby/object:Gem::Dependency
|
82
|
+
type: :development
|
83
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
84
|
+
none: false
|
85
|
+
requirements:
|
86
|
+
- - ">="
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
hash: 3
|
89
|
+
segments:
|
90
|
+
- 0
|
91
|
+
version: "0"
|
92
|
+
version_requirements: *id005
|
93
|
+
name: rcov
|
94
|
+
prerelease: false
|
95
|
+
- !ruby/object:Gem::Dependency
|
96
|
+
type: :development
|
97
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
98
|
+
none: false
|
99
|
+
requirements:
|
100
|
+
- - ~>
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
hash: 59
|
28
103
|
segments:
|
29
104
|
- 4
|
30
105
|
- 1
|
31
106
|
- 0
|
32
107
|
version: 4.1.0
|
108
|
+
version_requirements: *id006
|
109
|
+
name: commander
|
110
|
+
prerelease: false
|
111
|
+
- !ruby/object:Gem::Dependency
|
33
112
|
type: :runtime
|
34
|
-
|
35
|
-
|
36
|
-
|
113
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
114
|
+
none: false
|
115
|
+
requirements:
|
116
|
+
- - ~>
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
hash: 59
|
119
|
+
segments:
|
120
|
+
- 4
|
121
|
+
- 1
|
122
|
+
- 0
|
123
|
+
version: 4.1.0
|
124
|
+
version_requirements: *id007
|
125
|
+
name: commander
|
126
|
+
prerelease: false
|
127
|
+
description: Discrete Mathematics REPL and built-in usable library for experimental and experimental projects
|
128
|
+
email: mahmutbulut0@gmail.com
|
37
129
|
executables:
|
38
130
|
- rubmat
|
39
131
|
extensions: []
|
40
132
|
|
41
133
|
extra_rdoc_files:
|
42
|
-
-
|
43
|
-
-
|
44
|
-
- gplv3.png
|
45
|
-
- RubMat.png
|
134
|
+
- LICENSE.txt
|
135
|
+
- README.rdoc
|
46
136
|
files:
|
47
|
-
-
|
48
|
-
-
|
137
|
+
- .document
|
138
|
+
- Gemfile
|
139
|
+
- LICENSE.txt
|
140
|
+
- README.rdoc
|
49
141
|
- Rakefile
|
50
|
-
-
|
51
|
-
- RubMat.png
|
52
|
-
- bin/rubmat
|
53
|
-
- lib/statics.yml
|
54
|
-
- lib/librbdiscrete.rb
|
142
|
+
- VERSION
|
55
143
|
- lib/rubmat.rb
|
56
|
-
-
|
57
|
-
-
|
58
|
-
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
144
|
+
- test/helper.rb
|
145
|
+
- test/test_rubmat.rb
|
146
|
+
- bin/rubmat
|
147
|
+
homepage: http://github.com/regularlambda/RubMat
|
148
|
+
licenses:
|
149
|
+
- MIT
|
63
150
|
post_install_message:
|
64
151
|
rdoc_options: []
|
65
152
|
|
@@ -70,6 +157,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
70
157
|
requirements:
|
71
158
|
- - ">="
|
72
159
|
- !ruby/object:Gem::Version
|
160
|
+
hash: 3
|
73
161
|
segments:
|
74
162
|
- 0
|
75
163
|
version: "0"
|
@@ -78,15 +166,16 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
78
166
|
requirements:
|
79
167
|
- - ">="
|
80
168
|
- !ruby/object:Gem::Version
|
169
|
+
hash: 3
|
81
170
|
segments:
|
82
171
|
- 0
|
83
172
|
version: "0"
|
84
173
|
requirements: []
|
85
174
|
|
86
175
|
rubyforge_project:
|
87
|
-
rubygems_version: 1.
|
176
|
+
rubygems_version: 1.8.24
|
88
177
|
signing_key:
|
89
178
|
specification_version: 3
|
90
|
-
summary: Discrete Mathematics
|
179
|
+
summary: Discrete Mathematics REPL and built-in usable library
|
91
180
|
test_files: []
|
92
181
|
|
data/LICENSE
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
== RubMat ==
|
2
|
-
|
3
|
-
RubMat == Discrete Mathematics solver and Usable Library
|
4
|
-
Copyright (C) <2011> <Mahmut Bulut>
|
5
|
-
|
6
|
-
This program is free software: you can redistribute it and/or modify
|
7
|
-
it under the terms of the GNU General Public License as published by
|
8
|
-
the Free Software Foundation, either version 3 of the License, or
|
9
|
-
(at your option) any later version.
|
10
|
-
|
11
|
-
This program is distributed in the hope that it will be useful,
|
12
|
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
|
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
14
|
-
GNU General Public License for more details.
|
15
|
-
|
16
|
-
You should have received a copy of the GNU General Public License
|
17
|
-
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
data/README.md
DELETED
data/RubMat.png
DELETED
Binary file
|
data/gplv3.png
DELETED
Binary file
|
data/lib/fixnumexpand.rb
DELETED
@@ -1,35 +0,0 @@
|
|
1
|
-
#!/usr/bin/ruby
|
2
|
-
|
3
|
-
=begin
|
4
|
-
= NAME
|
5
|
-
Fixnum Expandation Code v1.2.0
|
6
|
-
|
7
|
-
= SYNOPSIS
|
8
|
-
.seconds =1
|
9
|
-
.minutes =60
|
10
|
-
.hours =3600
|
11
|
-
.days =86400
|
12
|
-
.weeks =604800
|
13
|
-
|
14
|
-
= DESCRIPTION
|
15
|
-
This snippet expands Fixnum class and convert
|
16
|
-
time counts to (('string'))((-Object ending string-))
|
17
|
-
=end
|
18
|
-
|
19
|
-
class Fixnum
|
20
|
-
def seconds
|
21
|
-
self
|
22
|
-
end
|
23
|
-
def minutes
|
24
|
-
self * 60
|
25
|
-
end
|
26
|
-
def hours
|
27
|
-
self * 60 * 60
|
28
|
-
end
|
29
|
-
def days
|
30
|
-
self * 60 * 60 * 24
|
31
|
-
end
|
32
|
-
def weeks
|
33
|
-
self * 60 * 60 * 24 * 7
|
34
|
-
end
|
35
|
-
end
|
data/lib/help.rb
DELETED
@@ -1,40 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
def help
|
3
|
-
puts "
|
4
|
-
Valid Commands
|
5
|
-
===============
|
6
|
-
help Show this manpage
|
7
|
-
certain Show certain conditions page
|
8
|
-
factorial Recursive definition of factorial
|
9
|
-
'n' is the number which will calculated in procedure
|
10
|
-
binsearch *binary => array
|
11
|
-
*size => binary array's size
|
12
|
-
*search_key => Compare string
|
13
|
-
*General values
|
14
|
-
*low => low value representation
|
15
|
-
*middle => middle value representation
|
16
|
-
*high => high value representation
|
17
|
-
birdseye Bird's Eye View Procedure
|
18
|
-
combinatorial 'glb' represents is General mass of combinatorial approach
|
19
|
-
'klb' represents is Selection mass of combinatorial approach
|
20
|
-
distpres 'presnum' value represents Present count.
|
21
|
-
eagleview Eagle View Procedure
|
22
|
-
fermatlittle Fermat Little Theorem's Procedural Representation
|
23
|
-
fib Additive recursive definition of Fibonacci
|
24
|
-
isprime Is Prime Procedure
|
25
|
-
'nb' is the input argument number of procedure
|
26
|
-
iterativefact Iterative factorial of procedural representation
|
27
|
-
sigma Sigma procedure's simple procedure is rely on '(ax+b)^pw'
|
28
|
-
a represented by inta;
|
29
|
-
b represented by intb;
|
30
|
-
x represented by intx;
|
31
|
-
power represented by pw.
|
32
|
-
stirling 'strln' is the stirling number in stirling formula
|
33
|
-
subset 'zerosbst' variable, decision mechanism of zero subset is included or not included
|
34
|
-
'gen' is the general mass elements(objects) number
|
35
|
-
fibsum Fibonacci Sum Procedure
|
36
|
-
twinprdx Twin Paradox Lemma Solution Procedure
|
37
|
-
Selection mass represented by 'mass' value
|
38
|
-
uipow Non-balanced power calculation procedure
|
39
|
-
"
|
40
|
-
end
|
data/lib/librbdiscrete.rb
DELETED
@@ -1,435 +0,0 @@
|
|
1
|
-
#!/usr/bin/ruby
|
2
|
-
|
3
|
-
#constants1 = YAML::load_file('statics.yml')
|
4
|
-
|
5
|
-
EVALUE = 2.718281828459045235360287471352662497757247093
|
6
|
-
PIVALUE = 3.141592653589793238462643383279502884197169399
|
7
|
-
MAX_INTEGER = 1073741823
|
8
|
-
|
9
|
-
err = "An error occured during during procedure"
|
10
|
-
|
11
|
-
=begin
|
12
|
-
= NAME
|
13
|
-
Recursive Factorial Procedure Definition v1.1.3
|
14
|
-
|
15
|
-
= SYNOPSIS
|
16
|
-
factorial(n)
|
17
|
-
'n' is the number which will calculated in procedure
|
18
|
-
|
19
|
-
= DESCRIPTION
|
20
|
-
Iterative factorial definition
|
21
|
-
=end
|
22
|
-
def factorial( n )
|
23
|
-
if (n <= 1)
|
24
|
-
return 1
|
25
|
-
else
|
26
|
-
return n*factorial( n-1 ).to_i
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
=begin
|
31
|
-
= NAME
|
32
|
-
Power procedure of two input arguments v2.1.3
|
33
|
-
|
34
|
-
= SYNOPSIS
|
35
|
-
ui_pow(base, exp)
|
36
|
-
'base' argument is the base of power procedure
|
37
|
-
'exp' argument is the upscript of power procedure
|
38
|
-
|
39
|
-
= DESCRIPTION
|
40
|
-
Wide representation of power procedure
|
41
|
-
=end
|
42
|
-
def ui_pow(base, exp)
|
43
|
-
result = 1;
|
44
|
-
while (exp)
|
45
|
-
if (exp & 1)
|
46
|
-
result *= base
|
47
|
-
end
|
48
|
-
exp >>= 1;
|
49
|
-
base *= base
|
50
|
-
end
|
51
|
-
if(exp==0)
|
52
|
-
result=base
|
53
|
-
end
|
54
|
-
return result
|
55
|
-
end
|
56
|
-
|
57
|
-
=begin
|
58
|
-
= NAME
|
59
|
-
Iterative Factorial Procedure v1.0.3
|
60
|
-
|
61
|
-
= SYNOPSIS
|
62
|
-
Get input arguments from simple argument
|
63
|
-
|
64
|
-
= DESCRIPTION
|
65
|
-
Iterative factorial of procedural representation
|
66
|
-
=end
|
67
|
-
def iterative_fact(itrtnum)
|
68
|
-
itrtnum.downto(1) do
|
69
|
-
total *= factorial(itrtnum)
|
70
|
-
end
|
71
|
-
return total
|
72
|
-
end
|
73
|
-
|
74
|
-
=begin
|
75
|
-
= NAME
|
76
|
-
Subset Procedure v1.1.3
|
77
|
-
|
78
|
-
= SYNOPSIS
|
79
|
-
subset(gen, zerosbst)
|
80
|
-
'zerosbst' variable, decision mechanism of zero subset is included or not included
|
81
|
-
'gen' is the general mass elements(objects) number
|
82
|
-
|
83
|
-
= DESCRIPTION
|
84
|
-
Calculate subset number of input arguments
|
85
|
-
=end
|
86
|
-
def subset(gen, zerosbst)
|
87
|
-
main = case (zerosbst)
|
88
|
-
when zerosbst == true
|
89
|
-
rslt = ui_pow(2, gen) - 1
|
90
|
-
return rslt
|
91
|
-
when zerosbst == false
|
92
|
-
rslt = ui_pow(2, gen)
|
93
|
-
return rslt
|
94
|
-
end
|
95
|
-
return main
|
96
|
-
end
|
97
|
-
|
98
|
-
#/*
|
99
|
-
#int subset(void){
|
100
|
-
# char zerosbst;
|
101
|
-
# float rslt=0;int gen=0;
|
102
|
-
# printf("Enter the mass elements number: ");
|
103
|
-
# scanf("%d", &gen);
|
104
|
-
# //Dönmeleri düzelt formatlamaları düzelt, cast ı düzelt
|
105
|
-
# //Elemanları binary string olarak döndür
|
106
|
-
# printf("Want to get subsets?(y/n)\n");
|
107
|
-
# zerosbst=getchar();
|
108
|
-
# switch (zerosbst){
|
109
|
-
#
|
110
|
-
# case 'y':
|
111
|
-
# rslt = ui_pow(2, gen) - 1;
|
112
|
-
# int rslt = rslt;
|
113
|
-
# printf("%d", rslt);
|
114
|
-
# break;
|
115
|
-
# case 'n':
|
116
|
-
# rslt = ui_pow(2, gen);
|
117
|
-
# //printf("%f", rslt);
|
118
|
-
# break;
|
119
|
-
# default:
|
120
|
-
# puts("Enter y or n char");
|
121
|
-
# break;
|
122
|
-
# }
|
123
|
-
# return EXIT_SUCCESS;
|
124
|
-
#}
|
125
|
-
#*/
|
126
|
-
|
127
|
-
## Combinatorial problems solver
|
128
|
-
#
|
129
|
-
#
|
130
|
-
|
131
|
-
=begin
|
132
|
-
= NAME
|
133
|
-
Combinatorial Procedure v1.1.5
|
134
|
-
|
135
|
-
= SYNOPSIS
|
136
|
-
combinatorial(glb, ksb)
|
137
|
-
'glb' represents is General mass of combinatorial approach
|
138
|
-
'klb' represents is Selection mass of combinatorial approach
|
139
|
-
|
140
|
-
= DESCRIPTION
|
141
|
-
Combinatorial selection number of a input argument mass
|
142
|
-
=end
|
143
|
-
def combinatorial(glb, ksb)
|
144
|
-
if(glb < ksb)
|
145
|
-
raise RuntimeError.new("Global set cannot be greater than k-subsets")
|
146
|
-
end
|
147
|
-
sbst_given_size = factorial(glb)/(factorial(ksb)*factorial(glb-ksb)).to_f
|
148
|
-
return sbst_given_size
|
149
|
-
end
|
150
|
-
|
151
|
-
=begin
|
152
|
-
= NAME
|
153
|
-
Sigma Procedure v1.1.5
|
154
|
-
|
155
|
-
= SYNOPSIS
|
156
|
-
sigma(inta, intx, intb, pw)
|
157
|
-
Sigma procedure's simple procedure is rely on '(ax+b)^pw'
|
158
|
-
a represented by inta;
|
159
|
-
b represented by intb;
|
160
|
-
x represented by intx;
|
161
|
-
power represented by pw.
|
162
|
-
|
163
|
-
= DESCRIPTION
|
164
|
-
'Sigma of the one unknowned equation' procedure
|
165
|
-
=end
|
166
|
-
|
167
|
-
def sigma(inta, intx, intb, pw)
|
168
|
-
ttl = 0
|
169
|
-
for i in 1..intx
|
170
|
-
ttl += (inta*intx+intb)
|
171
|
-
end
|
172
|
-
if(pw == 1)
|
173
|
-
return ttl
|
174
|
-
end
|
175
|
-
if(pw > 1)
|
176
|
-
ttl=ui_pow(ttl, pw)
|
177
|
-
return ttl
|
178
|
-
end
|
179
|
-
if(pw == 0)
|
180
|
-
return 1
|
181
|
-
end
|
182
|
-
end
|
183
|
-
|
184
|
-
=begin
|
185
|
-
= NAME
|
186
|
-
Stirling Procedure v1.1.5
|
187
|
-
|
188
|
-
= SYNOPSIS
|
189
|
-
stirling(strln)
|
190
|
-
'strln' is the stirling number in stirling formula
|
191
|
-
|
192
|
-
= DESCRIPTION
|
193
|
-
Stirling Procedure for Stirling Lemma
|
194
|
-
=end
|
195
|
-
def stirling(strln)
|
196
|
-
return (strln/constants1.EVALUE**strln)*Math.sqrt(2*constants1.PIVALUE*strln);
|
197
|
-
end
|
198
|
-
|
199
|
-
=begin
|
200
|
-
= NAME
|
201
|
-
Twin Paradox Lemma Solver v1.1.5
|
202
|
-
|
203
|
-
= SYNOPSIS
|
204
|
-
twin_prdx(mass)
|
205
|
-
Selection mass represented by 'mass' value
|
206
|
-
|
207
|
-
= DESCRIPTION
|
208
|
-
Twin Paradox Lemma Solution Procedure
|
209
|
-
=end
|
210
|
-
def twin_prdx(mass)
|
211
|
-
top=1
|
212
|
-
for i in 366..366-mass
|
213
|
-
top *= i
|
214
|
-
end
|
215
|
-
return top/ui_pow(366, mass)
|
216
|
-
end
|
217
|
-
|
218
|
-
=begin
|
219
|
-
= NAME
|
220
|
-
Distrubuting Presents Procedure v1.1.3
|
221
|
-
|
222
|
-
= SYNOPSIS
|
223
|
-
dist_pres(presnum)
|
224
|
-
'presnum' value represents Present count.
|
225
|
-
|
226
|
-
= DESCRIPTION
|
227
|
-
Use of Sequence of factorial and iterative_fact procedures for
|
228
|
-
distributing presents.
|
229
|
-
=end
|
230
|
-
def dist_pres(presnum)
|
231
|
-
return factorial(presnum)/iterative_fact(presnum);
|
232
|
-
end
|
233
|
-
|
234
|
-
=begin
|
235
|
-
= NAME
|
236
|
-
Recursive adding of procedure fibonacci
|
237
|
-
|
238
|
-
= SYNOPSIS
|
239
|
-
fib(n)
|
240
|
-
'n' represents recursive definition
|
241
|
-
|
242
|
-
= DESCRIPTION
|
243
|
-
Additive recursive definition of Fibonacci
|
244
|
-
=end
|
245
|
-
def fib(n)
|
246
|
-
if (n <= 1)
|
247
|
-
return n;
|
248
|
-
else
|
249
|
-
return fib(n-1)+fib(n-2);
|
250
|
-
end
|
251
|
-
end
|
252
|
-
|
253
|
-
=begin
|
254
|
-
= NAME
|
255
|
-
Printing Row v1.5.5
|
256
|
-
|
257
|
-
= SYNOPSIS
|
258
|
-
print_row(binary, size, low, mid, high)
|
259
|
-
'binary' represents binary array
|
260
|
-
'size' represents general size
|
261
|
-
'low' represents minimum value of binary array
|
262
|
-
'mid' represents middle value of binary array
|
263
|
-
'high' represents maximum value of binary array
|
264
|
-
|
265
|
-
= DESCRIPTION
|
266
|
-
Underly array for printing.
|
267
|
-
=end
|
268
|
-
def print_row(binary, size, low, mid, high)
|
269
|
-
for i in 0..size-1
|
270
|
-
if (i <low || i > high)
|
271
|
-
print " "
|
272
|
-
end
|
273
|
-
if(i == mid)
|
274
|
-
puts binary[i]
|
275
|
-
end
|
276
|
-
if(nil)
|
277
|
-
puts binary[i]
|
278
|
-
end
|
279
|
-
end
|
280
|
-
end
|
281
|
-
|
282
|
-
=begin
|
283
|
-
= NAME
|
284
|
-
Binary Search Spec. Procedure v1.5.9
|
285
|
-
|
286
|
-
= SYNOPSIS
|
287
|
-
binary_search(binary, size, search_key, low, middle, high)
|
288
|
-
== Binary search
|
289
|
-
*binary => array
|
290
|
-
*size => binary array's size
|
291
|
-
*search_key => Compare string
|
292
|
-
*General values
|
293
|
-
*low => low value representation
|
294
|
-
*middle => middle value representation
|
295
|
-
*high => high value representation
|
296
|
-
|
297
|
-
= DESCRIPTION
|
298
|
-
Binary search
|
299
|
-
=end
|
300
|
-
def binary_search(binary, size, search_key, low, middle, high)
|
301
|
-
while (low <= high)
|
302
|
-
middle=(low+high)/2;
|
303
|
-
print_row(binary, size, low, middle, high);
|
304
|
-
if (search_key == binary[middle])
|
305
|
-
return middle;
|
306
|
-
elsif (search_key <= binary[middle])
|
307
|
-
high=middle-1
|
308
|
-
else
|
309
|
-
low=middle+1
|
310
|
-
end
|
311
|
-
end
|
312
|
-
end
|
313
|
-
|
314
|
-
=begin
|
315
|
-
= NAME
|
316
|
-
Bird's Eye View v1.1.3
|
317
|
-
|
318
|
-
= SYNOPSIS
|
319
|
-
Basic rep.s
|
320
|
-
|
321
|
-
= DESCRIPTION
|
322
|
-
Bird's Eye View Procedure
|
323
|
-
=end
|
324
|
-
def birds_eye(n, k)
|
325
|
-
return ((n-k)/(k+1));
|
326
|
-
end
|
327
|
-
|
328
|
-
=begin
|
329
|
-
= NAME
|
330
|
-
Eagle View v1.1.3
|
331
|
-
|
332
|
-
= SYNOPSIS
|
333
|
-
Basic rep.s
|
334
|
-
|
335
|
-
= DESCRIPTION
|
336
|
-
Eagle View Procedure
|
337
|
-
=end
|
338
|
-
def eagle_view(m, t)
|
339
|
-
return (EVALUE**((t*t)/m));
|
340
|
-
end
|
341
|
-
|
342
|
-
=begin
|
343
|
-
= NAME
|
344
|
-
Sum of Fibonacci Procedure v1.1.1
|
345
|
-
|
346
|
-
= SYNOPSIS
|
347
|
-
sum_of_fib(n)
|
348
|
-
'n' is the number
|
349
|
-
Basic reps
|
350
|
-
|
351
|
-
= DESCRIPTION
|
352
|
-
Fibonacci Sum Procedure
|
353
|
-
=end
|
354
|
-
def sum_of_fib(n)
|
355
|
-
return fib(n+2)-1;
|
356
|
-
end
|
357
|
-
|
358
|
-
#
|
359
|
-
#def fibFormula(long int n)
|
360
|
-
# return (1/Math.sqrt(5))*(powl(((1+sqrt(5))/2), n)-powl(((1-sqrt(5))/2), n));
|
361
|
-
#end
|
362
|
-
|
363
|
-
=begin
|
364
|
-
= NAME
|
365
|
-
Is Prime Procedure v1.1.5
|
366
|
-
|
367
|
-
= SYNOPSIS
|
368
|
-
is_prime(nb)
|
369
|
-
'nb' is the input argument number of procedure
|
370
|
-
|
371
|
-
= DESCRIPTION
|
372
|
-
Is Prime Procedure
|
373
|
-
=end
|
374
|
-
def is_prime(nb)
|
375
|
-
test = count = 0
|
376
|
-
if (nb == 1)
|
377
|
-
return -1
|
378
|
-
end
|
379
|
-
for i in 2..nb-1
|
380
|
-
count++
|
381
|
-
if (nb % i == 0)
|
382
|
-
test = false
|
383
|
-
end
|
384
|
-
end
|
385
|
-
if (!test)
|
386
|
-
return 1
|
387
|
-
else
|
388
|
-
return 0
|
389
|
-
end
|
390
|
-
end
|
391
|
-
|
392
|
-
=begin
|
393
|
-
= NAME
|
394
|
-
Fermat's Little Theorem v1.1.3
|
395
|
-
|
396
|
-
= SYNOPSIS
|
397
|
-
fermat_little(p, a)
|
398
|
-
|
399
|
-
= DESCRIPTION
|
400
|
-
Fermat Little Theorem's Procedural Representation
|
401
|
-
|
402
|
-
(('WARNING'))((-Modular representation maybe couldn't evaluated-))
|
403
|
-
=end
|
404
|
-
def fermat_little(p, a)
|
405
|
-
begin
|
406
|
-
if(p%(ui_pow(a, (p-1))-1) == 0)
|
407
|
-
return 0
|
408
|
-
else
|
409
|
-
return 1
|
410
|
-
end
|
411
|
-
end
|
412
|
-
rescue
|
413
|
-
begin
|
414
|
-
ArgumentError.new("High load. Terminated.")
|
415
|
-
end
|
416
|
-
end
|
417
|
-
|
418
|
-
=begin
|
419
|
-
= NAME
|
420
|
-
to_bool v.0.0.1
|
421
|
-
|
422
|
-
=SYNOPSIS
|
423
|
-
to_bool(void)
|
424
|
-
=DESCRIPTION
|
425
|
-
to bool is convert integer valus to string boolean
|
426
|
-
=end
|
427
|
-
def to_bool
|
428
|
-
if (self.to_bool == 1)
|
429
|
-
puts "TRUE"
|
430
|
-
elsif (self.to_bool == 0)
|
431
|
-
puts "FALSE"
|
432
|
-
elsif (self.to_bool == -1)
|
433
|
-
puts "NaN"
|
434
|
-
end
|
435
|
-
end
|