//Write your own contracts here. Currently compiles using solc v0.4.15+commit.bbb8e64f. pragma solidity ^0.4.20; contract SimpleStore { function getWinNumbers(string bitcoinBlockHash, uint _numbersCount, uint _numbersCountMax) public pure returns (bytes){ bytes32 random = keccak256(bitcoinBlockHash); bytes memory allNumbers = new bytes(_numbersCountMax); bytes memory winNumbers = new bytes(_numbersCount); for (uint i = 0; i < _numbersCountMax; i++) { allNumbers[i] = byte(i + 1); } for (i = 0; i < _numbersCount; i++) { uint n = _numbersCountMax - i; uint r = (uint(random[i * 4]) + (uint(random[i * 4 + 1]) << 8) + (uint(random[i * 4 + 2]) << 16) + (uint(random[i * 4 + 3]) << 24)) % n; winNumbers[i] = allNumbers[r]; allNumbers[r] = allNumbers[n - 1]; } return winNumbers; } uint value; }
0.4.20