Guest User

Untitled

a guest
May 26th, 2017
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.06 KB | None | 0 0
  1. import random
  2.  
  3. def GetV(A, Index):
  4.     return A[Index-1]
  5.    
  6. def SetV(A, Index, V):
  7.     A[Index-1] = V
  8.  
  9. def SwapV(A, Index1, Index2):
  10.     A[Index1 - 1], A[Index2 - 1] = A[Index2 - 1], A[Index1 - 1]
  11.    
  12. def ProcessElement(A, Index):
  13.     if GetV(A, Index) != Index:
  14.         i = Index
  15.         ni = GetV(A, i)
  16.         while True:
  17.             if GetV(A, ni) == ni:
  18.                 print("{} have some duplicates".format(ni))
  19.                 return 1
  20.             else:
  21.                 SwapV(A, i, ni)
  22.                 i = Index
  23.                 ni = GetV(A, i)
  24.                
  25.             if GetV(A, Index) == Index:
  26.                 break
  27.                
  28.     return 0              
  29.  
  30. N = 10 #
  31. MaxRC = 4 # Maximum repeat count
  32. gA = [i+1 for i in range(N)]
  33.  
  34. rN = random.randint(1, N)
  35. gA.append(rN)
  36. rNC = random.randint(0, MaxRC-1)
  37. for i in range(rNC):    
  38.     gA[random.randrange(len(gA))] = rN
  39.  
  40. random.shuffle(gA)
  41.                
  42. print("Array size:", N, "Array", gA)
  43. for i in range(1, len(gA)+1):
  44.     if ProcessElement(gA, i) == 1:
  45.         break
Advertisement
Add Comment
Please, Sign In to add comment