-
1 pièce(s) jointe(s)
Algorithme Fagin en Java
Bonsoir
J ai un travail a faire mais je suis pas trop douee en ce qui concerne Java Est ce que je peux avoir une aide !
Je dois implementer l algorithme de fagin ci dessous en java
STEP 1
Read attributes from every sorted list
Stop when k objects have been seen in common from all lists
STEP 2
Random access to find missing grades
STEP 3
Compute the grades of the seen objects.
Return the k highest graded objects.
Merci de m aider !
-
Ok, montres nous déjà ce que tu as fait sinon ce n'est même pas la peine de poser la question, on ne fera pas le travail a ta place.
-
my ($i,$vals,$score,$k,%d);
@ref=\(%a,%b,%c); #a list of hashes stored as reference in an array
$i=0;
#now loop for lets say 10 iterations...
while($i!=10)
{
my $hashref = $ref[rand @ref]; #select a random hash from the list
.
#the values entered will be of the form (value,score)
$vals=<>;
$score=<>;
$hashref->{$vals}=$score;
}
$i=0;
#the hashes are filled.... ie my database is complete
#now apply the FA to search the top-k data
my(@keys1,@keys2,@keys3,@vals1,@vals2,$key1,$key2,$key3,$val1,$val2,$val3);
while(1) #loop indefinitely
{
#parse each hash simultaneously
@keys1=keys(%a),@keys2=keys(%b),@keys3=keys(%c);
@vals1=values(%a),@vals2=values(%b);
my($seen1,$seen2);
foreach $key1(@keys1)
{
foreach $key2(@keys2)
{
if($key1==$key2)
{
d{$key1}=$vals1[$i++];
$seen1=1;
}
}
foreach $key3(@keys3)
{
if($key1==$key3)
{
d{$key1}=$vals2[$i++];
$seen2=1;
}
}
if($seen1==1 and $seen2==)
{
print "sort(keys(%d))\n";
die "your query was found\n";
}
}
}
-
Ok, mais ici t'es dans le forum java... :(