Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Почему у Rnd цикл именно 2^24? / 6 сообщений из 6, страница 1 из 1
05.09.2020, 16:46
    #39995906
Иван FXS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему у Rnd цикл именно 2^24?
Простейший тест

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Dim i As Long, x As Single
Let i = 1
Let x = Rnd(-Time)

Do
    Let i = i + 1
    If Rnd = x Then
        Debug.Print i, x, Log(CDbl(i-1)) / Log(2)
        Stop
    End If
Loop

-- всегда останавливается при i = 16777217, что есть 2^24+1...

Почему именно 2^24?
...
Рейтинг: 0 / 0
05.09.2020, 18:10
    #39995919
VSVLAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему у Rnd цикл именно 2^24?
Иван FXS,

такова реализация. Можно посмотреть реализацию в библиотеке Microsoft.VisualBasic.dll из .NET, она должна соответствовать функции Rnd из VB6.
...
Рейтинг: 0 / 0
06.09.2020, 19:04
    #39996019
Иван FXS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему у Rnd цикл именно 2^24?
А, прочитал в справочнике, что мантисса числа типа Single как раз содержит 24 бита...

То есть правильно ли я понял, что Rnd перебирает именно все мантиссы чисел типа Single?
...
Рейтинг: 0 / 0
06.09.2020, 21:01
    #39996029
ATM-TURBO 2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему у Rnd цикл именно 2^24?
...
Рейтинг: 0 / 0
07.09.2020, 09:15
    #39996076
VSVLAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему у Rnd цикл именно 2^24?
...
Рейтинг: 0 / 0
10.09.2020, 14:53
    #39997308
Eolt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему у Rnd цикл именно 2^24?
Ответил тут
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Почему у Rnd цикл именно 2^24? / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]