Случайное целое число в VB.NET

Для выбора только определенных столбцов из нескольких столбцов для заданного значения в pandas:

select col_name1, col_name2 from table where column_name = some_value.

Опции:

df.loc[df['column_name'] == some_value][[col_name1, col_name2]]

или

df.query['column_name' == 'some_value'][[col_name1, col_name2]]
57
задан Peter Mortensen 16 May 2015 в 22:05
поделиться

4 ответа

Для получения случайного целочисленного значения между 1 и N (включительно), можно использовать следующее.

CInt(Math.Ceiling(Rnd() * n)) + 1
56
ответ дан brendan 24 November 2019 в 19:17
поделиться

Используйте Система. Случайный :

Dim MyMin As Integer = 1, MyMax As Integer = 5, My1stRandomNumber As Integer, My2ndRandomNumber As Integer

' Create a random number generator
Dim Generator As System.Random = New System.Random()

' Get a random number >= MyMin and <= MyMax
My1stRandomNumber = Generator.Next(MyMin, MyMax + 1) ' Note: Next function returns numbers _less than_ max, so pass in max + 1 to include max as a possible value

' Get another random number (don't create a new generator, use the same one)
My2ndRandomNumber = Generator.Next(MyMin, MyMax + 1)
33
ответ дан Joseph Sturtevant 24 November 2019 в 19:17
поделиться
Public Function RandomNumber(ByVal n As Integer) As Integer
    'initialize random number generator
    Dim r As New Random(System.DateTime.Now.Millisecond)
    Return r.Next(1, n)
End Function
4
ответ дан Bill the Lizard 24 November 2019 в 19:17
поделиться

Как уже неоднократно указывалось, предложение написать подобный код проблематично:

Public Function GetRandom(ByVal Min As Integer, ByVal Max As Integer) As Integer
    Dim Generator As System.Random = New System.Random()
    Return Generator.Next(Min, Max)
End Function

Причина в том, что конструктор для Класс Random предоставляет начальное значение по умолчанию на основе системных часов. В большинстве систем это имеет ограниченную степень детализации - где-то около 20 мс. Итак, если вы напишете следующий код, вы получите одно и то же число несколько раз подряд:

Dim randoms(1000) As Integer
For i As Integer = 0 to randoms.Length - 1
    randoms(i) = GetRandom(1, 100)
Next

Следующий код решает эту проблему:

Public Function GetRandom(ByVal Min As Integer, ByVal Max As Integer) As Integer
    ' by making Generator static, we preserve the same instance '
    ' (i.e., do not create new instances with the same seed over and over) '
    ' between calls '
    Static Generator As System.Random = New System.Random()
    Return Generator.Next(Min, Max)
End Function

Я собрал простую программу, используя оба метода, чтобы сгенерировать 25 случайные целые числа от 1 до 100. Вот результат:

Non-static: 70 Static: 70
Non-static: 70 Static: 46
Non-static: 70 Static: 58
Non-static: 70 Static: 19
Non-static: 70 Static: 79
Non-static: 70 Static: 24
Non-static: 70 Static: 14
Non-static: 70 Static: 46
Non-static: 70 Static: 82
Non-static: 70 Static: 31
Non-static: 70 Static: 25
Non-static: 70 Static: 8
Non-static: 70 Static: 76
Non-static: 70 Static: 74
Non-static: 70 Static: 84
Non-static: 70 Static: 39
Non-static: 70 Static: 30
Non-static: 70 Static: 55
Non-static: 70 Static: 49
Non-static: 70 Static: 21
Non-static: 70 Static: 99
Non-static: 70 Static: 15
Non-static: 70 Static: 83
Non-static: 70 Static: 26
Non-static: 70 Static: 16
Non-static: 70 Static: 75
69
ответ дан 24 November 2019 в 19:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: