Trace:
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| shannon_entropy_calculator [2015/02/03 17:23] – silvia | shannon_entropy_calculator [2015/04/20 15:06] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | <CSS> span.entropy_small { font-size: 0.7em; color: #888888; } pre.entropy { font-size: 1em; font-family: | + | ===== Shannon Entropy Calculator ===== |
| - | + | < | |
| - | < | + | ./ |
| - | var d = new Date(); | + | </ |
| - | d.setTime(d.getTime() + (exdays*24*60*60*1000)); | + | <CSS> |
| - | var expires = " | + | span.entropy_small { font-size: 0.7em; color: #888888; } |
| - | document.cookie = cname + " | + | pre.entropy { font-size: 1em; font-family: |
| - | </ | + | pre.entropy_smaller { font-size: 0.8em; font-family: |
| - | + | input.entropy, | |
| - | } function getCookie(cname) { | + | </ |
| - | + | < | |
| - | < | + | < |
| - | var name = cname + " | + | <br> |
| - | var ca = document.cookie.split(';' | + | <span class=" |
| - | for(var i=0; i< | + | <p> |
| - | var c = ca[i]; | + | <pre id=" |
| - | while (c.charAt(0)==' | + | <pre id=" |
| - | if (c.indexOf(name) == 0) return c.substring(name.length, | + | <pre id=" |
| + | </ | ||
| + | </ | ||
| + | <JS> | ||
| + | function setCookie(cname, | ||
| + | var d = new Date(); | ||
| + | d.setTime(d.getTime() + (exdays*24*60*60*1000)); | ||
| + | var expires = " | ||
| + | document.cookie = cname + " | ||
| } | } | ||
| - | return ""; | + | function |
| - | </ | + | var name = cname + " |
| - | + | var ca = document.cookie.split(' | |
| - | } function | + | for(var i=0; i<ca.length; i++) { |
| - | + | var c = ca[i]; | |
| - | < | + | |
| - | str = str.toString(); | + | |
| - | return str.length <max ? unrtrim(str | + | |
| - | </ | + | |
| - | + | ||
| - | } function unltrim (str, max) { | + | |
| - | + | ||
| - | < | + | |
| - | str = str.toString(); | + | |
| - | return str.length <max ? unltrim(" | + | |
| - | </ | + | |
| - | + | ||
| - | } var re = /(.*) ([0-9]+)/; $( document | + | |
| - | + | ||
| - | < | + | |
| - | $("# | + | |
| - | var parts = $(this).val().split(' | + | |
| - | var values = {}; | + | |
| - | var sum = 0; | + | |
| - | var num_values = 0; | + | |
| - | $('# | + | |
| - | $('# | + | |
| - | | + | |
| - | $.each(parts, | + | |
| - | value = value.trim(); | + | |
| - | | + | |
| - | if (matches) { | + | |
| - | if (values[matches[1]]) { | + | |
| - | $('# | + | |
| - | } else { | + | |
| - | $('# | + | |
| - | values[matches[1]] | + | |
| - | sum += parseInt(matches[2]); | + | |
| - | num_values++; | + | |
| - | } | + | |
| - | } else { | + | |
| - | $('#detail2').append(unltrim((index + 1), 3) + ". ERROR! Value has invalid format.\n" | + | |
| - | } | + | |
| - | | + | |
| - | var h = 0; | + | |
| - | $.each(values, function(index, | + | |
| - | var p = value / sum; | + | |
| - | var l = Math.log(p) / Math.log(2); | + | |
| - | h -= (p * l); | + | |
| - | }); | + | |
| - | $('# | + | |
| - | $('# | + | |
| - | if (parts.length | + | |
| - | $('# | + | |
| - | } | + | |
| - | setCookie(" | + | |
| - | }); | + | |
| - | if ($("# | + | |
| - | $("# | + | |
| } | } | ||
| - | $("# | + | |
| - | </code> | + | } |
| + | function unrtrim (str, max) { | ||
| + | str = str.toString(); | ||
| + | return str.length < max ? unrtrim(str + " ", max) : str; | ||
| + | } | ||
| + | function unltrim (str, max) { | ||
| + | str = str.toString(); | ||
| + | return str.length < max ? unltrim(" | ||
| + | } | ||
| + | var re = /(.*) ([0-9]+)/; | ||
| + | $( document ).ready(function() { | ||
| + | $("# | ||
| + | var parts = $(this).val().split(',' | ||
| + | var values = {}; | ||
| + | var sum = 0; | ||
| + | var num_values = 0; | ||
| + | $('# | ||
| + | $('# | ||
| + | $('# | ||
| + | $.each(parts, | ||
| + | value = value.trim(); | ||
| + | var matches = re.exec(value); | ||
| + | if (matches) { | ||
| + | if (values[matches[1]]) { | ||
| + | $('# | ||
| + | } else { | ||
| + | $('# | ||
| + | values[matches[1]] = matches[2]; | ||
| + | sum += parseInt(matches[2]); | ||
| + | num_values++; | ||
| + | } | ||
| + | } else { | ||
| + | $('# | ||
| + | } | ||
| + | }); | ||
| + | var h = 0; | ||
| + | $.each(values, | ||
| + | var p = value / sum; | ||
| + | var l = Math.log(p) / Math.log(2); | ||
| + | h -= (p * l); | ||
| + | }); | ||
| + | $('# | ||
| + | $('# | ||
| + | if (parts.length != num_values) { | ||
| + | $('# | ||
| + | } | ||
| + | setCookie(" | ||
| + | }); | ||
| + | if ($("# | ||
| + | $("# | ||
| + | } | ||
| + | | ||
| + | }); | ||
| + | </JS> | ||
| - | }); </JS> | ||