function topla(array) {sum=0; for (i in array) {sum=sum+250/array[i];}return sum;}
BEGIN {
total_packets_sent = 0;
total_packets_received = 0;
total_packets_dropped = 0;
first_packet_sent = 0;
last_packet_sent = 0;
last_packet_received = 0;}
{event = $1; time = $2; node = $3; type = $4; reason = $5; packetid = $6;
if (time < simulation_start || simulation_start == 0)
simulation_start = time;
if (time > simulation_end)
simulation_end = time;
if (type == "AGT") {
nodes[node] = node; # to count number of nodes
if (time < node_start_time[node] || node_start_time[node] == 0)
node_start_time[node] = time;
if (time > node_end_time[node])
node_end_time[node] = time;
if (event == "s") {
flows[node] = node; # to count number of flows
if (time < first_packet_sent || first_packet_sent == 0)
first_packet_sent = time;
if (time > last_packet_sent)
last_packet_sent = time;
# rate
packets_sent[node]++;
total_packets_sent++;
# delay
pkt_start_time[packetid] = time;
}
else if (event == "r") {
if (time > last_packet_received)
last_packet_received = time;
# throughput
packets_received[node]++;
total_packets_received++;
# delay
pkt_end_time[packetid] = time;
}
}}`
END {
# delay
for (pkt in pkt_end_time) {
end = pkt_end_time[pkt];
start = pkt_start_time[pkt];
delta = end - start;
if (delta > 0) {
delay[pkt] = delta;
}
}
result=topla(delay)/total_packets_received;
printf(result)
}
je vous écris ce programme awk. Mais il donne la division par zéro tentative d'erreur.Et j'ai écrit la plage de transmission dans la fonction topla comme 250, mais je n'ai pas obtenu les résultats que je voulais.Comment devrais-je écrire la gamme de transmission?
Bienvenue dans StackOverflow. "Entrez une description d'image", c'est-à-dire décrivez ce que fait la formule mathématique liée. Ensuite, écrivez un pseudo-code pour décrire l'algorithme. Ensuite, appliquez votre connaissance de awk pour écrire votre propre tentative de le faire. Ensuite, ajoutez votre code awk ici pour poser une question spécifique. Travailler à travers un tutoriel awk pourrait vous aider, au cas où vous êtes complètement nouveau à awk. Vous pourriez vouloir commencer par prendre le [tour]. Faire un [mcve] est une chose très utile, pour vous et pour les gens qui essaient de vous aider. – Yunnosch
Montrez-nous ce que vous avez essayé, alors nous pouvons commencer à donner le support. – CWLiu
votre formule est erronée! l'indice de sommation ('i') va de' n' à 'n'. ni 't' ni' s' ne dépendent de 'i'. – karakfa