done! for change the last bug, energe function should make sure that the small energe means high probability and huge energe means low probability.