Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
Solved

# Find the sum of 12 DIFFERENT random numbers

Posted on 2007-11-18
Medium Priority
245 Views
Experts,

I need to assign a parameter 'b' as the sum of 12 different randomly generated numbers between 0 and 1. How do i do that - should i use a loop?
I need the code to do this automatically and assign the result to a variable 'b' as a value for use in other calcs.

Thanks everyone

Simon
0
Question by:simondopickup
[X]
###### Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

• Help others & share knowledge
• Earn cash & points
• 3
• 2
• 2
• +3

LVL 55

Expert Comment

ID: 20309115
Is this a homework?
some initial code to start helping you with?

0

LVL 25

Expert Comment

ID: 20309138
I see you included this in Excel, are you after an Excel formula?
0

LVL 7

Expert Comment

ID: 20309175
If you're in excel, place the formula =rand() into cells A1 through A12.  Then place the formula =sum(a1:a12) into cell a13.  This will work, but you will get a different answer everytime the spreadsheet recalculates.
0

LVL 25

Accepted Solution

imitchie earned 2000 total points
ID: 20309192
if you're after Excel VBA, then here's something to get you started
it contains a template for a loop (to 5) and in each iteration, calls Rnd() once
the cells(2,i) shows you how it generates a different random value each time
instead of b = Rnd(), you can use b = b + Rnd() to add to b each time
``````Dim b As Double
b = 0
For i = 1 To 5
b = Rnd()
Cells(2, i) = b
Next
``````
0

Author Comment

ID: 20309307
i need to code this in vb. I dont want to write in cells  - i would rather populate an array and sum the elements..

currently by code is this which is so wrong!

b=rnd+rnd+rnd+rnd+rnd+rnd+rnd+rnd+rnd+rnd+rnd+rnd
0

LVL 86

Expert Comment

ID: 20309467
Just like imitchie said...
``````Option Explicit

Randomize
End Sub

Private Sub Command1_Click()
Dim b As Double
Dim value As Double
Dim i As Integer

For i = 1 To 12
value = Rnd
Debug.Print i, value
b = b + value
Next i
Debug.Print "b = " & b
End Sub
``````
0

LVL 76

Expert Comment

ID: 20309494
Try it like this:

Sub Totalrnd()
Dim r(11) As Double
Dim i As Integer
Dim j As Integer
Dim d As Double
Dim bFound As Boolean
Dim b As Double
Dim strMessage As String
i = -1
Randomize
Do While i < 11
d = Rnd()
bFound = False
For j = 0 To i
If d = r(i) Then
bFound = True
Exit For
End If
Next j
If Not bFound Then
i = i + 1
r(i) = d
strMessage = strMessage & IIf(i > 0, " + ", "") & d
b = b + d
End If
Loop
strMessage = b & " = " & strMessage
MsgBox strMessage
End Sub

0

LVL 76

Expert Comment

ID: 20309516
I did check that each contributory element is different as you asked, but I bet, you couldn't produce two identical random numbers in such a sequence in a thousand years.
0

LVL 25

Expert Comment

ID: 20309578
i thought i'd leave something for your imagination but...
``````' old: b=rnd+rnd+rnd+rnd+rnd+rnd+rnd+rnd+rnd+rnd+rnd+rnd
' new: below, equivalent. drop the 4 lines where the 1 line above was
b = 0;
for i = 1 to 12
b = b + rnd()
next i
``````
0

Author Closing Comment

ID: 31409832
Thanks!
0

## Featured Post

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

If you need to start windows update installation remotely or as a scheduled task you will find this very helpful.
Freeze panes is an option within all variants of Excel to enable parts of a sheet to remain stationary when the cursor is in another part of the sheet. This is a very useful feature which is overlooked or under used.
Graphs within dashboards are meant to be dynamic, representing data from a period of time that will change each time the dashboard is updated with new data. Rather than update each graph to point to a different set within a static set of data, tâ€¦
This Micro Tutorial demonstrates how to create Excel charts: column, area, line, bar, and scatter charts. Formatting tips are provided as well.
###### Suggested Courses
Course of the Month12 days, 2 hours left to enroll