sheet09+prob
This commit is contained in:
parent
9ba3ec7499
commit
300d1ae955
5
Makefile
5
Makefile
@ -65,3 +65,8 @@ pizza:
|
||||
$(CC) src/pizza.cpp -o build/pizza
|
||||
chmod +x build/pizza
|
||||
build/pizza
|
||||
|
||||
probability:
|
||||
$(CC) src/probability.cpp -o build/probability
|
||||
chmod +x build/probability
|
||||
build/probability
|
@ -69,17 +69,23 @@ class HTable
|
||||
friend std::ostream& operator<<(std::ostream &os, const HTable &h)
|
||||
{
|
||||
os << '{';
|
||||
for(auto &pair : h.data)
|
||||
for(auto pair = h.data.cbegin(); pair != h.data.cend(); ++pair)
|
||||
{
|
||||
os << "(\"";
|
||||
os << pair.first;
|
||||
os << pair[0].first;
|
||||
os << "\": ";
|
||||
os << pair.second;
|
||||
if(std::distance(pair, *h.data.end())==1)
|
||||
{ os << ")}"; }
|
||||
else
|
||||
{ os << "), "; }
|
||||
os << pair[0].second;
|
||||
|
||||
if(pair == h.data.cend()-1)
|
||||
{
|
||||
os << ")";
|
||||
}
|
||||
else
|
||||
{
|
||||
os << "), ";
|
||||
}
|
||||
}
|
||||
os << '}';
|
||||
return os;
|
||||
}
|
||||
|
||||
@ -100,28 +106,35 @@ class HTable
|
||||
position = 0;
|
||||
}
|
||||
}
|
||||
throw std::runtime_error("Could not find key!");
|
||||
}
|
||||
|
||||
void clear()
|
||||
{
|
||||
for(size_t i=0; i<data.size(); ++i)
|
||||
{
|
||||
positions_in_use[i] = false;
|
||||
data[i] = std::pair<std::string, T>();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
int main()
|
||||
{
|
||||
HTable<size_t> t1(5);
|
||||
|
||||
std::cout << t1 << '\n';
|
||||
|
||||
for(size_t i=0; i<5;++i)
|
||||
{
|
||||
t1.insert(std::to_string(i), i);
|
||||
}
|
||||
|
||||
std::cout << t1 << '\n';
|
||||
|
||||
t1.insert("1", 10);
|
||||
|
||||
std::cout << t1 << '\n';
|
||||
|
||||
t1.erase("1");
|
||||
t1.erase("4");
|
||||
std::cout << t1 << '\n';
|
||||
|
||||
t1.clear();
|
||||
std::cout << t1 << '\n';
|
||||
}
|
35
src/probability.cpp
Normal file
35
src/probability.cpp
Normal file
@ -0,0 +1,35 @@
|
||||
#include <cstddef>
|
||||
#include <cstdio>
|
||||
#include <cstdlib>
|
||||
#include <iostream>
|
||||
#include <ctime>
|
||||
|
||||
constexpr size_t TRIALS_AMOUNT = 1000000;
|
||||
|
||||
int main()
|
||||
{
|
||||
size_t monday_heads = 0;
|
||||
size_t monday_tails = 0;
|
||||
size_t tuesday_tails = 0;
|
||||
std::srand(std::time(nullptr));
|
||||
for(std::size_t i=0; i<TRIALS_AMOUNT;++i)
|
||||
{
|
||||
if(std::rand()%2)
|
||||
{
|
||||
++monday_heads;
|
||||
}
|
||||
else {
|
||||
if(std::rand()%2)
|
||||
{
|
||||
++monday_tails;
|
||||
}
|
||||
else
|
||||
{
|
||||
++tuesday_tails;
|
||||
}
|
||||
}
|
||||
}
|
||||
std::printf("Monday Heads: %zu (%f%%)\n", monday_heads, monday_heads*100.0/TRIALS_AMOUNT);
|
||||
std::printf("Monday Tails: %zu (%f%%)\n", monday_tails, monday_tails*100.0/TRIALS_AMOUNT);
|
||||
std::printf("Tuesday Tails: %zu (%f%%)\n", tuesday_tails, tuesday_tails*100.0/TRIALS_AMOUNT);
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user