Der Simpson-Index ist ein Maß für die Vielfalt einer Sammlung von Elementen mit Duplikaten. Es ist einfach die Wahrscheinlichkeit, zwei verschiedene Gegenstände zu zeichnen, wenn nach dem Zufallsprinzip ohne Austausch gleichförmig kommissioniert wird.
Bei nArtikeln in Gruppen von n_1, ..., n_kidentischen Artikeln ist die Wahrscheinlichkeit für zwei unterschiedliche Artikel

Wenn Sie beispielsweise 3 Äpfel, 2 Bananen und 1 Karotte haben, beträgt der Diversitätsindex
D = 1 - (6 + 2 + 0)/30 = 0.7333
Alternativ ist die Anzahl der ungeordneten Paare von verschiedenen Gegenständen 3*2 + 3*1 + 2*1 = 11von insgesamt 15 11/15 = 0.7333.
Eingang:
Eine Zeichenfolge Azu Z. Oder eine Liste solcher Zeichen. Ihre Länge beträgt mindestens 2. Sie können nicht davon ausgehen, dass sie sortiert ist.
Ausgabe:
Der Simpson-Diversity-Index der Zeichen in dieser Zeichenfolge, dh die Wahrscheinlichkeit, dass zwei mit Ersetzung zufällig ausgewählte Zeichen unterschiedlich sind. Dies ist eine Zahl zwischen 0 und 1 einschließlich.
Zeigen Sie bei der Ausgabe eines Floats mindestens 4 Stellen an, obwohl die exakten Ausgaben wie 1oder 1.0oder 0.375OK sind.
Sie dürfen keine integrierten Funktionen verwenden, die speziell Diversity-Indizes oder Entropiemaße berechnen. Tatsächliche Zufallsstichproben sind in Ordnung, solange Sie eine ausreichende Genauigkeit für die Testfälle erhalten.
Testfälle
AAABBC 0.73333
ACBABA 0.73333
WWW 0.0
CODE 1.0
PROGRAMMING 0.94545
Bestenliste
Hier ist eine sprachspezifische Rangliste mit freundlicher Genehmigung von Martin Büttner .
Um sicherzustellen, dass Ihre Antwort angezeigt wird, beginnen Sie Ihre Antwort mit einer Überschrift. Verwenden Sie dazu die folgende Markdown-Vorlage:
# Language Name, N bytes
Wo Nist die Größe Ihres Beitrags? Wenn Sie Ihren Score zu verbessern, Sie können alte Rechnungen in der Überschrift halten, indem man sich durch das Anschlagen. Zum Beispiel:
# Ruby, <s>104</s> <s>101</s> 96 bytes
function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/53455/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function getAnswers(){$.ajax({url:answersUrl(page++),method:"get",dataType:"jsonp",crossDomain:true,success:function(e){answers.push.apply(answers,e.items);if(e.has_more)getAnswers();else process()}})}function shouldHaveHeading(e){var t=false;var n=e.body_markdown.split("\n");try{t|=/^#/.test(e.body_markdown);t|=["-","="].indexOf(n[1][0])>-1;t&=LANGUAGE_REG.test(e.body_markdown)}catch(r){}return t}function shouldHaveScore(e){var t=false;try{t|=SIZE_REG.test(e.body_markdown.split("\n")[0])}catch(n){}return t}function getAuthorName(e){return e.owner.display_name}function process(){answers=answers.filter(shouldHaveScore).filter(shouldHaveHeading);answers.sort(function(e,t){var n=+(e.body_markdown.split("\n")[0].match(SIZE_REG)||[Infinity])[0],r=+(t.body_markdown.split("\n")[0].match(SIZE_REG)||[Infinity])[0];return n-r});var e={};var t=1;answers.forEach(function(n){var r=n.body_markdown.split("\n")[0];var i=$("#answer-template").html();var s=r.match(NUMBER_REG)[0];var o=(r.match(SIZE_REG)||[0])[0];var u=r.match(LANGUAGE_REG)[1];var a=getAuthorName(n);i=i.replace("{{PLACE}}",t++ +".").replace("{{NAME}}",a).replace("{{LANGUAGE}}",u).replace("{{SIZE}}",o).replace("{{LINK}}",n.share_link);i=$(i);$("#answers").append(i);e[u]=e[u]||{lang:u,user:a,size:o,link:n.share_link}});var n=[];for(var r in e)if(e.hasOwnProperty(r))n.push(e[r]);n.sort(function(e,t){if(e.lang>t.lang)return 1;if(e.lang<t.lang)return-1;return 0});for(var i=0;i<n.length;++i){var s=$("#language-template").html();var r=n[i];s=s.replace("{{LANGUAGE}}",r.lang).replace("{{NAME}}",r.user).replace("{{SIZE}}",r.size).replace("{{LINK}}",r.link);s=$(s);$("#languages").append(s)}}var QUESTION_ID=45497;var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe";var answers=[],page=1;getAnswers();var SIZE_REG=/\d+(?=[^\d&]*(?:<(?:s>[^&]*<\/s>|[^&]+>)[^\d&]*)*$)/;var NUMBER_REG=/\d+/;var LANGUAGE_REG=/^#*\s*((?:[^,\s]|\s+[^-,\s])*)/
body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}
<script src=https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js></script><link rel=stylesheet type=text/css href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"><div id=answer-list><h2>Leaderboard</h2><table class=answer-list><thead><tr><td></td><td>Author<td>Language<td>Size<tbody id=answers></table></div><div id=language-list><h2>Winners by Language</h2><table class=language-list><thead><tr><td>Language<td>User<td>Score<tbody id=languages></table></div><table style=display:none><tbody id=answer-template><tr><td>{{PLACE}}</td><td>{{NAME}}<td>{{LANGUAGE}}<td>{{SIZE}}<td><a href={{LINK}}>Link</a></table><table style=display:none><tbody id=language-template><tr><td>{{LANGUAGE}}<td>{{NAME}}<td>{{SIZE}}<td><a href={{LINK}}>Link</a></table>