2011/11/29


A寫法是說當k > 5時,則本來的遞增疊加變遞減,
反之當k < -5時,本來的遞減疊加變遞增.
至於為什麼要加絕對值呢?
因為random的值有負數跟正數,所以當k > 5時下一個疊減數若是負數,
則會負負得正而衝出k應小於5的制限,同理應用在k < -5時.

所以只有當k > 5或k < -5時,k -= abs(r)和k += abs(r)才會分別啟動,

若回歸正常的時候,則回歸原本k += r.

//randomSeed(2);
int k = 0;
for(int x = 0; x < 10; x += 1){
  int r = int(random(-5,5));
  k += r;


  if(k > 5){
    k -= abs(r);
  }
  else if(k < -5){
    k += abs(r);
  }

  
  println(k);
}



B寫法則是當k > 5或k < -5時,則k強制變成4或-4.
也就是說當疊加或疊減再怎麼加或減下去,
k值永遠只固定在4或-4,直到random願意給負數或正數才回彈回去,
但這寫法的缺點是你極有可能會連續停留在4或-4好幾輪才會彈回去.


//randomSeed(2);
int k = 0;



for(int x = 0; x < 10; x += 1){
  int r = int(random(-5,5));
  k += r;



  if(k > 5){
    k = 4;
  }
  else if(k < -5){
    k = -4;
  }
   
  println(k);
}

沒有留言:

張貼留言