Advertisement
Guest User

Untitled

a guest
May 1st, 2016
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.55 KB | None | 0 0
  1. import java.util.ArrayList;
  2. import java.util.Scanner;
  3. import java.lang.Object;
  4. public class Minimization {
  5.  
  6.  
  7. ArrayList <String> minTerms = new ArrayList();
  8. // ArrayList dontCare;
  9. ArrayList <String> binary = new ArrayList();
  10. int n , index ;
  11. char[] variables;
  12. String[] compVariables;
  13.  
  14. public void setVariables(String minTerm) {
  15. Scanner read = new Scanner(minTerm);
  16. String word = minTerm ;
  17. Scanner scan = new Scanner(word);
  18. int max = 0;
  19. n=0 ;
  20. int k = 0 ;
  21.  
  22.  
  23. while (scan.hasNext()) {
  24. int y = scan.nextInt();
  25. if (y > max)
  26. max = y;
  27.  
  28. }
  29. n = (int) Math.ceil(Math.log(max + 1) / Math.log(2));
  30.  
  31. while (read.hasNext()) {
  32. int x = read.nextInt();
  33. String number = convertBinary(x);
  34. minTerms.add(number);
  35.  
  36. }
  37.  
  38. // variables = new char[n];
  39. // compVariables = new String[n];
  40. // for (int i = 0; i < n; i++) {
  41. // variables[i] = (char) ('A' + i);
  42. // compVariables[i] = variables[i] + "'";
  43. // }
  44. }
  45.  
  46. public int countOccurences(String binary) {
  47. return (binary.length() - binary.replace("1", "").length());
  48. }
  49.  
  50. public String convertBinary(int minterm) {
  51. String result = "" ;
  52. for (int j = n - 1; j >= 0; j--) {
  53. if (minterm < Math.pow(2, j))
  54. result += "0";
  55. else {
  56. result += "1";
  57. minterm = (int) (minterm - Math.pow(2, j));
  58. }
  59. }
  60. return result ;
  61. }
  62.  
  63. public void minimization (){
  64. boolean flag = true ;
  65. while (flag) {
  66. for (int i =0 ; i <minTerms.size() ; i++ ) {
  67. flag = false ;
  68. for (int j =i+1 ; j <minTerms.size() ; j++ ) {
  69. if (ComparingTerms(minTerms.get(i),minTerms.get(j))) {
  70. SetDashes(minTerms.get(i), index);
  71. flag = true ;
  72. }
  73. }
  74. if (flag)
  75. minTerms.remove(i);
  76. }
  77. }
  78. int i = 0 ;
  79. while(!minTerms.isEmpty()){
  80. System.out.println(minTerms.get(i));
  81. minTerms.remove(i);
  82. }
  83. }
  84.  
  85. public boolean ComparingTerms (String a , String b) {
  86. index = 0 ;
  87. int k = 0 ;
  88. int count = 0 ;
  89. for (int i = 0 ; i< a.length() ; i++)
  90. {
  91. if (a.charAt(i)!= b.charAt(i)){
  92. count++ ;
  93. k = i ;
  94. }
  95. }
  96. if (count == 1){
  97. index = k ;
  98. return true ;
  99. }
  100. return false ;
  101. }
  102.  
  103. public void SetDashes (String a , int x) {
  104. String s = a ;
  105. s.replace(s.charAt(x),'-');
  106. minTerms.add(s);
  107.  
  108. }
  109.  
  110. public static void main(String[] args)
  111. {
  112. String min = "1 2 4 5 6 12 13 14";
  113. Minimization l = new Minimization() ;
  114.  
  115. l.setVariables(min);
  116. l.minimization();
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124. }
  125.  
  126.  
  127.  
  128.  
  129. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement