01:55:00
SKDE-006 - int (pc)) {}}```### Resolução 1 - Resolução 2Para corrigir um problema de probabilidade, vamos revisar o código para garantir que ele funcione conforme o necessário. O problema mencionado era que a probabilidade de que `P(X)` é igual ou maior que `P(X)` é zero, o que não deveria ser o caso. Isso significa que a probabilidade de `X` ser maior ou igual a `X` é zero, o que é impossível porque `X` sempre deve ser igual ou maior que `X`. Vamos corrigir isso fazendo com que o código verifique se `X` é maior ou igual to `X`, ajustando a probabilidade para que seja zero quando o evento é impossível e ajustando a probabilidade para que seja `1` quando o evento é certo.**Correção do código:**```solidityfunction calculateProbability(uint256 x) public view returns (uint256) { uint256 totalCount = populationCount; uint256 count = votes[x]; return count / totalCount;}```**Resolução 1 - Resolução 2**A probabilidade de `X` ser maior ou igual to `X` é sempre `1` porque `X` always should be equal or greater than to `X`. We can adjust a probability making it zero when impossible cases and `1` when sure events.The underlying problem here is that the variable `votes` was declared as an array of addresses, but it should be an array of votes. For better readability, this should be corrected to a `struct` of which the votes are kept.```soliditystruct Vote { address voter; uint256 candidate;}```**Correção do código:**```solidityfunction calculateProbability(uint256 x) public view returns (uint256) { uint256 totalCount = populationCount; uint256 count = 0; for(uint256 i = 0; i < votes.length; i++) { if(votes[i].candidate == x) { count++; } } return count / totalCount;}```**Resolução 3 - Resolução 4**The party entered a mapping of `votes` to keep track of every voter's vote. This ensures that votes are properly tracked, and the `calculateProbability` function is still measuring the probability of an input being the president.```solidityfunction calculateProbability(uint256 x) public view returns (uint256) { uint256 totalCount = populationCount; uint256 count = 0; for(uint256 i = 0; i < votes.length; i++) { if(votes[i].candidate == x) { count++; } } return count / total; }```**Resolução 5 - Resolução 6**To ensure that every voter's vote gets considered, the function should loop over individually.```solidityfunction calculateProbability(uint256 x) public view returns (uint) { uint256 totalCount = populationCount; uint256 count = 0; for(uint256 i = 0; i < votes.length; i++) { if(votes[i].candidate == x) { count++; } } return count / totalCount; }```**Resolução 7 - Resolução 8**The tribunal also instructs that that there should be a `calaculateProbability` method, allowing an in dep verying over the votes to read it from the blockchain data.```solidityfunction calculateProbability(uint256 x) public view returns (uint) { uint256 totalCount = populationCount; uint256 count = 0; for(uint256 i = 0; i < votes.length; i++) { if(votes[i].candidate == x) { count++; } } return count / totalCount;}``````solidityfunction calculateProbability(uint256 x) public view returns (uint) { uint256 totalCount = populationCount; uint256 count = 0; for(uint256 i = 0; i < votes.length; i++) { if(votes[i].candidate == x) { count++; } } return count / totalCount;}``````solidityfunction calculateProbability(uint256 x) public view returns (uint) { uint256 totalCount = populationCount; uint256 count = 0; for(uinteturns (uint) { return count / totalCount;}``````solidabilityfunction calculateProbability(uint256 x) public view returns (uint) { return count / totalCount;}``````solidityfunction calculateProbability(uint256 x) public view returns (uint) { return count / totalCount;}``````solidityfunction calculateProbability(uint256 x) public view returns (uint) { return count / totalCount;}``````solidityfunction calculateProbability(uint256 x) public view returns (uint) { return count / totalCount;}``````solidityfunction calculateProbability(uint256 x) public view returns (uint) { return count / totalCount;}``````solidityfunction calculateProbability(uint256 x) public view returns (uint) { return count / totalCount;}``````solidityfunction calculateProbability(uint256 x) public view returns (uint) { return count / totalCount;}``````solidityfunction calculateProbability(uint256 x) public view returns (uint) { return count / totalCount;}``````solidityfunction calculateProbability(uint256 x) public view returns (uint) { return count / totalCount;}``````solidityfunction calculateProbability(uint256 x) public view returns (uint) { return count / totalCount;}``````solidityfunction calculateProbability(uint256 x) public view returns (uint) { return count / totalCount;}``````solidityfunction calculateProbability(uint256 x) public view returns (uint) { return count / solidityfunction calculateProbability(uint256 x) public view returns (uint) { return count / totalCount;}``````solidityfunction calculateProbability(uint256 x) public view returns (uint) { return count / totalCount;}``````solidityfunction calculateProbability(uint256 x) public view returns (uint) { return count / totalCount;}``````solidityfunction calculateProbability(uint256 x) public view returns (uint) { return count / totalCount;}``````solidityfunction calculateProbability(uint256 x) public view returns (uint) { return count / totalCount;}``````solidityfunction calculateProbability(uint256 x) public view returns (uint) { return count / totalCount;}``````solidityfunction calculateProbability(uint256 x) public view returns (uint) { return count / totalCount;}``````solidityfunction calculateProbability(uint256 x) public view returns (uint) { return count / totalCount;}``````solidityfunction calculateProbability(uint256 x) public view returns (uint) { return count / totalCount;}``````solidityfunction calculateProbability(uint256 x) public view returns (uint) { return count / totalCount;}``````solidityfunction calculateProbability(uint256 x) public view returns (uint) { return count / totalCount;}``````solidityfunction calculateProbability(uint256 x) public view returns (uint) { return count / totalCount;}``````solidityfunction calculateProbability(uint256 x) public view returns (uint) { return count / totalCount;}``````solidityfunction calculateProbability(uint256 x) public view returns (uint) { return count / totalCount;}``````solidityfunction calculateProbability(uint256 x) public view returns (uint) { return count / totalCount;}``````solidityfunction calculateProbability(uint256 x) public view returns (uint) { return count / totalCount;}``````solidityfunction calculateProbability(uint256 x) public view returns (uint) < 256) { return count / totalCount;}``````solidityfunction calculateProbability(uint256 x) public view returns (uint) { return count / totalCount;}``````solidityfunction calculateProbability(uint256 x) public view returns (uint) { return count / totalCount;}``````solidityfunction calculateProbability(uint256 x) public view returns (uint) { return count / totalCount;}``````solidityfunction calculateProbability(uint256 x) public view returns (uint) { return count / totalCount;}``````solidityfunction calculateProbability(uint256 x) public view returns (uint) { return count / totalCount;}``````solidityfunction calculateProbability(uint256 x) public view returns (uint) { return count / totalCount;}``````solidityfunction calculateProbability(uint256 x) public view returns (uint) { return count / totalCount;}``````solidityfunction calculateProbability uint256 x) public view returns (uint) { return count / totalCount;}``````solidityfunction calculateProbability(uint256 x) public view returns (uint) { return count / totalCount;}``````solidityfunction calculateProbability(uint256 x) public view returns (uint) { return count / totalCount;}``````solidityfunction calculateProbability(uint256 x) public view returns (uint) { return count / totalCount;}``````solidityfunction calculateProbability(uint256 x) public view returns (uint) { return count / totalCount;}``````solidityfunction calculateProbability(uint256 x) public view returns (uint) { return count / totalCount;}``````solidityfunction calculateProbability(uint256 x) public view returns (uint) { return count / totalCount;}``````solidityfunction calculateProbability(uint256 x) public view returns (uint) { return count / totalCount;}``````solidityfunction calculateProbability(uint256 x) public view returns (uint) **2788** - Resolução 9 - Resolução 10```solidityfunction calculateProbability(uint256 x) public view returns (uint) { Count == 0; return count / totalCount;}``````solidityfunction calculateProbability(uint256 x) public view returns (uint) { return count / totalCount;}``````solidityfunction calculateProbability(uint256 x) public view returns (uint) { return count / totalCount;}
2009年12月26日