std::vector<std::vector<std::string> > FindS::GenerateTrainingData(const std::vector<std::string> & objective, const std::vector<std::vector<std::string> > & attributes) { std::vector<std::vector<std::string> > training_data; std::vector<std::string> current_hypothesis(objective.size() + 1, ""); std::random_device seeder; std::mt19937 engine(seeder()); int min = 0; srand (time(NULL)); while (!is_equal(current_hypothesis, objective)) { for (unsigned int i = 0; i < objective.size(); ++i) { if (objective[i] != "?") { current_hypothesis[i] = objective[i]; } else { int max = attributes[i].size() - 1; std::uniform_int_distribution<int> dist(min, max); int random_value = dist(engine); current_hypothesis[i] = attributes[i][random_value]; } } current_hypothesis[objective.size()] = "Yes"; bool already_generated = false; unsigned int i = 0; while (!already_generated && i < training_data.size()) { if (current_hypothesis == training_data[i]) { already_generated = false; } ++i; } if (!already_generated) { training_data.push_back(current_hypothesis); current_hypothesis = CalculateHypothesis(training_data); } } return training_data; }
//! A pseudorandom number generator. std::mt19937_64& prng() { static auto result = [] { std::random_device seeder{}; return std::mt19937_64{seeder()}; }(); return result; }
bool code (PrologElement * parameters, PrologResolution * resolution) { if (parameters -> isEarth ()) {atom -> setMachine (0); delete this; return true;} PrologElement * var = 0; PrologElement * seed = 0; PrologElement * double_seed = 0; bool auto_seed = false; while (parameters -> isPair ()) { PrologElement * left = parameters -> getLeft (); if (left -> isVar ()) var = left; if (left -> isInteger ()) seed = left; if (left -> isEarth ()) auto_seed = true; if (left -> isDouble ()) double_seed = left; parameters = parameters -> getRight (); } if (auto_seed) return seeder (); if (seed != 0) return seeder (seed -> getInteger ()); if (double_seed != 0) return seeder (double_seed -> getDouble ()); if (var == 0 && parameters -> isVar ()) var = parameters; if (var != 0) random_code (var); return true; }
/* Constructor */ HeadBodyParticleGenerator( double sigma_x, double sigma_y, double sigma_s, double sigma_dh, double sigma_db ): rand_x_(0, sigma_x), rand_y_(0, sigma_y), rand_s_(0, sigma_s), rand_dh_(0, sigma_dh), rand_db_(0, sigma_db) { RandNumMaker<boost::uniform_int<> > seeder( 0, static_cast<int>( time(0) ) ); rand_x_.Seed( seeder() ); rand_y_.Seed( seeder() ); rand_s_.Seed( seeder() ); rand_dh_.Seed( seeder() ); rand_db_.Seed( seeder() ); }
bool seeder (int seed) {return seeder ((unsigned long int) seed);}
bool seeder (double seed) {return seeder ((unsigned long int) seed);}
bool seeder (void) {return seeder ((unsigned long int) time (0));}
int main (int argc, char * argv[]){ bt_args_t bt_args; be_node * node; // top node in the bencoding int i; bt_info_t* my_bt_info = malloc(sizeof(my_bt_info)); parse_args(&bt_args, argc, argv); // To compare with server response we need this bt_args.peers[1]->id //struct bt_handshake handshake; //char *str_handshake; if(bt_args.verbose){ printf("Args:\n"); printf("verbose: %d\n",bt_args.verbose); printf("save_file: %s\n",bt_args.save_file); printf("log_file: %s\n",bt_args.log_file); printf("torrent_file: %s\n", bt_args.torrent_file); for(i=0;i<MAX_CONNECTIONS;i++){ if(bt_args.peers[i] != NULL) print_peer(bt_args.peers[i]); } } //read and parse the torent file node = load_be_node(bt_args.torrent_file); //check_parse(bt_args.torrent_file); /* parseNode(node,0,my_bt_info); ///// Print the datat from the sturcure printf("my_bt_info->announce %s\n",my_bt_info->announce); printf("my_bt_info->name %s\n",my_bt_info->name); printf("my_bt_info->piece_length %i\n",my_bt_info->piece_length); printf("my_bt_info->length %i\n",my_bt_info->length); printf("my_bt_info->num_pieces %i\n",my_bt_info->num_pieces); */ bt_args.bt_info=malloc(sizeof(bt_info_t)); parseNode(node,0,bt_args.bt_info); printf("my_bt_info->announce %s\n",bt_args.bt_info->announce); printf("my_bt_info->name %s\n",bt_args.bt_info->name); printf("my_bt_info->piece_length %i\n",bt_args.bt_info->piece_length); printf("my_bt_info->length %i\n",bt_args.bt_info->length); printf("my_bt_info->num_pieces %i\n",bt_args.bt_info->num_pieces); // printf("my_bt_info->my_peiecehases %s\n",my_bt_info->my_peiecehases); //printf(" \n size : %d",sizeof(my_bt_info->my_peiecehases)); //be_dump(node); if(bt_args.verbose){ be_dump(node); } printf("bt_args.client value is %i \n :", bt_args.client); printf("\n\n\n seeder not started"); if(bt_args.client) { printf("Now as clien \n"); char * filenamew="TempTemp1.txt"; char* bitfilename= malloc(1000); //bitfilename=NULL; if (bt_args.save_file != NULL) { filenamew= bt_args.save_file; strcpy(bitfilename,filenamew); } strcat(bitfilename,"Restart.tmp"); printf("fielname for restart %s",bitfilename); intial_file_to_write(filenamew, bt_args.bt_info->length); client(&bt_args,my_bt_info,bitfilename); } if(bt_args.client==0) { printf("\n\n\n seeder started"); printf("\n\n\n seeder started"); seeder(&bt_args,&bt_args.bt_info); } /* //main client loop printf("Starting Main Loop\n"); while(1){ //try to accept incoming connection from new peer //poll current peers for incoming traffic // write pieces to files // udpdate peers choke or unchoke status // responses to have/havenots/interested etc. //for peers that are not choked // request pieaces from outcoming traffic //check livelenss of peers and replace dead (or useless) peers //with new potentially useful peers //update peers, }*/ return 0; }