ขอแนวคิดการ random เช่น random 1-200 ใน 1 ก็มีอีก 10 ตัว ถ้าเต็มแล้วให้ random ตัวที่ยังไม่เต็มต่อครับ
คิดว่าปัญหาที่เจอ คือ สุ่มแล้วได้ค่าเดิม ใช่ไม๊ครับ
ถ้าใช่ ให้แก้โดย เพิ่ม
Sleep(200)// หรือเท่าไหร่ก็ได้
หลังจาก random แต่ละค่า
Date :
2017-02-28 16:56:49
By :
lamaka.tor
สุ่ม 1-200 ถ้าใน 1 มีค่า 10 ให้สุ่ม 2-200 ถ้า 2 มีค่า 10 ให้สุ่ม 3-200 ไปเรื่อย ๆ แต่ถ้า 1 ลดเหลือ 3 ให้มาเริ่ม 1 ใหม่ ให้เต็ม 10 หมายความว่าต้องเพิ่มไปอีก 7 พอครบแล้วให้ไปที่ 4 เพราะ 3 เต็ม 10 ไปแล้ว ท่านผู้อ่านเข้าใจที่ผมพูดใช่ไหมครับ ผมคิดไม่ออกว่าจะเริ่มต้น code ยังไงใช้คำสั่งประมาณไหน รบกวนด้วยครับ
Date :
2017-03-03 09:35:35
By :
sakkapong
ลองแบบนี้ดีไม๊ครับ
ผมรู้ว่าจะสุ่มค่า 1-200 (จำนวนเต็ม)
ผมงงว่า
1. สุ่ม กี่จำนวน
2. ถ้าสุ่มได้ ตัวเลขเดิม 3 ครั้ง ให้ถือว่าตัวเลขนั้นเต็ม
อย่างเช่น สุ่มได้ 10,10,2,3,4 แบบนี้ต่อไปได้
แต่ถ้า 10,10,2,3,4,10 แบบนี้ 10 เต็มแล้วจะสุ่มเจออีกไม่ได้
ที่ผมเข้าใจมีถูกมั่งไม๊ครับ
จะได้ไปต่อถูก
Date :
2017-03-03 09:49:44
By :
lamaka.tor
สุ่มมาให้ดูได้ไหมครับ
ผมฉลาดน้อย อ่านแล้ว งง มาก ๆ เลย
Date :
2017-03-03 11:07:44
By :
fonfire
สุ่มเลขอะไรก็ได้จำนวนตั้งแต่ 1-200
แต่ไม่บอกว่าเอากี่เลข
แต่ล่ะเลขห้ามซ้ำกันเกิน 10 ครั้ง แบบนี้ใช่ไหมครับ
Date :
2017-03-03 11:10:06
By :
fonfire
ผมว่าซื้อหวยยังมีโอกาศถูกมั่งนะเนี๊ยะ 5555
Date :
2017-03-03 11:27:37
By :
lamaka.tor
Code (VB.NET)
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim numbers = Enumerable.Range(1, 5).ToList()
Dim RandomClass As New Random()
Dim RandomIndex As Integer
For counter As Integer = 1 To 10
RandomIndex = RandomClass.Next(0, numbers.Count)
MsgBox(numbers(RandomIndex))
numbers.RemoveAt(RandomIndex)
Next
End Sub
เบื้องต้นตามนี้นะครับ แต่ยังไม่รู้ว่าจะเอาค่าที่แสดงจาก msgbox ไปอยู่ใน textbox ยังไง
อันนี้สุ่มไม่ให้ซ้ำกันรอบเดียวครับ(ผมไม่ได้ทำเองครับ ผมไปดูจากเว็บต่างประเทศมา)
Date :
2017-03-03 11:37:05
By :
sakkapong
Dim numbers = Enumerable.Range(1, 5).ToList()
สุ่มเลข 1 ถึง 5 ไม่ให้ซ้ำกัน พอครบแล้วครั้งต่อไป จะไม่สามารถทำได้แล้วครับ
step แรกอยากขอความช่วยเหลือเปลี่ยนจาก msgbox ให้ไปอยู่ใน textbox ครับ
Date :
2017-03-03 11:40:54
By :
sakkapong
วิธีสุ่มไม่ให้ซ้ำ ผมพอรู้น่ะครับว่าต้องทำยังไง
แต่ผมอยากรู้ว่า สุ่มแล้วตัวเลขจะเป็นแบบไหน
สุ่มมากี่ตัว กติกาผมเข้าใจถูกหรือปล่าว
แบบว่า งง มากเลย 555
Date :
2017-03-03 12:07:46
By :
fonfire
คือแบบนี้นะครับ เลข 1-200 คือช่องในการเก็บสินค้า มีทั้งหมด 200 ช่อง แต่ละช่องเก็บสินค้าได้ 10 ชิ้น ถ้าช่องไหนยังเก็บไม่ถึง 10 ชิ้น ให้สามารถเก็บเพิ่มได้ ช่องไหนเต็มแล้วให้ข้ามไปไม่ต้องทำอะไรเพราะมันไม่มีที่จะใส่แล้วครับเพราะรับได้สูงสุด 10 ชิ้นต่อ 1 ช่อง
ทีนี้ผมจะเอามาเขียนโปรแกรมโดยที่ผมไม่ต้องไปเดินดูว่าช่องไหนว่าไม่ว่าง ช่องไหนขาดอีกเท่าไหร่จะเต็ม ผมก็เลยจะให้โปรแกรมหาช่องที่ว่าให้อัตโนมัติครับ ท่านทั้งหลายพอนึกภาพออกหรือเปล่าครับ
Date :
2017-03-03 13:01:29
By :
sakkapong
ขอแก้ก่อนหน้านี้นะครับ(มีคำภาษาไทยที่ผมพิมพ์ผิด พิมพ์ไม่ถูกอยู่)
คือแบบนี้นะครับ เลข 1-200 คือช่องในการเก็บสินค้า มีทั้งหมด 200 ช่อง แต่ละช่องเก็บสินค้าได้ 10 ชิ้น ถ้าช่องไหนยังเก็บไม่ถึง 10 ชิ้น ให้สามารถเก็บเพิ่มได้ (คือให้โปรแกรมสุ่มช่องที่สามารถยังเพิ่มได้)ช่องไหนที่เต็มแล้วให้ข้ามไปไม่ต้องทำอะไรเพราะมันไม่มีที่จะใส่แล้วครับเพราะรับได้สูงสุด 10 ชิ้นต่อ 1 ช่อง
ทีนี้ผมจะเอามาเขียนโปรแกรมโดยที่ผมไม่ต้องไปเดินดูว่าช่องไหนว่างเท่าไหร่เต็มหรือยัง มันเยอะครับผมไม่อยากเดินไปนับและมันช้าด้วย ผมก็เลยจะให้โปรแกรมหาช่องที่ว่างให้อัตโนมัติครับ ท่านทั้งหลายพอนึกภาพออกหรือเปล่าครับ
Date :
2017-03-03 13:05:40
By :
sakkapong
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim numbers = Enumerable.Range(1, 200).ToList() ----------มีทั้งหมด 200 ช่อง นับไปจนครบ 200
Dim RandomClass As New Random()
Dim RandomIndex As Integer
For counter As Integer = 1 To 200 -----------นับไป 200 ครั้งตามจำนวนช่องที่มี แต่จะไม่นับซ้ำกัน
RandomIndex = RandomClass.Next(0, numbers.Count)
MsgBox(numbers(RandomIndex)) ------------อยากเปลี่ยนตรงนี้เป็น textbox ต้องใช้ code แบบไหนครับ
numbers.RemoveAt(RandomIndex) ------------อันนี้ผมเข้าใจว่าถ้านับไปแล้วจนครบถ้าวนกลับมาซ้ำอีกมันจะแสดง error
Next
End Sub
Date :
2017-03-03 13:11:16
By :
sakkapong
สำหรับผมเข้าใจว่า
มี กล่องใส่ของ อยู่ 200 กล่อง แต่ละกล่องใส่ได้ 10 ชิ้น
หากเรามองว่าทุกกล่องมีของอยู่(เต็ม รึ ไม่เต็มก็แล้วแต่)
สมมุติว่า เราได้ของใหม่มา เราก็จะมาดูว่ากล่องไหนยังขาด(แบบนี้ป่าว)
อย่าง
1. กล่องที่ 1-5 เต็มแล้ว กล่องที่ 6 ยังเหลือ อีก 2(ในกล่องมี 8) ก็ใส่ไป 2
หรือมันจะเป็นแบบนี้
2. กล่องที่ 1-5 เต็มแล้ว กล่องที่ 6 ยังเหลือ อีก 2(ในกล่องมี 8) เราอาจจะยังไม่ใส่ก็ได้ ไปใส่กล่องที่ 10 ที่ยังขาดอยู่(อันไหนใกล้มือหน่อยก็ใส่)
ผมเข้าใจแบบนี้ถูกรึป่าวครับ
หากเป็นเหมือนที่ผมว่ามา ก็อาจจะต้อง สร้าง array,list,dictionary มาเก็บข้อมูลแต่ละกล่อง
ผมมองไปถึง โปรแกรม จองห้องพัก(ว่าง/ไม่ว่าง)
บ้านๆที่ผมคิดก็คือ สร้าง textbox หรือ label หรือ อะไรก็ได้ มาแสดง สถานะแต่ละกล่อง
เอาออก - เพิ่้มเข้า + แค่เราดูที่หน้าคอมก็จะรู้สถานะได้
อาจจะเพิ่ม สี เข้าไปถ้าเต็ม สีแดง ไม่เต็ม สีเหลือง ด้วย ช่วยไหนการมองเห็นได้ง่าย
ที่พูดมานี้ไม่รู้จะถูกรึป่าวนะครับ ผมคิดตามที่ผมเข้าใจ
Date :
2017-03-03 13:25:15
By :
lamaka.tor
ใช่แบบนี้เปล่า
มีกล่องใส่ของ อยู่ 200 กล่อง แต่ละกล่องใส่ได้ 10 ชิ้น
และเมื่อเราใส่จำนวนที่จะเก็บเข้าไป
ก็สุ่มใส่ในกล่องที่ยังมีพื้นที่พอจะเก็บของตามจำนวนที่ใส่เข้าไป
น่าจะเป็น Warehouse ใช่มะ
ประวัติการแก้ไข 2017-03-03 13:35:46
Date :
2017-03-03 13:33:12
By :
chanainut
โอ๊วววววววววววววว นึกว่าจะมาผิดทาง 5555
สำหรับผม แนะนำให้ใช้ ตัวเลข ของ ในกล่องบอกสถาณะได้เลยครับ
แบบนี้เห็นชัดด้วยว่ามีแค่ไหน เต็มไม่เต็ม
Date :
2017-03-03 14:07:28
By :
lamaka.tor
พอจะมีโค้ดคร่าวๆ ไหมครับ ผมยังไม่เคยใช้ array อ่านไปก็งงไป
Date :
2017-03-03 14:09:31
By :
sakkapong
ประมาณนี้ไหมครับ
Date :
2017-03-03 14:46:15
By :
parinya-t
ถ้าเป็นเอาของไปเติม
มันไม่น่าจะ Random มั้งครับ
เพราะไม่อยากเดินไปดู ก็น่าจะไม่อยากเดินไปหลาย ๆ จุดเหมือนกัน
มันน่าจะเป็นการทำโปรแกรม Stock ตาม Location
ดูว่าของที่จุด ๆ นั้นมีเท่าไหร่ ใส่ได้อีกเท่าไหร่
ว่าแต่ว่า รู้ได้ยังไงครับว่า ที่ตรงนั้นมีของอยู่แล้วเท่าไหร่
เอาของเข้า เอาของออก มีเก็บประวัติไหมครับ
มีระบบจัดการยอดคงเหลือปัจจุบันไหมครับ
ไม่รู้ผมเข้าใจถูกหรือปล่าว
ยิงฉลาดน้อย ๆ อยู่
ตอนนี้ผมก็ยัง งง ๆ อยู่ 5555555
Date :
2017-03-03 16:58:46
By :
fonfire
อันนี้มันจะไม่สุ่มนะครับ แต่จะลงเรียงกันไปเรื่อยๆ
ลองดูครับเผื่อช่วยอะไรได้บ้างไม่มากก็น้อย
มือใหม่เหมือนกันครับ เขียนแบบซื่อๆเลย 55
อันนี้ใส่ไป 50 หน่วย
Code (VB.NET)
Public Class Form1
Public a, b As Integer
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
testloop()
End Sub
Sub testloop()
For i As Integer = 1 To 10
Dim SUMEMPTY = 100 - (CDbl(TextBox1.Text) + CDbl(TextBox2.Text) + CDbl(TextBox3.Text) + CDbl(TextBox4.Text) + CDbl(TextBox5.Text) + CDbl(TextBox6.Text) + CDbl(TextBox7.Text) + CDbl(TextBox8.Text) + CDbl(TextBox9.Text) + CDbl(TextBox10.Text))
If SUMEMPTY >= CDbl(TextBox11.Text) Then
Dim txt = "TextBox" + Convert.ToString(i)
If CType(Me.Controls(txt), TextBox).Text <> "10" Then
b = CDbl(CType(Me.Controls(txt), TextBox).Text) + CDbl(TextBox11.Text)
a = b - 10
If b > 10 Then
CType(Me.Controls(txt), TextBox).Text = "10"
TextBox11.Text = a
Else
CType(Me.Controls(txt), TextBox).Text = b
Exit For
End If
End If
Else
MsgBox("ช่องไม่พอว่ะ !! โทษที")
Exit For
End If
Next
TextBox11.Text = ""
End Sub
End Class
ประวัติการแก้ไข 2017-03-03 17:03:46 2017-03-03 17:12:12
Date :
2017-03-03 17:02:27
By :
chanainut
ผมว่าน่าจะเริ่มมีไอเดียแล้วนะคับ
หลังจากเล่นเอางงมา 2 วัน
Date :
2017-03-03 21:03:25
By :
lamaka.tor
น่าจะพอมีไอเดียแล้วนะคับ
หลังจากนั่งงงมา2วัน
Date :
2017-03-03 21:05:51
By :
lamaka.tor
Load balance : Server 03