partitions 0.2.0 → 0.3.0

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.
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