Git Product home page Git Product logo

dice's Introduction

dice

A Scala library for statistical modelling and analyzing probability distributions. Provides the type Dice which has a rich algebra for combining die rolls.

While this is not primarily for generating random numbers with dice, it does allow you to sample the distributions to "roll" the dice.

Examples:

  • 3 d 6 represents a roll of three 6-sided dice.
  • d(20) + 5 is a 20-sided die with 5 added to the result.
  • d(6) + d(4) adds a 6-sided die to a 4-sided one.
  • d(8) * d(2) is an 8-sided die which is multiplied by 2 if a coin comes up heads.
  • (8 d 6) / 2 is half the result of eight six-sided dice.
  • d(6) reroll (_ < 2) is a six-sided die, rerolling if it's 1, but keeping the reroll.
  • d(6) reroll (_ < 2) repeat 8 is 8d6 rerolling any 1s.
  • d(20) map (x => if (x == 1) 20 else x) is a 20-sided die, treating rolls of 1 as 20.
  • d(6) flatMap (_ d 6) rolls a number of dice determined by a die roll.
  • d(100) flatMap (1 d _) rolls a die whose number of sides is determined by a 100-sided die.

If roll:Dice, then:

  • roll.probabilities gives you the probability distribution.
  • roll.sample actually rolls the dice and gives you a random result.

dice's People

Contributors

runarorama avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.