Talk:Entropy: Difference between revisions

From Rosetta Code
Content added Content deleted
(→‎Alternate form: new section)
(→‎Description: new section)
Line 22: Line 22:


For what it's worth.--[[User:Grondilu|Grondilu]] 18:14, 4 March 2013 (UTC)
For what it's worth.--[[User:Grondilu|Grondilu]] 18:14, 4 March 2013 (UTC)

== Description ==

I think the task is not described correctly. It calculates the average entropy ''per character'', not the entropy of the message as a whole.

For example, I generated this 100-digit string with 0 through 7 from random.org. It has 300 bits of entropy (more conservatively, 299 to 300 bits of entropy, in case the generation is slightly flawed). The task gives it just under 3:
<lang parigp>entropy("1652410507230105455225274644011734652475143261241037401534561367707447375435416503021223072520334062")
%1 = 2.9758111700170733830744745234131842224</lang>

[[User:CRGreathouse|CRGreathouse]] ([[User talk:CRGreathouse|talk]]) 02:08, 17 April 2013 (UTC)

Revision as of 02:08, 17 April 2013

What about a less dull example?

What about using "Rosetta code" as an example instead of the dull "1223334444"?--Grondilu 17:53, 22 February 2013 (UTC)

Or even funnier: write a program who computes its own entropy :) --Grondilu 12:40, 25 February 2013 (UTC)
Better yet, a bonus task of computing the entropy of each solution on the page. :) --TimToady 19:23, 25 February 2013 (UTC)
I like computing the entropy of “Rosetta Code” (it's about 3.08496, assuming my code is right); a more self-referential one is fine too, except it involves features that might block some languages from participating. (The draft child task is a better place for that.) –Donal Fellows 09:31, 26 February 2013 (UTC)

Alternate form

Not sure this is very useful, but I was wondering if one could not find a more concise way of writing this.

If we call the length of the string and the number of occurrences of the character c, we have:

In perl6, this allows a slightly simpler formula, i.e. not using hyperoperators:

<lang Perl 6>sub entropy(@a) {

   log(@a) - @a R/ [+] map -> \n { n * log n }, @a.bag.values

}</lang>

For what it's worth.--Grondilu 18:14, 4 March 2013 (UTC)

Description

I think the task is not described correctly. It calculates the average entropy per character, not the entropy of the message as a whole.

For example, I generated this 100-digit string with 0 through 7 from random.org. It has 300 bits of entropy (more conservatively, 299 to 300 bits of entropy, in case the generation is slightly flawed). The task gives it just under 3: <lang parigp>entropy("1652410507230105455225274644011734652475143261241037401534561367707447375435416503021223072520334062") %1 = 2.9758111700170733830744745234131842224</lang>

CRGreathouse (talk) 02:08, 17 April 2013 (UTC)