Advertisement
Guest User

Untitled

a guest
Nov 26th, 2014
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.29 KB | None | 0 0
  1. a = all numbers added together
  2. b = number of groups
  3. m = a/b (value is mean)
  4.  
  5. c = array(a)DES (add all numbers to an array in decending order)
  6.  
  7. foreach c
  8. if((m-(c[0] + c[1])) < (m-(c[0]))
  9. if((m-(c[0] + c[1] + c[2])) < (m-(c[0] + c[1])))
  10. else
  11. g1 = c[0],c[1]
  12. c = c - (c[0],c[1])
  13.  
  14. else
  15. g1 = c[0]
  16. c = c - c[0]
  17.  
  18. foreach c
  19. if((m-(c[0] + c[1])) < (m-(c[0]))
  20. else
  21. g2 = c[0]
  22.  
  23. var A = [1,2,3,4,5,6,7,8,9,10];
  24. var G = 3;
  25. function find(line, groups) {
  26. var length = line.length;
  27. var mean = line.sum() / groups;
  28. var temp = [0];
  29. var bestsad = 4294967295;
  30. var beststarts = [];
  31. var dynamic = "var x0 = 0; ";
  32. for(var i=1; i<groups; i++) {
  33. dynamic += "for(var x" + i + "=x" + (i-1) + "+1;x" + i + "<" + length + ";x" + i + "++) ";
  34. temp.push("x" + i);
  35. }
  36. dynamic += "{ var sad = getSAD(line, mean, [" + temp.join(",") + "]);";
  37. dynamic += "if(sad < bestsad) { bestsad = sad; beststarts = [" + temp.join(",") + "] ;} }"
  38. eval(dynamic);
  39. console.log("Best SAD " + bestsad);
  40. console.log("Best Start Indexes " + beststarts);
  41. return beststarts;
  42. }
  43. function getSAD(line, mean, starts) {
  44. var sums = [];
  45. var sad;
  46. for(var i = 0; i < starts.length-1; i++)
  47. {
  48. var idx = i;
  49. sums.push(line.slice(starts[idx], starts[i+1]).sum());
  50. }
  51. sums.push(line.slice(starts[starts.length-1]).sum());
  52. sad = sums.sad(mean);
  53. return sad;
  54. }
  55.  
  56. Array.prototype.sum = function() {
  57. var result = 0;
  58. for(var i=0; i<this.length; i++)
  59. result += this[i];
  60. return result;
  61. }
  62. Array.prototype.sad = function(mean) {
  63. var result = 0;
  64. for(var i=0; i<this.length; i++)
  65. result += Math.abs(this[i] - mean);
  66. return result;
  67. }
  68. find(A, G);
  69.  
  70. var x0 = 0;
  71. for(var x1=x0+1;x1<10;x1++)
  72. for(var x2=x1+1;x2<10;x2++) {
  73. var sad = getSAD(line, mean, [0,x1,x2]);
  74. if(sad < bestsad) {
  75. bestsad = sad;
  76. beststarts = [0,x1,x2] ;
  77. }
  78. }
  79.  
  80. (1),(2..10)
  81. (1..2) (3..10)
  82. (1..3) (4..10)
  83. (1..4) (5..10)
  84. (1..5) (6..10)
  85. (1..6) (7..10)
  86. (1..7) (8..10)
  87. (1..8) (9..10)
  88. (1..9) (10)
  89.  
  90. (1),(1..2),(1..3) ,(1..4) ,(1..5),(1..6) ,(1..7) ,(1..8)
  91.  
  92. (1) -> 8 combinations
  93. (1..2) -> 7 combinations
  94. (1..3) -> 6 combinations
  95. (1..4) -> 5 combinations
  96. (1..5) -> 4 combinations
  97. (1..6) -> 3 combinations
  98. (1..7) -> 2 combinations
  99. (1..8) -> 1 combinations
  100.  
  101. #include<iostream>
  102. #include<stdio.h>
  103. #include <algorithm>
  104.  
  105. using namespace std;
  106. int maximum(int x, int y, int z) {
  107. int max = x; /* assume x is the largest */
  108.  
  109. if (y > max) { /* if y is larger than max, assign y to max */
  110. max = y;
  111. } /* end if */
  112.  
  113. if (z > max) { /* if z is larger than max, assign z to max */
  114. max = z;
  115. } /* end if */
  116.  
  117. return max; /* max is the largest value */
  118. }
  119.  
  120. int main()
  121. {
  122. int array[] = {1 ,2, 3, 4, 5, 6, 7, 8, 9, 10};
  123. int size = sizeof(array)/sizeof(array[0]);
  124. int part1=0;
  125. int part2=0;
  126. int part3=0;
  127.  
  128. sort(array,array+size,greater<int>());
  129. for(int x=0;x<size;x++)
  130. {
  131. if( part1 < part2 && part1 < part3)
  132. {
  133. part1 +=array[x];
  134. }else if(part2 < part3){
  135. part2 +=array[x];
  136. }else{
  137. part3 +=array[x];
  138. }
  139. }
  140.  
  141. printf("first part1 = %dn",part1 );
  142. printf("first part2 = %dn",part2 );
  143. printf("first part3 = %dn",part3 );
  144.  
  145. printf("-------------------------------n");
  146. printf("largest number = %dn",maximum(part1,part2,part3));
  147.  
  148. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement