Pseudo-random numbers/Middle-square method: Difference between revisions
Pseudo-random numbers/Middle-square method (view source)
Revision as of 18:42, 29 March 2023
, 1 year agoGrouping BASIC dialects
Not a robot (talk | contribs) (Add Miranda) |
(Grouping BASIC dialects) |
||
Line 392:
5: 432883
</pre>
=={{header|BASIC}}==
==={{header|FreeBASIC}}===
<syntaxhighlight lang="freebasic">Dim Shared seed As Integer = 675248
Dim i As Integer
Declare Function Rand As Integer
For i = 1 To 5
Print Rand
Next i
Sleep
Function Rand As Integer
Dim s As String
s = Str(seed ^ 2)
Do While Len(s) <> 12
s = "0" + s
Loop
seed = Val(Mid(s, 4, 6))
Rand = seed
End Function
</syntaxhighlight>
==={{header|PureBasic}}===
<syntaxhighlight lang="purebasic">Procedure.i MSRandom()
Static.i seed=675248
seed = (seed*seed/1000)%1000000
ProcedureReturn seed
EndProcedure
If OpenConsole()
For i=1 To 5 : PrintN(Str(i)+": "+Str(MSRandom())) : Next
Input()
EndIf</syntaxhighlight>
{{out}}
<pre>1: 959861
2: 333139
3: 981593
4: 524817
5: 432883</pre>
==={{header|uBasic/4tH}}===
{{trans|C}}
<syntaxhighlight lang="text">If Info("wordsize") < 64 Then Print "This needs a 64-bit uBasic" : End
s = 675248
For i = 1 To 5
Print Set(s, FUNC(_random(s)))
Next
End
_random Param (1) : Return (a@*a@/1000%1000000)</syntaxhighlight>
{{out}}
<pre>959861
333139
981593
524817
432883
0 OK, 0:140
</pre>
==={{header|Visual Basic}}===
{{trans|FreeBASIC}}
{{works with|Visual Basic|5}}
{{works with|Visual Basic|6}}
<syntaxhighlight lang="vb">Option Explicit
Dim seed As Long
Sub Main()
Dim i As Integer
seed = 675248
For i = 1 To 5
Debug.Print Rand
Next i
End Sub
Function Rand() As Variant
Dim s As String
s = CStr(seed ^ 2)
Do While Len(s) <> 12
s = "0" + s
Loop
seed = Val(Mid(s, 4, 6))
Rand = seed
End Function</syntaxhighlight>
{{out}}
As expected.
=={{header|bc}}==
Line 609 ⟶ 695:
{{out}}
<pre>959861 333139 981593 524817 432883 ok</pre>
=={{header|Go}}==
Line 821 ⟶ 886:
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span>
<!--</syntaxhighlight>-->
=={{header|Python}}==
Line 945 ⟶ 992:
<pre>
[959861, 333139, 981593, 524817, 432883]
</pre>
Line 986 ⟶ 1,011:
=={{header|VBA}}==
:''See [[Pseudo-random numbers/Middle-square method#Visual Basic|Visual Basic]]''
=={{header|Wren}}==
|