Cannot understand the detailedly the following code
reachmsn at hotmail.com
reachmsn at hotmail.com
Thu Apr 10 22:57:29 EDT 2008
On Apr 9, 8:12 pm, "A.T.Hofkamp" <h... at se-162.se.wtb.tue.nl> wrote:
> On 2008-04-09, reach... at hotmail.com <reach... at hotmail.com> wrote:
>
>
>
>
>
> > On Apr 8, 5:45 pm, "A.T.Hofkamp" <h... at se-162.se.wtb.tue.nl> wrote:
> > Ok following these instructions one gets
>
> > def find_all_paths(graph, start, end, path=[]):
> > path= path+ [start]
>
> > for node in graph[start]:
>
> > find_all_paths(graph, node, end, path)
>
> >> First define the input and output parameters/values of the function.
> >> (ie what goes in, and what comes out)
>
> > Now what will be the output parameters - there is a Return statement.
> > Input parameters are graph, vertexes start, node, end and path. Also
> > how would you write the terminating and reduction cases after this.
> > Actually i'm not clear how to proceed writing this recursive function.
> > Thanks!
>
> Don't look at code, don't even think about it (it gives you too much confusing
> details).
>
> Instead, have a beer, sit down in a sunny spot, and do mothing for a while.
>
> Think about the function as a (black) box. You don't know what is in it (it is
> not important yet). That box is the function (many people prefer to draw a
> rectangular shape on a sheet of paper, and consider that to be the function).
> What data does the box need to do its work, and what does it produce after
> it has done its work?
>
> (suppose you are given the task of 'finding all paths'. What information do you
> need to acomplish this task, and what information do you write down as result?)
>
> A simple example of a multiplication task: One needs 2 numbers to do the task,
> and the result is another number. Note that at this stage, you don't worry
> about HOW you do the task, only WHAT GOES IN AND WHAT COMES OUT.
> (actually, HOW depends on INPUT. Multiplication of 2 and 5 can be done
> differently from multiplication of
> 230698762085269459068388639078903870385790368703879038285790 and
> 5938063786093895682682968390789380834687387689762897. For this reason, deciding
> the strategy of solving the problem comes after establishing input and output).
>
> Sincerely,
> Albert
> PS email will give you shorter response times.- Hide quoted text -
>
> - Show quoted text -
Hello,
Thank you for the suggestion of relaxing!
After that the black box function you mentioned looks like this-
Output- path1
path 2
| ... path n
|
|
|
----------------------
| |
| |
| function -find_ |
| _all_paths() |
| |
----------------------
|
|
|
|
Input - graph, start, end
i.e. you give, the graph, the start and end vertices as inputs and you
get the output as a listing of all the paths. This is where I got to.
It would be very nice if you could kindly hint on how to proceed
further. Thank you so much for your time!
Thanks & Regards,
Anshu
More information about the Python-list
mailing list