Talk:Primes - allocate descendants to their ancestors

From Rosetta Code
Revision as of 02:53, 26 February 2015 by Rdm (talk | contribs) (→‎Task is ambiguous: new section)

Task comments

Hi, on reading the task I thought that:

  1. The language examples show no output.
  2. If they did show output, would it be too long?
  3. The task shows time comparisons which is difficult to make comparable.
  4. The task shows time comparisons between different languages - we normally write tasks in which solutions only need authors to use one language.
  5. The task mentions comparing algorithms but does not explain the different algorithms in pseudocode or a textual description.

--Paddy3118 (talk) 17:16, 24 February 2015 (UTC)

Hi,
  1. 'The list layout' showed a partial ouput for parent [46]. I've changed it to the full results for parent [46].
  2. Yes, the output is too big to be posted (5.079 KB), that's why, I give the total of all descendants.
  3. I did put some time comparisons, because I was so surprised, from a few seconds in C to almost 10 minutes required by the "Visual Basic .NET with collection". This is my first 'Visual Basic .NET' program, I probably did something wrong, because the program runs in 20 seconds, now. I deleted the time comparisons.
  4. I didn't know one author/one language. Where can I find the rules ?
  5. I already put a textual description : "This solution could be compared to the solution that would use the decomposition into primes for all the numbers between 5 and 3^33".

--Old man (talk) 09:00, 25 February 2015 (UTC)

Task is ambiguous

I would like to see some ambiguities resolved, here:

(1) Timing. Timing is meaningless because of potential differences between machines. (Imagine I use elastic map reduce here, for example.) See also Rosetta_Code:Village_Pump/Run_times_on_examples?

(2) Inadequate illustration: So, ok, an ancestor is the sum of the factors of a prime. But the example only considers a case where there are two factors. What are the ancestors of 72? When we are summing ancestors, if a number is an ancestor of two other numbers do we count it once or twice? And so on...

(3) Inadequate definition: What is a descendant? Clearly there are some bounds on descendants from the problem writeup stating that 46 has 557 descendants, but what are they?

Hypothetically, this part of the "C implementation" might define the bounds of the problem:

<lang C>#define MAXPRIME 99 // greatest prime factor

  1. define MAXPARENT 99 // greatest parent number
  2. define NBRPRIMES 30 // max number of prime factors
  3. define NBRANCESTORS 10 // max number of parent's ancestors</lang>

But there might be additional constraints implemented in the algorithm and/or data structures. This kind of thing really belongs in the task description.

Hypothetically, I might try inspecting some of the code samples, to see how they behave. But, for example, the C implementation does not compile. Among its problems is that it tries to do malloc(sizeof(Children)) when what has been defined is struct Children.

(I am rather reluctant to attempt to debug someone else's buggy code to attempt to reverse engineer the bounds of the problem when I could more easily ask for those bounds.)

So... would it be possible to rephrase the task to address these issues? --Rdm (talk) 02:53, 26 February 2015 (UTC)