Python :: Aufgabe #105

6 Lösungen Lösungen öffentlich

Nachbar-Dupletten (Arrays)

Anfänger - Python von AlHedi - 30.04.2016 um 12:34 Uhr
Es sollen die Anzahl von den Nachbar-Dupletten eines Zahlen-Arrays ermittelt werden.
Die Nachbar-Dupletten sind gleiche benachbarte Zahlen in einem Array.
Es soll außerdem auf folgendes geachtet werden:
Die Nachbardupletten sind genau nur für zwei benachbarte Mitglieder definiert - sollte ein drittes Mitglied dabei benachbart sein, wird es nicht mitgezählt, weil es noch einen gleichen Nachbar braucht.

bspw.: Array = [3,3,7] : Ausgabe = 1
Array = [3,3,3] : Ausgabe = 1 ( Die Mitglieder von Index 0 und 1 sind benachbart, der Index 2 braucht auch ein Nachbar aber hat keinen
Array = [3,3,3,3] : Ausgabe = 2
Array = [0, 3, 3, 3, 2, 7, 7, 7, 7, 3, 2, 1, 1, -2, 4, 4, 8, 9, 8, 6 ] : Ausgabe = 5

Entnommen aus dieser Aufgabenstellung: fotos-hochladen.net

Lösungen:

vote_ok
von Nachbar (2820 Punkte) - 24.06.2016 um 22:42 Uhr
Quellcode ausblenden Python-Code
# python2
# -*- coding: utf-8 -*-

a = []
b = input("Bitte für das Array beliebig viele, durch Komma getrennte Zahlen eingeben:\n\n")

a.extend(b)

# Zähler für Dubletten
counter = 0
# Zähler für die Array-Elemente
arr_item = 0

# -1 damit das Array nicht verlassen wird
while arr_item < (len(a) -1):
   if a[arr_item] == a[arr_item + 1]:
      # Dublette zählen
      counter = counter + 1
      # Zweites Dubletten-Element überspringen
      arr_item = arr_item + 1
   # Ein Element weiterrücken
   arr_item = arr_item + 1

print "\nAnzahl enthaltener Dubletten:", counter
vote_ok
von AnnaIhrs (460 Punkte) - 05.07.2016 um 00:57 Uhr
Quellcode ausblenden Python-Code
#!/usr/bin/python3
# -*- encoding: utf-8 -*-
#
#>>>autor:      Sebastian Müller
#>>>licence:    GPL
#>>>contact:    mypythonmueller@gmail.com
#

#Programm nach folgender Aufgabenstellung:

#Es sollen die Anzahl von den Nachbar-Dupletten eines Zahlen-Arrays ermittelt werden.
#Die Nachbar-Dupletten sind gleiche benachbarte Zahlen in einem Array.
#Es soll außerdem auf folgendes geachtet werden:
#Die Nachbardupletten sind genau nur für zwei benachbarte Mitglieder definiert -
#sollte ein drittes Mitglied dabei benachbart sein, wird es nicht mitgezählt,
#weil es noch einen gleichen Nachbar braucht.

#bspw.: Array = [3,3,7] : Ausgabe = 1
#Array = [3,3,3] : Ausgabe = 1 ( Die Mitglieder von Index 0 und 1 sind benachbart,
#der Index 2 braucht auch ein Nachbar aber hat keinen
#Array = [3,3,3,3] : Ausgabe = 2
#Array = [0, 3, 3, 3, 2, 7, 7, 7, 7, 3, 2, 1, 1, -2, 4, 4, 8, 9, 8, 6 ] : Ausgabe = 5


def nachbardupletten(array):
    runzahler = 0
    dupzahler = 0
    for i in array:
        runzahler += 1
        if runzahler == 1:
            akt = i
            continue
        if i == akt:
            dupzahler += 1
            runzahler = 0
        else:
            akt = i
    return dupzahler

arr1 = [3,3,3,3] #2
arr2 = [0, 3, 3, 3, 2, 7, 7, 7, 7, 3, 2, 1, 1, -2, 4, 4, 8, 9, 8, 6] #5
arr3 = [1, 1, 3, 4, 5, 5, 5, 6, 3, 4, 4, 8, 8, 8, 8, 8, 9, 4,5, 5, 5, 7] #6
arr4 = [1, 1, 1, 3, 1, 1, 1, 3, 1, 1, 1, 3, 1, 1, 1, 3, 1, 1, 1, 3, 1, 1, 1,] #6
arr5 = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,] #11

print(nachbardupletten(arr1))
print(nachbardupletten(arr2))
print(nachbardupletten(arr3))
print(nachbardupletten(arr4))
print(nachbardupletten(arr5))
vote_ok
von Cryptt (390 Punkte) - 15.08.2016 um 20:19 Uhr
Quellcode ausblenden Python-Code
print('*** Bitte geben sie Zahlen ein. Zum beenden "e" eingeben. ***\n')

index = 0
array = []
paar = 0
doppelt = False

while True:
    eingabe = input('Bitte geben sie die '+str(index+1)+'te Zahl ein: ')
    if eingabe == 'e':
        print('\nDanke fuer ihr Interesse!\n')
        break
    
    index += 1
    
    eingabe = int(eingabe)
    array.append(eingabe)

print(array)

for i in range(len(array)):
    
    if i == (len(array)-1):
        break
    
    if doppelt:
        doppelt = False  
    
    elif array[i] == array[i+1]:
        paar += 1
        doppelt = True

print('Es sind', paar,'Zahlenpaar(e) vorhanden.')

vote_ok
von Peter... (160 Punkte) - 19.08.2016 um 12:29 Uhr
Hier meine Lösung. Es wurde Python 3 genutzt.


Quellcode ausblenden Python-Code
Liste =eval(input('Bitte geben Sie das zu bearbeitende Array in der Form\n[n,n,n,n] ein!:\n'))

index = 0
Ausgabe = 0
while index < (len(Liste)-1):
	if Liste[index] == Liste[index+1]:
		Ausgabe += 1
		index += 2
	else: index += 1
print(Ausgabe)

vote_ok
von hak (980 Punkte) - 10.09.2016 um 22:06 Uhr
Quellcode ausblenden Python-Code
def dupl_count(x, cnt=0) :
    if len(x) < 2:
        return cnt
    elif x[0] == x[1]:
        return dupl_count(x[2:], cnt+1)
    else:
        return dupl_count(x[1:], cnt)
vote_ok
von ZRX88 (2770 Punkte) - 29.11.2016 um 00:19 Uhr
Quellcode ausblenden Python-Code
""" neighbours of numbers in an array """
import random

# gernerate random array
array_length = random.randint(1,200)
data= [random.randint(1,10) for i in range(array_length)]

# get neighbours
index,counter  = 1,0
while index < array_length-1:
    if data[index] == data[index +1]:
        counter += 1
        index +=1
    index +=1

print('the array [%s] has %d neighbours' % (','.join([str(elem) for elem in data]),counter))