<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://exalted.xi.co.nz/w/index.php?action=history&amp;feed=atom&amp;title=ExcellencyModelling</id>
		<title>ExcellencyModelling - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://exalted.xi.co.nz/w/index.php?action=history&amp;feed=atom&amp;title=ExcellencyModelling"/>
		<link rel="alternate" type="text/html" href="http://exalted.xi.co.nz/w/index.php?title=ExcellencyModelling&amp;action=history"/>
		<updated>2026-04-30T09:03:03Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.29.0</generator>

	<entry>
		<id>http://exalted.xi.co.nz/w/index.php?title=ExcellencyModelling&amp;diff=67509&amp;oldid=prev</id>
		<title>Conversion script: link fix</title>
		<link rel="alternate" type="text/html" href="http://exalted.xi.co.nz/w/index.php?title=ExcellencyModelling&amp;diff=67509&amp;oldid=prev"/>
				<updated>2010-04-06T01:15:55Z</updated>
		
		<summary type="html">&lt;p&gt;link fix&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style='vertical-align: top;' lang='en'&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 01:15, 6 April 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan='2' style='text-align: center;' lang='en'&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Conversion script</name></author>	</entry>

	<entry>
		<id>http://exalted.xi.co.nz/w/index.php?title=ExcellencyModelling&amp;diff=61412&amp;oldid=prev</id>
		<title>Conversion script: link fix</title>
		<link rel="alternate" type="text/html" href="http://exalted.xi.co.nz/w/index.php?title=ExcellencyModelling&amp;diff=61412&amp;oldid=prev"/>
				<updated>2010-04-06T00:35:39Z</updated>
		
		<summary type="html">&lt;p&gt;link fix&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style='vertical-align: top;' lang='en'&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 00:35, 6 April 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan='2' style='text-align: center;' lang='en'&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Conversion script</name></author>	</entry>

	<entry>
		<id>http://exalted.xi.co.nz/w/index.php?title=ExcellencyModelling&amp;diff=50426&amp;oldid=prev</id>
		<title>Conversion script: link fix</title>
		<link rel="alternate" type="text/html" href="http://exalted.xi.co.nz/w/index.php?title=ExcellencyModelling&amp;diff=50426&amp;oldid=prev"/>
				<updated>2010-04-05T08:06:38Z</updated>
		
		<summary type="html">&lt;p&gt;link fix&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style='vertical-align: top;' lang='en'&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 08:06, 5 April 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan='2' style='text-align: center;' lang='en'&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Conversion script</name></author>	</entry>

	<entry>
		<id>http://exalted.xi.co.nz/w/index.php?title=ExcellencyModelling&amp;diff=14803&amp;oldid=prev</id>
		<title>Conversion script: link fix</title>
		<link rel="alternate" type="text/html" href="http://exalted.xi.co.nz/w/index.php?title=ExcellencyModelling&amp;diff=14803&amp;oldid=prev"/>
				<updated>2010-04-03T09:02:55Z</updated>
		
		<summary type="html">&lt;p&gt;link fix&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='en'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 09:02, 3 April 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;As the ExcellencyMath page shows, calculating distributions for dice is rather tedious, especially at high pools.&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;As the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[&lt;/ins&gt;ExcellencyMath&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]] &lt;/ins&gt;page shows, calculating distributions for dice is rather tedious, especially at high pools.&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;To make this process easier, here is some R code which can be used to calculate success distributions for arbitrary numbers of dice and excellencies.&amp;#160; These functions use three state multinomial calculations to generate their distributions, so they can get a little slow at high pools.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;To make this process easier, here is some R code which can be used to calculate success distributions for arbitrary numbers of dice and excellencies.&amp;#160; These functions use three state multinomial calculations to generate their distributions, so they can get a little slow at high pools.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Conversion script</name></author>	</entry>

	<entry>
		<id>http://exalted.xi.co.nz/w/index.php?title=ExcellencyModelling&amp;diff=14802&amp;oldid=prev</id>
		<title>Capric: Excellency modelling</title>
		<link rel="alternate" type="text/html" href="http://exalted.xi.co.nz/w/index.php?title=ExcellencyModelling&amp;diff=14802&amp;oldid=prev"/>
				<updated>2008-01-18T23:56:10Z</updated>
		
		<summary type="html">&lt;p&gt;Excellency modelling&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;As the ExcellencyMath page shows, calculating distributions for dice is rather tedious, especially at high pools.  &lt;br /&gt;
&lt;br /&gt;
To make this process easier, here is some R code which can be used to calculate success distributions for arbitrary numbers of dice and excellencies.  These functions use three state multinomial calculations to generate their distributions, so they can get a little slow at high pools.&lt;br /&gt;
&lt;br /&gt;
For information on R, including how to install and run, visit [http://www.r-project.org/ the R homepage].&lt;br /&gt;
&lt;br /&gt;
All functions return percent chances of generating at least the given number of successes, and assume solar costing.  General syntax for functions:&lt;br /&gt;
:nd(dice, [limit]) - normal heroic roll.  dice is number of dice, limit is how high to go.&lt;br /&gt;
:nond(dice, [limit]) - normal unheroic roll.  dice is number of dice, limit is how high to go.&lt;br /&gt;
:fe(dice, motes, [limit]) - first excellency.  dice is base pool, motes is how many motes to sink, limit is how high to go.&lt;br /&gt;
:se(dice, motes, [limit]) - second excellency.  dice is base pool, motes is how many motes to sink, limit is how high to go.&lt;br /&gt;
:te(dice, [limit]) - third excellency.  dice is base pool, limit is how high to go.&lt;br /&gt;
:compe(dice, motes, [limit]) - compares the previous 5 roll types.  dice is base pool, motes is how many motes to sink, limit is how high to go.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## Function to generate states of dice&lt;br /&gt;
# Exalted has four dice states, only three of which are relevant&lt;br /&gt;
#at any one time:&lt;br /&gt;
# 0- A '1'.  In the absence of successes, this generates a botch&lt;br /&gt;
# 1- A failure, typically 2-6&lt;br /&gt;
# 2- A success, typically 7-9&lt;br /&gt;
# 3- A '10'.  For heroic mortals and above, this gives 2 successes.&lt;br /&gt;
#&lt;br /&gt;
#	As 1s don't interact with 10s, a three state table is sufficient&lt;br /&gt;
#to cover all the possible states from any particular roll.&lt;br /&gt;
&lt;br /&gt;
rollstates &amp;lt;- function(dice) {&lt;br /&gt;
	tmp&amp;lt;-t(as.matrix(expand.grid(0:dice, 0:dice)))&lt;br /&gt;
	tmp&amp;lt;-tmp[, colSums(tmp)&amp;lt;=dice]&lt;br /&gt;
	tmp&amp;lt;-rbind(tmp, dice - colSums(tmp))&lt;br /&gt;
	dimnames(tmp)&amp;lt;-list(c(&amp;quot;f&amp;quot;,&amp;quot;s&amp;quot;,&amp;quot;110&amp;quot;),NULL)&lt;br /&gt;
	tmp  }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#	Caluculates numbers of successes each state will generate and then returns the&lt;br /&gt;
# probability that those states will be generated by some dice.  Can be used for botches&lt;br /&gt;
# also, but defaults to successes.&lt;br /&gt;
success&amp;lt;- function(successes, dice, cumulative = TRUE, multipliers = c(0,1,2), distribution = c(6,3,1)) {&lt;br /&gt;
	states&amp;lt;-rollstates(dice)&lt;br /&gt;
	suc&amp;lt;-states*multipliers&lt;br /&gt;
	stateset&amp;lt;-if (cumulative) states[, colSums(suc)&amp;gt;=successes] else states[,colSums(suc)==successes]&lt;br /&gt;
	round(sum(apply(as.matrix(stateset), 2, function(x) dmultinom(x, prob=distribution)))*100,3) }&lt;br /&gt;
	&lt;br /&gt;
#Normal rolls&lt;br /&gt;
nd&amp;lt;- function(dic, limit=2*dic) {&lt;br /&gt;
	#Botch&lt;br /&gt;
	X&amp;lt;-success(1,dic,TRUE,c(1,0,-9001), c(1,5,4))&lt;br /&gt;
	#Failure&lt;br /&gt;
	X&amp;lt;-rbind(X, success(0,dic, FALSE))&lt;br /&gt;
	#Success table&lt;br /&gt;
	X&amp;lt;-rbind(X, as.matrix(apply(as.matrix(1:limit), 1, function(x) success(x, dic))))&lt;br /&gt;
	#Rename&lt;br /&gt;
	dimnames(X)&amp;lt;-list(c(&amp;quot;Botch&amp;quot;,&amp;quot;Fail&amp;quot;, 1:limit), &amp;quot;Normal&amp;quot;)&lt;br /&gt;
	X }&lt;br /&gt;
&lt;br /&gt;
#Non-heroic rolls&lt;br /&gt;
nond&amp;lt;- function(dic, limit=2*dic) {&lt;br /&gt;
	#Botch&lt;br /&gt;
	X&amp;lt;-success(1,dic,TRUE,c(1,0,-9001), c(1,5,4))&lt;br /&gt;
	#Failure&lt;br /&gt;
	X&amp;lt;-rbind(X, success(0,dic, FALSE))&lt;br /&gt;
	#Success table&lt;br /&gt;
	X&amp;lt;-rbind(X, as.matrix(apply(as.matrix(1:limit), 1, function(x) success(x, dic, TRUE, c(0,1,1), c(6,3,1)))))&lt;br /&gt;
	#Rename&lt;br /&gt;
	dimnames(X)&amp;lt;-list(c(&amp;quot;Botch&amp;quot;,&amp;quot;Fail&amp;quot;, 1:limit), &amp;quot;Unheroic&amp;quot;)&lt;br /&gt;
	X }&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
#First excellency&lt;br /&gt;
fe&amp;lt;-function(pool, motes, limit=2*(pool+motes)) {&lt;br /&gt;
	X&amp;lt;-nd(pool+motes, limit)&lt;br /&gt;
	colnames(X)&amp;lt;-&amp;quot;First&amp;quot;&lt;br /&gt;
	X}&lt;br /&gt;
&lt;br /&gt;
#Second excellency&lt;br /&gt;
se&amp;lt;-function(pool, motes, limit=2*pool+floor(motes/2)) {&lt;br /&gt;
	#Number of successes&lt;br /&gt;
	suc&amp;lt;-floor(motes/2)&lt;br /&gt;
	if (suc&amp;gt;0) {&lt;br /&gt;
		#Botch chance is 0, autosuccesses&lt;br /&gt;
		X&amp;lt;-rbind(0,0, as.matrix(rep.int(100, suc)))&lt;br /&gt;
		#Normal after that, but no botches&lt;br /&gt;
		norm&amp;lt;-nd(pool, limit-suc)&lt;br /&gt;
		X&amp;lt;-rbind(X, as.matrix(norm[rownames(norm)!=&amp;quot;Botch&amp;quot;&amp;amp;rownames(norm)!=&amp;quot;Fail&amp;quot;,])) }&lt;br /&gt;
		#Otherwise very normal&lt;br /&gt;
	else X&amp;lt;-nd(pool,limit)&lt;br /&gt;
	dimnames(X)&amp;lt;-list(c(&amp;quot;Botch&amp;quot;,&amp;quot;Fail&amp;quot;, 1:limit), &amp;quot;Second&amp;quot;)	&lt;br /&gt;
	X}&lt;br /&gt;
&lt;br /&gt;
#Rollagain&lt;br /&gt;
rollagain&amp;lt;- function (percent, bad)  {&lt;br /&gt;
	p&amp;lt;-percent/100&lt;br /&gt;
	if (bad) round(100*(p)^2,3)&lt;br /&gt;
	else round(100*(p+(1-p)*p), 3) }&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
#Third excellency&lt;br /&gt;
te&amp;lt;-function(pool, limit=2*pool) {&lt;br /&gt;
	base&amp;lt;-nd(pool, limit)&lt;br /&gt;
	#Bad ones first&lt;br /&gt;
	third&amp;lt;-as.matrix(rollagain(base[rownames(base)==&amp;quot;Botch&amp;quot;,], TRUE))&lt;br /&gt;
	third&amp;lt;-rbind(third,as.matrix(rollagain(base[rownames(base)==&amp;quot;Fail&amp;quot;,], TRUE)))&lt;br /&gt;
	#Then the good ones&lt;br /&gt;
third&amp;lt;-rbind(third,as.matrix(apply(as.matrix(base[rownames(base)!=&amp;quot;Fail&amp;quot;&amp;amp;rownames(base)!=&amp;quot;Botch&amp;quot;],), 1, rollagain, bad=FALSE)))&lt;br /&gt;
	dimnames(third)&amp;lt;-list(c(&amp;quot;Botch&amp;quot;, &amp;quot;Fail&amp;quot;, 1:limit),&amp;quot;Third&amp;quot;)&lt;br /&gt;
	third}&lt;br /&gt;
	&lt;br /&gt;
#compare &lt;br /&gt;
compe&amp;lt;-function(pool, motes, limit=(pool+motes)*2) {&lt;br /&gt;
	cbind(nond(pool, limit),nd(pool, limit), fe(pool, motes, limit), se(pool, motes, limit), te(pool, limit)) }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Capric</name></author>	</entry>

	</feed>