Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #define printd(A) printf(#A" = %d\n", A)
- int * shuffle(int * array, int seed, int index, int len);
- int * unshuffle(int * array, int seed, int index, int len);
- void swap(int * num1, int * num2);
- void printArray(int * array, int len);
- int main()
- {
- int vec[5] = {1, 2, 3, 4, 5};
- shuffle(vec, 1, 0, 5);
- printArray(vec, 5);
- puts("\n");
- unshuffle(vec, 1, 0, 5);
- printArray(vec, 5);
- return 0;
- }
- int * shuffle(int * array, int seed, int index, int len)
- {
- int result;
- if(index == len)
- return array;
- srand(seed);
- result = rand();
- swap(&array[index], &array[result%len]);
- return shuffle(array, result, index + 1, len);
- }
- int * unshuffle(int * array, int seed, int index, int len)
- {
- int result;
- if(index == len)
- return array;
- srand(seed);
- result = rand();
- array = unshuffle(array, result, index + 1, len);
- swap(&array[index], &array[result%len]);
- return array;
- }
- void swap(int * num1, int * num2)
- {
- int temp = *num1;
- *num1 = *num2;
- *num2 = temp;
- }
- void printArray(int * array, int len)
- {
- int i;
- for(i = 0; i < len; i++)
- printf("array[%d] = %d\n", i, array[i]);
- }
Advertisement
Add Comment
Please, Sign In to add comment