partitions 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2aa22121b5627f30e18b9a2740d3cac3b8f33ecb
4
- data.tar.gz: f1857f98aaf24b9f6db43cb62ddbb5203b4c1f14
3
+ metadata.gz: e002c05835f16d96037777fcce02b47483cb2c52
4
+ data.tar.gz: 537e428eb0b0e2f45df44dad8d43cbb4a0b3eed3
5
5
  SHA512:
6
- metadata.gz: 96c4c851431664fbebeee2622cf118ab78b4400ae91788e821ef8dce4dfbfcfc8635c1a0f1e731dc9cb8186f6956676cfa7f347e4ee5c94c041a24227342a3be
7
- data.tar.gz: 2650403dca28ff72cf42662491ad0a021b357f11829fe0a4b46020923e741dc69411c663c4a236a807d0ed3878a73807a82892ce034e375eaa66f24dfeefb4e5
6
+ metadata.gz: ccd062c0f263e2d2d0d1ca5a7b032f1c5ee5ea9d1c7128a9d6cb905523ef744fd71a224dbfb473a3b1654e8d03e768e76efcf7d53166e53ae40a2ef2b7f8472c
7
+ data.tar.gz: b609778564b98dfe61743d04102bc75c2ea68058f70a8ce12a00c75b23c2df56a2b1fcad4a2b7f54927b93d5f58ce99a5bb6ed15aaca9c0fb48fc7ddfd0496ae
@@ -124,12 +124,28 @@ module Partitions
124
124
 
125
125
  attr_accessor :k, :m, :n
126
126
  attr_writer :size
127
+ @@cache = {}
128
+
129
+ def populate_cache(n, k, val)
130
+ if @@cache[n]
131
+ @@cache[n][k] = val
132
+ else
133
+ @@cache[n] = {k => val}
134
+ end
135
+ end
127
136
 
128
137
  def sterling_second(n, k)
138
+ if @@cache[n] && @@cache[n][k]
139
+ return @@cache[n][k]
140
+ end
141
+
129
142
  if k == 1 || k == n
130
143
  return 1
131
144
  else
132
- return sterling_second(n - 1, k - 1) + k * sterling_second(n - 1, k)
145
+ populate_cache(n - 1, k - 1, sterling_second(n - 1, k - 1))
146
+ populate_cache(n - 1, k, sterling_second(n - 1, k))
147
+ populate_cache(n, k, @@cache[n - 1][k - 1] + k * @@cache[n - 1][k])
148
+ return @@cache[n][k]
133
149
  end
134
150
  end
135
151
 
@@ -162,4 +178,4 @@ module Partitions
162
178
  end
163
179
 
164
180
  end
165
- end
181
+ end
@@ -1,3 +1,3 @@
1
1
  module Partitions
2
- VERSION = "0.2.0"
2
+ VERSION = "0.3.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: partitions
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - NagaChaitanya Vellanki