Кто знаком с c++?Зачем в знаменателе прибавляется 1.0? По идее всё и без нее должно находиться в нужном диапазоне.(rand() / max_rand принадлежит [0;1], так? )
тогда знаменатель всегда больше. значит дробь никогда не будет равна 1?