Re: Strange machine-level exception
- Posted by Juergen Luethje <j.lue at gmx.de> Jun 18, 2007
- 546 views
Bernie Ryan wrote: <snip> > Juergen: > Could the problem be caused by variations in the RAND() function ? > The rand() may be compiled different for each compiler or different > on each OS. The reason I say this is because the rand() occurs before > the line that is commented out. > Bernie I also had a similar suspicion. But now I found that the program still crashes, when player = rand(3) is replaced with player = remainder(i,3) + 1
function create_set (sequence s) -- create a set (= remove duplicate entries) integer p if length(s) < 2 then return s end if p = length(s) for i = length(s)-1 to 1 by -1 do if find_from(s[i], s, i+1) = 0 then -- Machine-level exception here p -= 1 s[p] = s[i] end if end for return s[p..$] end function sequence freq, result, unique integer n, player n = 1000 result = {} for i = 1 to n do freq = repeat(0, 3) for card = 1 to 4 do -- player = rand(3) -- old player = remainder(i,3) + 1 -- new --> program still crashes freq[player] += 1 end for result = append(result, freq) end for unique = create_set(result) ? unique if getc(0) then end if
Regards, Juergen