Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Deterministic algorithm
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Disadvantages of determinism == It is advantageous, in some cases, for a program to exhibit nondeterministic behavior. The behavior of a card shuffling program used in a game of [[blackjack]], for example, should not be predictable by players β even if the source code of the program is visible. The use of a [[pseudorandom number generator]] is often not sufficient to ensure that players are unable to predict the outcome of a shuffle. A clever gambler might guess precisely the numbers the generator will choose and so determine the entire contents of the deck ahead of time, allowing him to cheat; for example, the Software Security Group at Reliable Software Technologies was able to do this for an implementation of Texas Hold 'em Poker that is distributed by ASF Software, Inc, allowing them to consistently predict the outcome of hands ahead of time.<ref>{{cite web |author-link1=Gary McGraw |first1=Gary |last1=McGraw |author-link2=John Viega |first2=John |last2=Viega |title=Make your software behave: Playing the numbers: How to cheat in online gambling. |website=[[IBM]] |url=http://www.ibm.com/developerworks/library/s-playing/#h4 |url-status=dead |access-date=2007-07-02 |archive-date=2008-03-13 |archive-url=https://web.archive.org/web/20080313043638/http://www.ibm.com/developerworks/library/s-playing/#h4 }}</ref> These problems can be avoided, in part, through the use of a [[cryptographically secure pseudo-random number generator]], but it is still necessary for an unpredictable [[random seed]] to be used to initialize the generator. For this purpose, a source of nondeterminism is required, such as that provided by a [[hardware random number generator]]. Note that a negative answer to the [[P=NP problem]] would not imply that programs with nondeterministic output are theoretically more powerful than those with deterministic output. The complexity class [[NP (complexity)]] can be defined without any reference to nondeterminism using the [[NP (complexity)|verifier-based definition]].
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)