|
Knowing math, and knowing how a make a computer perform math are two completely different things. Your statement is wilding inappropriate.
".45 ACP - because shooting twice is just silly" - JSOP, 2010 ----- You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010 ----- "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass." - Dale Earnhardt, 1997
|
|
|
|
|
mmwlada wrote: You should be ashamed of yourself.
He has nothing to be ashamed of. You do.
I know the language. I've read a book. - _Madmatt
"The OP herself was not sure about her question"
"The OP is from India and I know what she meant."
|
|
|
|
|
Actually, every number is divisible by 5.
|
|
|
|
|
FunkySteve wrote: Actually, every number is divisible by 5
True.
Again, my fault for not explaining properly.
I meant a modulus of zero, so that 13285 MOD 5 = 0
Got it all sorted now, thanx to most people, disregarding one perticular ignorant comment
Thank you,
Steve
|
|
|
|
|
You can't just add 5. Say your result is 135978653, adding 5, the last digit is 8, not divisable by 5
|
|
|
|
|
I did say multiply by 10 then add 5.
I also said you could add 5 or 10 - but adding 10 is silly. The multiplication automatically makes it divisible by 5.
Regards
David R
---------------------------------------------------------------
"Every program eventually becomes rococo, and then rubble." - Alan Perlis
The only valid measurement of code quality: WTFs/minute.
|
|
|
|
|
Yes, I did read that, I was tweaking. Seriously, multiplying exposes an overflow possiblity. And why 10?
num = (num/5)*5; does the trick
num -= num%5; also assures overflow won't occur even if you are within 5 of overflow in either positive or negative direction.
|
|
|
|
|
Did you read the bit that says generate a four digit number? That won't generate an overflow.
The OP wanted 5 digit numbers.
Regards
David R
---------------------------------------------------------------
"Every program eventually becomes rococo, and then rubble." - Alan Perlis
The only valid measurement of code quality: WTFs/minute.
|
|
|
|
|
riced wrote: Did you read the bit that says generate a four digit number? That won't generate an overflow.
The OP wanted 5 digit numbers.
1. No, I ignored the 5 digit requirement on first reading. My bad.
2. No, I didn't see "generate a four digit number" in the original post and on re-reading still don't see it. Must be written in invisible ink.
3. You are right, no overflow. (Really dumb to use int16 on a 5 digit number because of good chance for overflow.)
I'm going to assume he intended to generate a 5 digit number because he's asking how to modify the last digit. It would be really dumb to ask how to modify the last digit to be divisable by 5 if you start out with 4 digits and want 5. A lot of random number generators produce a number between 0 and 1. You can't get a negative number from that and real numbers have at best 6 digits of accuracy so keeping it down to 5 places makes sense.
If you multiply the real number by 100K it is possible to get a number below 10K.
So, set your int field to 0, while it is 0 set it to the random number times 100K. (Hopefully not an infinite loop ) While it is less than 10K multiply by 5. Then subtract the remainder of 5.
|
|
|
|
|
Here's my original post: (the add 10 is redundant - me being silly)
Generate a four digit random number,
multiply it by 10,
add 5 (or 10).
The result will be divisible by 5.
The adding 5 could be done at random.
The Random class in C# allows you to get next integer in a range e.g. x = Random.Next(0, 10000) gets you a number on range 0 to 9999 (the second parameter is the exclusive upper limit). So no need to mess about multiplying by 100k. He could use Random.Next(1000, 10000) if he actually requires, or just use String formatting if it's just to be displayed.
Regards
David R
---------------------------------------------------------------
"Every program eventually becomes rococo, and then rubble." - Alan Perlis
The only valid measurement of code quality: WTFs/minute.
|
|
|
|
|
All integers evenly divisible by 5 must end in either 5 or 0 when expressed in base 10. This is basic math.
Software Zen: delete this;
|
|
|
|
|
Is this discussion really taking place? What is this, 3rd grade?
ken@kasajian.com / www.kasajian.com
|
|
|
|
|
Kenneth Kasajian wrote: Is this discussion really taking place? What is this, 3rd grade?
What is everones problem?
I asked how to solve a basic math based problem PROGMATICALLY as I am a beginner when it comes to c#, and I am wishing I never bothered asking!
Although, there are a number of people who have offered working solutions.
Why must people post such a responce as yours? Did your post really help in anyway?
Regards,
Stephen
|
|
|
|
|
Let me be clear. I don't have any problem with people asking very basic programming questions. In fact, I encourage it. I don't expect people to know everything about programming.
I was commenting on this discussions of what numbers are divisible by 5, as in:
"However, I was under the impression I could generate numbers that would be divisible by 5, but not end in 5?
Is this wrong?"
You're kidding me right? You don't know that the numbers 10 and 20 are divisible by 5? Clearly they don't end in 5.
My comment was no to the programming question.
ken@kasajian.com / www.kasajian.com
|
|
|
|
|
Kenneth Kasajian wrote: You're kidding me right?
Are you?
This thread was cleared up a while ago, and I am not going to explain myself yet again
Regards!
|
|
|
|
|
Interesting. So you're responding to say that you're not going to respond. Just don't bother dude. LOL
ken@kasajian.com / www.kasajian.com
|
|
|
|
|
Seriously??? Were you sleeping during elementary math classes? I'm sorry but if I were your boss and you asked me that question I would transfer you out of my department over to HR or maybe Daycare.
|
|
|
|
|
RDSchaefer wrote: Seriously??? Were you sleeping during elementary math classes? I'm sorry but if I were your boss and you asked me that question I would transfer you out of my department over to HR or maybe Daycare.
This is the last time I will even bother with a reply to the outright rude comments!
If you were to bother yourself to read all of the posts, you would realise that I already appologised that I had not explained myself properly, and my problem is not with math.
I am getting fed up with having to explain this, and to be honest, it is getting hard to hold my tounge with the likes of you!
Your not my boss, are you? So why not keep your ignorant comments to yourself.
|
|
|
|
|
I was not commenting on your coding skills and I did read all the posts, however I do apologize. I was just so astounded to think someone could actually not know that (Any number ending in 5 or 0 is divisible by 5), that I reacted in a knee-jerk fashion. I also didn't solve your problem because it had already been well answered.
BTW, you really need to develop thicker skin. There will always be some people who know so much more than you that they sometimes get irritated answering the same, in their opinion, dumb questions over and over again. It still happens to me occasionally.
|
|
|
|
|
That’s OK, I was already upset by someone else's comment, which is why I reacted the way I did.
RDSchaefer wrote: BTW, you really need to develop thicker skin.
Actually, I have a thick skin. Growing up with the surname "Darling" ensures that you develop one quickly
I am a little tired today, and when I received a comment from someone on here telling me that I was "NOT a scientist" when they don’t know me, and have never spoke to me, was what made me flip a little.
I can understand that it happens, and normally it would be water off a ducks back, however, on this occasion it caused me to respond.
Kind Regards,
Stephen
|
|
|
|
|
you shouldn't add 5 or 10 but 5 or 0.
In the case the random generator provides 9999 then you would get
9999 * 10 + 10 = 99990 + 10 = 100000
six digits
|
|
|
|
|
This solution is not correct - it exhibits a possible overflow error into 6 digits.
Consider: 4 Random digits all come out as 9 (multiply by 10 = 99990), then add 10 you get 100000 which does not meet the requirements...
The correct solution is:
Generate a four digit random number
Multiply it by 10 (to shift into correct position)
Then randomly choose to make the last digit a 5 or a 0 (adding 10 is the incorrect step)
The result is divisible by 5.
Regards
David.
|
|
|
|
|
See my correction - you don't need to add 10 at all (you can add 5 without fear).
That was a silly on my part.
Regards
David R
---------------------------------------------------------------
"Every program eventually becomes rococo, and then rubble." - Alan Perlis
The only valid measurement of code quality: WTFs/minute.
|
|
|
|
|
|
David1987 wrote: And make sure you reuse a single instance of Random ,
How exactly do I ensure that I am doing this?
I am using rand a number of times, and although I get different values, it does appear that they are very simular.
Regards,
Stephen
|
|
|
|