From 369d11587339ce74f8ebc76f2607fe55545eaf7d Mon Sep 17 00:00:00 2001 From: garhve Date: Tue, 20 Dec 2022 11:04:25 +0800 Subject: Build small project following the book --- .../distributions/weighted/alias_method/index.html | 2 + .../weighted/alias_method/sidebar-items.js | 1 + .../alias_method/struct.WeightedIndex.html | 6 +++ .../weighted/alias_method/trait.Weight.html | 2 + .../distributions/weighted/enum.WeightedError.html | 20 +++++++ .../doc/rand/distributions/weighted/index.html | 5 ++ .../rand/distributions/weighted/sidebar-items.js | 1 + .../weighted/struct.WeightedIndex.html | 63 ++++++++++++++++++++++ 8 files changed, 100 insertions(+) create mode 100644 rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/rand/distributions/weighted/alias_method/index.html create mode 100644 rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/rand/distributions/weighted/alias_method/sidebar-items.js create mode 100644 rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/rand/distributions/weighted/alias_method/struct.WeightedIndex.html create mode 100644 rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/rand/distributions/weighted/alias_method/trait.Weight.html create mode 100644 rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/rand/distributions/weighted/enum.WeightedError.html create mode 100644 rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/rand/distributions/weighted/index.html create mode 100644 rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/rand/distributions/weighted/sidebar-items.js create mode 100644 rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/rand/distributions/weighted/struct.WeightedIndex.html (limited to 'rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/rand/distributions/weighted') diff --git a/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/rand/distributions/weighted/alias_method/index.html b/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/rand/distributions/weighted/alias_method/index.html new file mode 100644 index 0000000..3b0024a --- /dev/null +++ b/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/rand/distributions/weighted/alias_method/index.html @@ -0,0 +1,2 @@ +rand::distributions::weighted::alias_method - Rust
👎Deprecated since 0.8.0: moved to rand_distr crate

Structs

WeightedIndexDeprecated

Traits

WeightDeprecated
\ No newline at end of file diff --git a/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/rand/distributions/weighted/alias_method/sidebar-items.js b/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/rand/distributions/weighted/alias_method/sidebar-items.js new file mode 100644 index 0000000..ebb3179 --- /dev/null +++ b/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/rand/distributions/weighted/alias_method/sidebar-items.js @@ -0,0 +1 @@ +window.SIDEBAR_ITEMS = {"struct":[["WeightedIndex",""]],"trait":[["Weight",""]]}; \ No newline at end of file diff --git a/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/rand/distributions/weighted/alias_method/struct.WeightedIndex.html b/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/rand/distributions/weighted/alias_method/struct.WeightedIndex.html new file mode 100644 index 0000000..d537635 --- /dev/null +++ b/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/rand/distributions/weighted/alias_method/struct.WeightedIndex.html @@ -0,0 +1,6 @@ +WeightedIndex in rand::distributions::weighted::alias_method - Rust
pub struct WeightedIndex<W: Weight> { /* private fields */ }
👎Deprecated since 0.8.0: moved to rand_distr crate

Implementations

👎Deprecated since 0.8.0: moved to rand_distr crate

Trait Implementations

Formats the value using the given formatter. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

+

Calls U::from(self).

+

That is, this conversion is whatever the implementation of +From<T> for U chooses to do.

+
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
\ No newline at end of file diff --git a/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/rand/distributions/weighted/alias_method/trait.Weight.html b/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/rand/distributions/weighted/alias_method/trait.Weight.html new file mode 100644 index 0000000..a528442 --- /dev/null +++ b/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/rand/distributions/weighted/alias_method/trait.Weight.html @@ -0,0 +1,2 @@ +Weight in rand::distributions::weighted::alias_method - Rust
pub trait Weight { }
👎Deprecated since 0.8.0: moved to rand_distr crate

Implementations on Foreign Types

Implementors

\ No newline at end of file diff --git a/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/rand/distributions/weighted/enum.WeightedError.html b/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/rand/distributions/weighted/enum.WeightedError.html new file mode 100644 index 0000000..ba1bd6d --- /dev/null +++ b/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/rand/distributions/weighted/enum.WeightedError.html @@ -0,0 +1,20 @@ +WeightedError in rand::distributions::weighted - Rust
pub enum WeightedError {
+    NoItem,
+    InvalidWeight,
+    AllWeightsZero,
+    TooMany,
+}
Expand description

Error type returned from WeightedIndex::new.

+

Variants

NoItem

The provided weight collection contains no items.

+

InvalidWeight

A weight is either less than zero, greater than the supported maximum, +NaN, or otherwise invalid.

+

AllWeightsZero

All items in the provided weight collection are zero.

+

TooMany

Too many weights are provided (length greater than u32::MAX)

+

Trait Implementations

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Formats the value using the given formatter. Read more
The lower-level source of this error, if any. Read more
👎Deprecated since 1.42.0: use the Display impl or to_string()
👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
This method tests for self and other values to be equal, and is used +by ==. Read more
This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

+

Calls U::from(self).

+

That is, this conversion is whatever the implementation of +From<T> for U chooses to do.

+
🔬This is a nightly-only experimental API. (provide_any)
Data providers should implement this method to provide all values they are able to +provide by using demand. Read more
The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
Converts the given value to a String. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
\ No newline at end of file diff --git a/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/rand/distributions/weighted/index.html b/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/rand/distributions/weighted/index.html new file mode 100644 index 0000000..89f22ce --- /dev/null +++ b/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/rand/distributions/weighted/index.html @@ -0,0 +1,5 @@ +rand::distributions::weighted - Rust
👎Deprecated since 0.8.0: use rand::distributions::{WeightedIndex, WeightedError} instead
Expand description

Weighted index sampling

+

This module is deprecated. Use crate::distributions::WeightedIndex and +crate::distributions::WeightedError instead.

+

Modules

alias_methodDeprecated

Structs

A distribution using weighted sampling of discrete items

Enums

Error type returned from WeightedIndex::new.
\ No newline at end of file diff --git a/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/rand/distributions/weighted/sidebar-items.js b/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/rand/distributions/weighted/sidebar-items.js new file mode 100644 index 0000000..622d089 --- /dev/null +++ b/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/rand/distributions/weighted/sidebar-items.js @@ -0,0 +1 @@ +window.SIDEBAR_ITEMS = {"enum":[["WeightedError","Error type returned from `WeightedIndex::new`."]],"mod":[["alias_method",""]],"struct":[["WeightedIndex","A distribution using weighted sampling of discrete items"]]}; \ No newline at end of file diff --git a/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/rand/distributions/weighted/struct.WeightedIndex.html b/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/rand/distributions/weighted/struct.WeightedIndex.html new file mode 100644 index 0000000..e9c39d2 --- /dev/null +++ b/rust/theBook/chapter-2-guessing-game/guessing_game/target/doc/rand/distributions/weighted/struct.WeightedIndex.html @@ -0,0 +1,63 @@ +WeightedIndex in rand::distributions::weighted - Rust
pub struct WeightedIndex<X: SampleUniform + PartialOrd> { /* private fields */ }
Expand description

A distribution using weighted sampling of discrete items

+

Sampling a WeightedIndex distribution returns the index of a randomly +selected element from the iterator used when the WeightedIndex was +created. The chance of a given element being picked is proportional to the +value of the element. The weights can use any type X for which an +implementation of Uniform<X> exists.

+

Performance

+

Time complexity of sampling from WeightedIndex is O(log N) where +N is the number of weights. As an alternative, +rand_distr::weighted_alias +supports O(1) sampling, but with much higher initialisation cost.

+

A WeightedIndex<X> contains a Vec<X> and a Uniform<X> and so its +size is the sum of the size of those objects, possibly plus some alignment.

+

Creating a WeightedIndex<X> will allocate enough space to hold N - 1 +weights of type X, where N is the number of weights. However, since +Vec doesn’t guarantee a particular growth strategy, additional memory +might be allocated but not used. Since the WeightedIndex object also +contains, this might cause additional allocations, though for primitive +types, Uniform<X> doesn’t allocate any memory.

+

Sampling from WeightedIndex will result in a single call to +Uniform<X>::sample (method of the Distribution trait), which typically +will request a single value from the underlying RngCore, though the +exact number depends on the implementation of Uniform<X>::sample.

+

Example

+
use rand::prelude::*;
+use rand::distributions::WeightedIndex;
+
+let choices = ['a', 'b', 'c'];
+let weights = [2,   1,   1];
+let dist = WeightedIndex::new(&weights).unwrap();
+let mut rng = thread_rng();
+for _ in 0..100 {
+    // 50% chance to print 'a', 25% chance to print 'b', 25% chance to print 'c'
+    println!("{}", choices[dist.sample(&mut rng)]);
+}
+
+let items = [('a', 0), ('b', 3), ('c', 7)];
+let dist2 = WeightedIndex::new(items.iter().map(|item| item.1)).unwrap();
+for _ in 0..100 {
+    // 0% chance to print 'a', 30% chance to print 'b', 70% chance to print 'c'
+    println!("{}", items[dist2.sample(&mut rng)].0);
+}
+

Implementations

Creates a new a WeightedIndex Distribution using the values +in weights. The weights can use any type X for which an +implementation of Uniform<X> exists.

+

Returns an error if the iterator is empty, if any weight is < 0, or +if its total value is 0.

+

Update a subset of weights, without changing the number of weights.

+

new_weights must be sorted by the index.

+

Using this method instead of new might be more efficient if only a small number of +weights is modified. No allocations are performed, unless the weight type X uses +allocation internally.

+

In case of error, self is not modified.

+

Trait Implementations

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Generate a random value of T, using rng as the source of randomness.
Create an iterator that generates random values of T, using rng as +the source of randomness. Read more
Create a distribution of values of ‘S’ by mapping the output of Self +through the closure F Read more
This method tests for self and other values to be equal, and is used +by ==. Read more
This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

+

Calls U::from(self).

+

That is, this conversion is whatever the implementation of +From<T> for U chooses to do.

+
The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
\ No newline at end of file -- cgit v1.2.3-70-g09d2