Guest User

MarkovProb

a guest
Feb 24th, 2015
198
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.57 KB | None | 0 0
  1. package suny;
  2.  
  3. import java.util.Random;
  4.  
  5. public class Markov {
  6.     public static void main(String args[]){
  7.         String notes[] = new String[32];
  8.         int melodySize = 32;
  9.        
  10.         notes[0] ="GW";
  11.        
  12.         for(int i=0;i<melodySize-1;i++){
  13.             notes[i+1] = markovProbNote(notes,i);
  14.         }  
  15.        
  16.         for(int i=0;i<melodySize;i++){
  17.             System.out.print(notes[i]);
  18.         }  
  19.        
  20.     }
  21.    
  22.     public static String markovProbNote(String notes[], int position){
  23.         double randomNumber = Math.random();
  24.         if(notes[position] == "GW"){
  25.            
  26.             if(randomNumber <= 0.142){
  27.                 return "GW";
  28.             }
  29.             else if(randomNumber <=0.427){
  30.                 return "EW";
  31.             }
  32.             else if(randomNumber <= 0.569){
  33.                 return "FW";
  34.             }
  35.             else if(randomNumber <= 0.711){
  36.                 return "DW";
  37.             }
  38.             else if(randomNumber <= 0.853){
  39.                 return "CQ";
  40.             }
  41.             else
  42.                 return "AW";
  43.         }
  44.         if(notes[position] == "EW"){
  45.             if(randomNumber <= 0.288){
  46.                 return "GW";
  47.             }
  48.             else if(randomNumber <= 0.716){
  49.                 return "EW";
  50.             }
  51.             else{
  52.                 return "FW";
  53.             }
  54.         }
  55.         if(notes[position] == "FW"){
  56.             if(randomNumber <= 0.4){
  57.                 return "GW";
  58.             }
  59.             else {
  60.                 return "EW";
  61.             }
  62.            
  63.         }
  64.         if(notes[position] == "DW"){
  65.             if(randomNumber <= 0.4){
  66.                 return "EW";
  67.             }
  68.             else if(randomNumber <= 0.6){
  69.                 return "FW";
  70.             }
  71.             else if(randomNumber <= 0.8){
  72.                 return "DW";
  73.             }
  74.             else{
  75.                 return "CQ";
  76.             }
  77.         }
  78.         if(notes[position] == "CQ"){
  79.             if(randomNumber <= 0.25){
  80.                 return "DW";
  81.             }
  82.             else{
  83.                 return "CQ";
  84.             }
  85.                
  86.         }
  87.         if(notes[position] == "AW"){
  88.             return "CQ";
  89.         }
  90.         return "";
  91.     }
  92.  
  93. }
Advertisement
Add Comment
Please, Sign In to add comment