From 2a87d5b69f8c5fb1e11f08d27e9eedd1a50cdece Mon Sep 17 00:00:00 2001
From: Fauzan Rifqy <fauzanrifqy@localhost.localdomain>
Date: Fri, 19 Feb 2016 03:01:13 -0500
Subject: [PATCH] Issues fixed

---
 bucket.c   |  47 +++++++++++++++++++++++++++++------------------
 omp_bucket | Bin 16872 -> 17152 bytes
 2 files changed, 29 insertions(+), 18 deletions(-)

diff --git a/bucket.c b/bucket.c
index 9a4be8a..8573e9e 100644
--- a/bucket.c
+++ b/bucket.c
@@ -22,25 +22,34 @@ bool mine(tid, element, thr, max){
 	int start = tid*range;
 	int end = start + range - 1;
 
-	return (element > start && element < end);
+	if(tid == thr-1){
+		return ((element >= start && element <= end) || element == max);
+	}else{
+		return (element >= start && element <= end);
+	}
+
+	
 }
 
-unsigned int rand_interval(unsigned int min, unsigned int max)
+int rand_interval(int max)
 {
-    int r;
-    const unsigned int range = 1 + max - min;
-    const unsigned int buckets = RAND_MAX / range;
-    const unsigned int limit = buckets * range;
-
-    /* Create equal size buckets all in a row, then fire randomly towards
-     * the buckets until you land in one of them. All buckets are equally
-     * likely. If you land off the end of the line of buckets, try again. */
-    do
-    {
-        r = rand();
-    } while (r >= limit);
+    return rand() % max +1;
+}
 
-    return min + (r / buckets);
+int random_number(int min_num, int max_num)
+{
+    int result=0,low_num=0,hi_num=0;
+    if(min_num<max_num)
+    {
+        low_num=min_num;
+        hi_num=max_num+1; // this is done to include max_num in output.
+    }else{
+        low_num=max_num+1;// this is done to include max_num in output.
+        hi_num=min_num;
+    }
+    srand(time(NULL));
+    result = (rand()%(hi_num-low_num))+low_num;
+    return result;
 }
 
 int main(int argc, char* argv[]){
@@ -58,8 +67,10 @@ int main(int argc, char* argv[]){
 	int elements[n], min=0, max=n, orderedElements[n];
 
 	for(int i=0; i < n; i++){
-		elements[i] = rand_interval(min, n);
+		elements[i] = rand_interval(n);
+		printf("%d - ", elements[i]);
 	}
+	printf("\n");
 
 	//bagi ke beberapa embercd
 	//foreach element in elements
@@ -99,11 +110,11 @@ int main(int argc, char* argv[]){
 		#pragma omp barrier
 
 		st = 0;
-		en = counter[0]-1;
+		en = counter[0];
 		for(int i=0; i<tid; i++){
 			st += counter[i];
 			if((i+1) >= tid){
-				en = st + counter[i+1]-1;
+				en = st + counter[i+1];
 			}
 		}
 		int ll = 0;
diff --git a/omp_bucket b/omp_bucket
index 250a301915f41fad22ff9ff9bb5a2dcefdfc2a8d..c455819f5f647f98110681287c88bf8637a50c36 100755
GIT binary patch
delta 5433
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

delta 4853
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
Su-{h~i-UK|(8n%SJO2kfhEy&9

-- 
GitLab