ile üst döngüye geri dön 4-parametrik RAINFLOW yöntemini programlıyorum. Öyleyse fikir, normalde birkaç 1000, 10000 veya daha fazla noktadan (kuvvet zamanı) oluşan bir yük geçmişinden, 4 gereksinim ile tanımlanan standart yükleme döngüleri elde etmektir. Bu yükleme geçmişinde, yükselen ve düşen bir olan 2 standart döngü vardır. Her ikisi de resimde gösterilmiştir. Her zaman başlangıçta başlarsınız ve döngülerden birini bulmaya çalışırsınız, eğer ilk puanlardan başarılı olmazsanız, bir noktayı yukarı taşıyorsunuz (j = j + 1) ve tekrar başlıyorsunuz. Bir döngü bulduğunuzda, 2. ve 3. noktaları (y1 ve y2) siler ve en baştan başlarsınız.Python - Döngü
Algoriteyi, ilk olarak yük geçmişinin ikinci noktalarının ilk veya daha yüksek olandan daha yüksek olup olmadığını belirleyeceği bir şekilde yaptım, böylece hangi döngünün ilk önce görüneceğini (nereden başlayacağını) bilir. Oradan da, sadece resimlerde de listelenen gereksinimleri araştırıyor.
Benim sorun: Ben 2 döngü olmayan bulunursa durumunda, programın j +1 ekleyerek ediyorum ve tekrar üstten başlar nerede bir bakıma bu programlamak istiyorum ve yapacağını böylece bir döngü bulunana kadar. While döngüsünü kullandım ve doğru/yanlış ile yapmaya çalıştım ama işe yaramaz. Gerçekten hiçbir şey olmuyor .... eğer birisinin bir fikri varsa.
y rastgele noktaların vektörünün yalnızca kısa bir örneğidir. koşulları sağlamadığını çünkü
y = [0.00, 2.00, 4.00, 5.00, 5.50, 6.00, 5.00, 4.00, 3.20, 3.50, 4.00, 4.50, 4.70, 4.80, 5.00, 4.50, 4.30, 4.00, 3.00, 2.00, 1.00,
1.50, 2.50, 4.00, 4.50, 2.50, 1.50, 0.50, 0.30, 2.50, 3.00, 1.50, 2.00, 2.50, 5.00, 5.50, 6.00, 6.20, 5.50, 3.00]
a = []
for j in range(len(y)):
while j<(len(y)-4):
if y[j+1] > y[j]:
while False:
if y[j+2] >= y[j] and y[j+3] >= y[j+1]:
True
a.append(y[j+1])
del y[j+1]
a.append(y[j+1])
del y[j+1]
else:
j = j+1
if y[j] >= y[j+2] and y[j+1]>= y[j+3]:
stavek = True
a.append(y[j+1])
del y[j+1]
a.append(y[j+1])
del y[j+1]
else:
j=j+1
False
elif y[j+1] < y[j]:
while False:
if y[j+2] <= y[j] and y[j+3] <= y[j+1]:
a.append(y[j+1])
del y[j+1]
a.append(y[j+1])
del y[j+1]
else:
j = j+1
if y[j] <= y[j+2] and y[j+1]<= y[j+3]:
stavek = True
a.append(y[j+1])
del y[j+1]
a.append(y[j+1])
del y[j+1]
else:
j=j+1
False
Kod yazarsanız, dili etiketlemelisiniz. İnsanların sorunuzu bulmasına yardımcı olur ve ayrıca sözdizimi rengini etkiler. – crashmstr
Üzgünüm, Bu forum için yeni ve daha alışkın değilim :) – mcluka
[Tur] (http://stackoverflow.com/tour) ve [Nasıl Yapılır] (http) hakkında iyi bilgiler var : //stackoverflow.com/help/how-to-ask) – crashmstr