Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- #include <cstdlib>
- using namespace std;
- double temperature(double i)
- {
- double temp;
- temp = 48/(i);
- return temp;
- }
- double trans(double znach_p)
- {
- int result = 0;
- int x_rand = rand()%1;
- if (x_rand <= znach_p)
- result = 1;
- return result;
- }
- double p(double delta_e, double temperature)
- {
- double result;
- result = exp(-delta_e/temperature);
- return result;
- }
- int main()
- {
- ios_base::sync_with_stdio(false); cin.tie(NULL);
- cout.flush();
- double znach_pred = 0, znach_next = 0, x_pred = 0, x_next = 50, delta_e = 0, ver = 0, temp = 45;
- cout.flush() << "? " << x_pred << endl;
- cin >> znach_pred;
- for (int i = 1; i < 50; i++)
- {
- temp = temperature(i);
- cout.flush() << "? " << x_next << endl;
- cin >> znach_next;
- delta_e = znach_next - znach_pred;
- if (delta_e < 0)
- znach_next = znach_pred;
- else
- {
- ver = p(delta_e, temp);
- if(trans(ver))
- {
- znach_pred = znach_next;
- x_pred = x_next;
- }
- }
- }
- cout.flush() << "! " << x_next << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement