Verktyg Visningsval
2012-05-04, 15:30   #1

acer94

Medlem

Registrerad: sep 2011

C# hjälp!


Hejsan, jag och en vän sitter å klurar på hur vi ska lösa ett problem och kommer inte på något.
Det vi gör är en grej som slumpar ett nummer från 1-20, det har med frågor att göra, så vi vill inte att samma fråga ska komma två gånger, så frågan är alltså;
Hur ska vi göra så att inte samma nummer kommer upp 2 gånger? Ursäkta om jag har förklarat lite otydligt, fråga om ni undrar något så får jag väll försöka förklara det
Hjälp skulle vara väldigt uppskattat!
acer94 är inte uppkopplad
2012-05-04, 15:45   #2

DarkBob

Medlem

DarkBobs avatar

Plats: I en mörk gränd

Registrerad: okt 2001

Spara alla tal ni slumpar fram i en lista och om nåt tal kommer upp som redan finns i listan, ja då vet ni att det redan varit upp en gång
__________________
"Say unto thine own heart, I am mine own redeemer"
Don't touch me when I'm crazy off that airplane glue
DarkBob är inte uppkopplad
2012-05-04, 15:49   #3

Beamy

Medlem

Beamys avatar

Plats: Uppsala

Registrerad: dec 2004

Eller borde det väl gå att slumpa tal utifrån en lista. När talet slumpats fram tas talet bort från listan.
Beamy är inte uppkopplad
2012-05-04, 16:13   #4

Softnux

Medlem

Softnuxs avatar

Plats: Halmstad

Registrerad: nov 2002

using System;
using System.Collections.Generic;
using System.Linq;

namespace SlumpadeFragor
{
	class Program
	{
		static void Main(string[] args)
		{

			string[] questions = { "Fråga 1",
								 "Fråga 2",
								 "Fråga 3",
								 "Fråga 4",
								 "Fråga 5",
								 "Fråga 6",
								 "Fråga 7",
								 "Fråga 8",
								 "Fråga 9",
								 "Fråga 10",
								 "Fråga 11",
								 "Fråga 12",
								 "Fråga 13",
								 "Fråga 14",
								 "Fråga 15",
								 "Fråga 16",
								 "Fråga 17",
								 "Fråga 18",
								 "Fråga 19",
								 "Fråga 20"
								 };

			var numbers = new List<int>();

			for(int i = 0; i < 20; i++)
				numbers.Add(i);

			var slumpade = numbers.OrderBy(a => Guid.NewGuid());

			foreach (var i in slumpade)
			{
				Console.WriteLine(questions[i]);
			}
		}
	}
}
__________________
eSport Sverige
Softnux är inte uppkopplad
2012-05-04, 17:06   #5

Teknocide

Medlem

Plats: i din garderob

Registrerad: sep 2007

Citat:
Ursprungligen inskrivet av acer94 Visa inlägg
Hejsan, jag och en vän sitter å klurar på hur vi ska lösa ett problem och kommer inte på något.
Det vi gör är en grej som slumpar ett nummer från 1-20, det har med frågor att göra, så vi vill inte att samma fråga ska komma två gånger, så frågan är alltså;
Hur ska vi göra så att inte samma nummer kommer upp 2 gånger? Ursäkta om jag har förklarat lite otydligt, fråga om ni undrar något så får jag väll försöka förklara det
Hjälp skulle vara väldigt uppskattat!
public IEnumerable<int> RandomizedRange(int start, int end) {
	var rnd = new Random();
	return Enumerable.Range(start, end).OrderBy(n => rnd.Next());
}
__________________
Bilanaloger är som Volvo — varenda svenne kör med dem
Teknocide är inte uppkopplad
2012-05-04, 20:13   #6

acer94

Medlem

Registrerad: sep 2011

Tack för hjälpen alla!
acer94 är inte uppkopplad
2012-05-07, 15:42   #7

mounte

Medlem

Plats: Sandviken

Registrerad: mar 2005

En alternativ lösning är att ni ser på era frågor som en kortlek med frågekort.
Problemet reduceras till att blanda kortleken och sedan dra de k första korten.
Se t.ex. http://en.wikipedia.org/wiki/Fisher%...3Yates_shuffle
__________________
Besök gärna: www.wedlund.eu
Tips på vps:
mounte är inte uppkopplad
Senaste nyheterna

Redaktionens senaste nyhetsrubriker

Sök jobb