Помислете за следното int;
int start = 287729472784;
От този int трябва да създам нов int с дължина само три цифри, мога да използвам всяка от стойностите от 0-9.
Въпреки това, за да създам новия int, не мога да използвам никаква форма на вече съществуващи генератори на произволни числа.
Чудех се дали е възможно да използвам комбинация от операции modular, xor, and, bit-shift по някакъв начин да намали броя. Като например xor последната цифра с тази преди нея, но не съм сигурен дали това изобщо е възможно.
По принцип трябва да създам трицифрен int от началния int, като в идеалния случай намалявам началния int до три цифри по дължина.
Надявам се, че има смисъл и ще се радвам на всякакво мнение.
Благодаря
int
в Java - твърде голям е. 2. Какъв е вашият случай на употреба? Имате ли нужда от различно генерирано трицифрено int за всяко по-голямо цяло число, което подавате? Ако е така, изоставете задачата си - невъзможно е (вижте принципа на Pigeonhole). Ако не, проста модулна операция (както Дирк предлага) ще свърши добре работата. - person Michael Petrotta   schedule 20.02.2012