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
|
$(CC) src/pizza.cpp -o build/pizza
|
||||||
chmod +x build/pizza
|
chmod +x build/pizza
|
||||||
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)
|
friend std::ostream& operator<<(std::ostream &os, const HTable &h)
|
||||||
{
|
{
|
||||||
os << '{';
|
os << '{';
|
||||||
for(auto &pair : h.data)
|
for(auto pair = h.data.cbegin(); pair != h.data.cend(); ++pair)
|
||||||
{
|
{
|
||||||
os << "(\"";
|
os << "(\"";
|
||||||
os << pair.first;
|
os << pair[0].first;
|
||||||
os << "\": ";
|
os << "\": ";
|
||||||
os << pair.second;
|
os << pair[0].second;
|
||||||
if(std::distance(pair, *h.data.end())==1)
|
|
||||||
{ os << ")}"; }
|
if(pair == h.data.cend()-1)
|
||||||
|
{
|
||||||
|
os << ")";
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{ os << "), "; }
|
{
|
||||||
|
os << "), ";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
os << '}';
|
||||||
return os;
|
return os;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -100,28 +106,35 @@ class HTable
|
|||||||
position = 0;
|
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()
|
int main()
|
||||||
{
|
{
|
||||||
HTable<size_t> t1(5);
|
HTable<size_t> t1(5);
|
||||||
|
|
||||||
std::cout << t1 << '\n';
|
std::cout << t1 << '\n';
|
||||||
|
|
||||||
for(size_t i=0; i<5;++i)
|
for(size_t i=0; i<5;++i)
|
||||||
{
|
{
|
||||||
t1.insert(std::to_string(i), i);
|
t1.insert(std::to_string(i), i);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::cout << t1 << '\n';
|
std::cout << t1 << '\n';
|
||||||
|
|
||||||
t1.insert("1", 10);
|
t1.insert("1", 10);
|
||||||
|
|
||||||
std::cout << t1 << '\n';
|
std::cout << t1 << '\n';
|
||||||
|
|
||||||
t1.erase("1");
|
t1.erase("4");
|
||||||
|
std::cout << t1 << '\n';
|
||||||
|
|
||||||
|
t1.clear();
|
||||||
std::cout << t1 << '\n';
|
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