prubybility 0.0.12 → 0.0.13

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
  SHA256:
3
- metadata.gz: f9cc5ff2604249dd3ecfabe8f849b55091cad37903665342c48c60bb5672490c
4
- data.tar.gz: 327f49d644ee8c009ca7ae20a290f0a43aaa1cb19779cbc29ca14ecd3ed691e7
3
+ metadata.gz: 1bbbe8171683ce2fd73afc9b30b52f62af59b70135bf7aa8306eb829d6d80b1c
4
+ data.tar.gz: 7f5d6a013cf1644885fb6ec32429de5af5bb4cba5f52f747b981c67082d8fd66
5
5
  SHA512:
6
- metadata.gz: aee3015f5fabe80c7ef6dc81a9fbba5e4544527d3475d2623b272f58ca0342537551c9ea5bf4998394e957c07ca7ef2a3bc8b874cc89621dd4bfd777384f767e
7
- data.tar.gz: 0b63040f893f861912d0f53cb45716b53755d52262c80d18e9d2c1696173b1c16423a9572f49f4eb80ab5ef753e5f601bf6cb66daad2a415d9ada641af5f6cb7
6
+ metadata.gz: d18db739299deaae19611265bff16eaec0c140df5ca8a852f48208e7ceb17a32f86544ebd9871eb41792db43cf46ce28a994540d3d350b880bf9966261eff6e8
7
+ data.tar.gz: 50b7fe673335ad374cdc05faf9c927af7d3bc0d2e9062b56481397951ec2d2f1bf55f66aec95e1830cd960b37366e97197d058628f76c30822121f51392eada5
@@ -10,9 +10,17 @@ module Prubybility
10
10
  end
11
11
 
12
12
  def p(var)
13
- return if var != 0 && var != 1
13
+ return unless valid_value?(var)
14
14
 
15
15
  (theta**var) * (1 - theta)**(1 - var)
16
16
  end
17
+
18
+ private
19
+
20
+ def valid_value?(var)
21
+ return false unless var.is_a? Integer
22
+ return false unless var == 0 || var == 1
23
+ true
24
+ end
17
25
  end
18
26
  end
@@ -16,8 +16,9 @@ module Prubybility
16
16
  @variance = @n * @theta * (1 - @theta)
17
17
  end
18
18
 
19
- def p(var)
20
- choose(var) * (theta**var) * ((1 - theta)**(n - var))
19
+ def p(number_of_successes)
20
+ return unless valid_value?(number_of_successes)
21
+ choose(number_of_successes) * (theta**number_of_successes) * ((1 - theta)**(n - number_of_successes))
21
22
  end
22
23
 
23
24
  private
@@ -26,6 +27,12 @@ module Prubybility
26
27
  Prubybility::Combinations.choose(n, var)
27
28
  end
28
29
 
30
+ def valid_value?(var)
31
+ return unless var.is_a? Integer
32
+ return unless var > 0 && var <= n
33
+ true
34
+ end
35
+
29
36
  attr_writer :n, :theta, :expected_value, :variance
30
37
  end
31
38
  end
@@ -19,11 +19,15 @@ module Prubybility
19
19
  end
20
20
 
21
21
  def p(var)
22
- choose(var - 1, k - 1) * (theta**k) * ((1 - theta)**(var - k))
22
+ choose(var) * (theta**k) * ((1 - theta)**(var - k))
23
23
  end
24
24
 
25
25
  private
26
26
 
27
- attr_writer :n, :theta, :expected_value, :variance
27
+ def choose(var)
28
+ Prubybility::Combinations.choose(var -1, k - 1)
29
+ end
30
+
31
+ attr_writer :k, :theta, :expected_value, :variance
28
32
  end
29
33
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Prubybility
4
- VERSION = '0.0.12'
4
+ VERSION = '0.0.13'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: prubybility
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.12
4
+ version: 0.0.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jacob Lee