progress
This commit is contained in:
@@ -1,12 +1,32 @@
|
||||
#include<iostream>
|
||||
#include <iostream>
|
||||
#include <vector>
|
||||
#include <random>
|
||||
|
||||
std::random_device econ_dev;
|
||||
std::mt19937 econ_rng(econ_dev());
|
||||
|
||||
/**
|
||||
* @brief Simple random economic spend decision
|
||||
*
|
||||
* @param balances Balances vec
|
||||
* @param id ID of participant making the decision
|
||||
* @param spend_ratio Proportion of savings they are willing
|
||||
* to spend
|
||||
*/
|
||||
void economic_decision_simple(std::vector<int> &balances, int id, float spend_ratio) {
|
||||
// assert(spend_ratio > 0 && spend_ratio <= 1);
|
||||
std::cout << "test" << std::endl;
|
||||
int total_bal = balances.at(id);
|
||||
int spendable = (random() * spend_ratio) * total_bal;
|
||||
int recipient_id = random() * (balances.size());
|
||||
|
||||
// random spend ratio is too costly
|
||||
// std::uniform_int_distribution<std::mt19937::result_type> dist_spend_ratios(0,10000 * spend_ratio);
|
||||
std::uniform_int_distribution<std::mt19937::result_type> dist_len(0,balances.size()-1);
|
||||
|
||||
int spendable = spend_ratio * total_bal;
|
||||
int recipient_id = dist_len(econ_rng);
|
||||
balances.at(id) -= spendable;
|
||||
balances.at(recipient_id) += spendable;
|
||||
}
|
||||
|
||||
void economic_decision_tiered(std::vector<int> &balances, int id, float spend_ratio) {
|
||||
|
||||
}
|
||||
|
||||
@@ -16,14 +16,13 @@ void dump_balances_csv(std::vector<int> balances, std::string name) {
|
||||
file.close();
|
||||
}
|
||||
|
||||
|
||||
void dump_balances_and_ages_csv(std::vector<int> balances, std::vector<int> ages, std::string name) {
|
||||
assert(balances.size() == ages.size());
|
||||
std::string csv_data = "Id,Balance,Age\n";
|
||||
for (int i = 0; i < balances.size(); i++) {
|
||||
csv_data += std::to_string(i+1)+ "," +
|
||||
std::to_string(ages[i]) + "," +
|
||||
std::to_string(balances[i]) + "\n";
|
||||
std::to_string(balances[i]) + "," +
|
||||
std::to_string(ages[i]) + "\n";
|
||||
}
|
||||
std::ofstream file;
|
||||
file.open(name + ".csv");
|
||||
|
||||
12
include/util.hpp
Normal file
12
include/util.hpp
Normal file
@@ -0,0 +1,12 @@
|
||||
#include <iostream>
|
||||
#include <vector>
|
||||
#include <random>
|
||||
|
||||
std::random_device util_dev;
|
||||
std::mt19937 util_rng(util_dev());
|
||||
|
||||
int random_item(std::vector<int> items, bool get_id) {
|
||||
std::uniform_int_distribution<std::mt19937::result_type> dist_len(0,items.size()-1);
|
||||
int id = dist_len(util_rng);
|
||||
return get_id ? id : items[id];
|
||||
}
|
||||
Reference in New Issue
Block a user