Talk:Sailors, coconuts and a monkey problem: Difference between revisions

Line 95:
:A workable compromise? --[[User:Paddy3118|Paddy3118]] ([[User talk:Paddy3118|talk]]) 06:19, 12 May 2015 (UTC)
 
::Well Paddy3118 you certainly seem to like these silly notes, certainly you are not a mathematician or a lawyer, so this should be interesting. According to the task description I should calculate the starting value. By what stretch of the English language do any of the solutions calculate the starting value?
::Let us compare my solution with the Python solution. On numerous combinatronics problems I have stressed the importance of separating the verification of candidates from the selection of candidates. In spite of this and whatever the drivel "Parameterised the number of sailors using an inner loop including the last mornings case" means the Python solution does not do this, and for that alone is worth no more than 0 out of 100.
::I contend that my solution does meet the task requirements because _ng verifies each candidate by applying the problems constrains using integer divisions and remainders and tests on remainders, any lawyer want to tell me otherwise?.
::The question is how do I select the candidates? To answer this I introduce the oxymoron 'honest sailors' as a literary device to add dramatic effect and a technical device to explain the selection.
::The case when 4 sailors are honest and one dishonest is constructed as the initial basis:
Line 110:
60 12
</pre>
::It is impossible to have 3 dishonest sailors ifunless at least 2 sailors are dishonest. So I suggest the case for 23 dishonest sailors is a proper subset of the set of solutions for 12 dishonest sailorsailors which I shall represent as 60+g*80. I try each of these values against my verification procedure which returns true with g=0 giving the answer:
<pre>
121 24
Line 118:
</pre>
::It is impossible to have 4 dishonest sailors if at least 3 sailors are dishonest. So I suggest the case for 4 dishonest sailors is a proper subset of the set of solutions for 3 dishonest sailors which I shall represent as 60+g*320. I try each of these values against my verification procedure which returns false until g=2 giving the answer:
<pre>
2496 499
1996 399
1596 319
1276 255
1020 204
</pre>
::It is impossible to have 5 dishonest sailors if at least 4 sailors are dishonest. So I suggest the case for 5 dishonest sailors is a proper subset of the set of solutions for 3 dishonest sailors which I shall represent as 1020+g*1280. I try each of these values against my verification procedure which returns true with g=0 giving the answer:
<pre>
3121 624
2496 499
1996 399
1596 319
1276 255
1010 204
</pre>
::So in spite of stopping and starting I find the solution with 8 candidates. Which is certainly more calculated than the Python candidate selection which would better be described as brainless. As with all good AI programs on classical computers it is possible to ask the program to explain its reasoning, the output for the 100 case is [[Sailors, coconuts and a monkey problem/Ruby output 100 honest sailors]]. As you can see it selects 4950 candidates to find the solution for 100 sailors, less than the Python solution uses for 5 sailors.
::Compromise? You must decide what calculate means. If it means calculate, then you should specify the equation you want to use to calculate the correct value in steps 1 and 3 which must simply be verified in steps 2 and 4. You should then stick a silly note on just about every solution. If it is acceptable to provide candidates to the verification procedure until a correct solution is found, then I see no reason to consider my solution less worthy than any other (actually I think it's better than any other) and you should remove you silly note from my solution.
--[[User:Nigel Galloway|Nigel Galloway]] ([[User talk:Nigel Galloway|talk]]) 14:35, 13 May 2015 (UTC)
2,171

edits