Se trata de empleando cuatro 4's (y ningún otro entero) obtener todos
los números del 0 al 100. Como de costumbre, vale emplear las
operaciones básicas, la raíz cuadrada y el factorial.
Además, se permite usar el 44 (como dos 4's), el .4 (para 0.4) y .4...
(para 0.44444....)
--
Antonio
Bueno, vamos con los primeros 12 + 1:
0 = 4 + 4 - 4 - 4
1 = (4 + 4)/(4 + 4)
2 = 4/4 + 4/4
3 = (4 + 4 + 4)/4
4 = 4 + (4 - 4)/4
5 = (4*4 + 4)/4
6 = 4 + (4 + 4)/4
7 = 4 + 4 - 4/4
8 = 4 + 4 + 4 - 4
9 = 4 + 4 + 4/4
10 = (44 - 4)/4
11 = 44/rq(4*4)
12 = 4*(4 - 4/4)
--
Saludos,
Ignacio Larrosa Cañestro
A Coruña (España)
ilarrosaQUIT...@mundo-r.com
Los siguientes trece:
13 = (4!+4/rq4)/rq4
14 = 4+4+4+rq4
15 = 4*4-4/4
16 = 4+4+4+4
17 = 4*4+4/4
18 = 4*4+4/rq4
19 = 4!-4-4/4
20 = 4*(4+4/4)
21 = 4!-4+4/4
22 = 4!+4-4-rq4
23 = 4!-4/(rq4+rq4)
24 = 4*4+4+4
25 = 4!+4/(rq4+rq4)
Saludos.
M4N010.
Unos cuantos más:
26=4!+4-4+rq4
27=4!+4-4/4
28=4!+4+4-4
29=4!+4+4/4
30=4!+4+4-rq4
31=4!+(4!+4)/4
32=4*4+4*4
33=4!+(4-.4)/.4
34=4!+4+4+rq4
35=4!+44/4
36=44-4-4
37=4!+4+4/.4...
38=44-4-rq4
39=4!*rq4-4/.4...
40=44-rq(4*4)
41=(4*4+.4)/.4
42=4*4/.4+rq4
43=44-4/4
44=44+4-4
45=44+4/4
46=44+4/rq4
47=4!*rq4-4/4
48=44+rq(4*4)
49=4!*rq4+4/4
50=44+4+rq4
Saludos.
M4N010.
> En el mensaje:4n5lsqF...@individual.net,
> Antonio González <gonf...@gmail.com> escribió:
> > Este parece ser un clásico, pero yo no lo conocía.
> >
> > Se trata de empleando cuatro 4's (y ningún otro entero) obtener todos
> > los números del 0 al 100. Como de costumbre, vale emplear las
> > operaciones básicas, la raíz cuadrada y el factorial.
> >
> > Además, se permite usar el 44 (como dos 4's), el .4 (para 0.4) y .4...
> > (para 0.44444....)
>
> Bueno, vamos con los primeros 12 + 1:
>
> 0 = 4 + 4 - 4 - 4
>
> 1 = (4 + 4)/(4 + 4)
>
> 2 = 4/4 + 4/4
>
> 3 = (4 + 4 + 4)/4
>
> 4 = 4 + (4 - 4)/4
>
> 5 = (4*4 + 4)/4
>
> 6 = 4 + (4 + 4)/4
>
> 7 = 4 + 4 - 4/4
>
> 8 = 4 + 4 + 4 - 4
>
> 9 = 4 + 4 + 4/4
>
> 10 = (44 - 4)/4
>
> 11 = 44/rq(4*4)
>
> 12 = 4*(4 - 4/4)
>
>
Hola grupo,
les mando la solucion para 1 <= n <= 200. Los valores sin solucion
bajo este modelo son:
113, 127, 157, 158, 161, 163, 166, 167, 169, 171, 173, 185, 187,
191, 193, 197, 199.
1 = (44/44)
2 = (4-((4+4)/4))
3 = ((4+(4+4))/4)
4 = (4+(4*(4-4)))
5 = ((4+(4*4))/4)
6 = (4+((4+4)/4))
7 = ((44/4)-4)
8 = (4*((4+4)/4))
9 = (4+(4+(4/4)))
10 = ((44-4)/4)
11 = ((4/4)+(4/.4))
12 = ((4+44)/4)
13 = ((4)!-(44/4))
14 = ((4*(4-.4))-.4)
15 = (4+(44/4))
16 = (.4*(44-4))
17 = (((4)!+44)/4)
18 = (.4+(.4*44))
19 = ((4+(4-.4))/.4)
20 = (4*(4+(4/4)))
21 = ((4/(.4*.4))-4)
22 = (rq(4)*(44/4))
23 = (((4*(4)!)-4)/4)
24 = (4+(4+(4*4)))
25 = ((4+(4*(4)!))/4)
26 = (4+(44/rq(4)))
27 = (4+((4)!-(4/4)))
28 = (44-(4*4))
29 = (4+(4/(.4*.4)))
30 = ((4+(4+4))/.4)
31 = ((4)!+((4+(4)!)/4))
32 = ((4*4)+(4*4))
33 = ((4)!+((4-.4)/.4))
34 = (44-(4/.4))
35 = ((4)!+(44/4))
36 = ((44-4)-4)
37 = (4+((4)!+(4/.4...)))
38 = (44-((4)!/4))
39 = (((4*4)-.4)/.4)
40 = (44-rq((4*4)))
41 = ((.4+(4*4))/.4)
42 = (rq(4)+(44-4))
43 = (44-(4/4))
44 = (4*(44/4))
45 = ((4/4)+44)
46 = ((4+44)-rq(4))
47 = (rq((4/.4...))+44)
48 = (4*(4+(4+4)))
49 = ((rq(4)/.4)+44)
50 = (((4)!/4)+44)
51 = ((((4)!+.4)-4)/.4)
52 = (4+(4+44))
53 = ((4/.4...)+44)
54 = ((4/.4)+44)
55 = (44/(.4+.4))
56 = (4*(4+(4/.4)))
57 = ((((4)!+.4)/.4)-4)
58 = (((4)!-(.4+.4))/.4)
59 = (((4)!/.4)-(4/4))
60 = ((4*4)+44)
61 = ((4/4)+((4)!/.4))
62 = ((4*(4*4))-rq(4))
63 = (4+(((4)!-.4)/.4))
64 = (((4)!+44)-4)
65 = (4+(((4)!+.4)/.4))
66 = (rq(4)+(4*(4*4)))
67 = (4+((4+(4)!)/.4...))
68 = (4+(4*(4*4)))
69 = ((4-(.4-(4)!))/.4)
70 = (rq(4)+((4)!+44))
71 = ((4+((4)!+.4))/.4)
72 = (4+((4)!+44))
73 = (((4)!+((4)!+rq(.4...)))/rq(.4...))
74 = (4+((4+(4)!)/.4))
75 = ((44/.4...)-(4)!)
76 = ((4*((4)!-4))-4)
77 = ((4)!+(((4)!-.4...)/.4...))
78 = ((4*((4)!-4))-rq(4))
79 = ((4)!+(((4)!-rq(4))/.4))
80 = (4*(4+(4*4)))
81 = ((4-.4)/(.4...-.4))
82 = (rq(4)-(4*(4-(4)!)))
83 = ((4)!+(((4)!-.4)/.4))
84 = ((rq(4)*44)-4)
85 = (((4)!+(4/.4))/.4)
86 = ((44/.4)-(4)!)
87 = ((4*(4)!)-(4/.4...))
88 = (44+44)
89 = ((4)!+((rq(4)+(4)!)/.4))
90 = ((44-4)/.4...)
91 = ((4*(4)!)-(rq(4)/.4))
92 = (4+(rq(4)*44))
93 = ((4*(4)!)-rq((4/.4...)))
94 = (4-(4/(.4-.4...)))
95 = ((44/.4...)-4)
96 = (rq(4)*(4+44))
97 = ((4/4)+(4*(4)!))
98 = (44+((4)!/.4...))
99 = ((4+.4)/(.4...-.4))
100 = ((44-4)/.4)
101 = (rq(4)+(44/.4...))
102 = (((4)!/4)+(4*(4)!))
103 = (4+(44/.4...))
104 = (44+((4)!/.4))
105 = ((44-rq(4))/.4)
106 = ((44/.4)-4)
107 = (((4)!-(.4...-(4)!))/.4...)
108 = ((4+44)/.4...)
109 = ((44-.4)/.4)
110 = (44/rq((.4*.4)))
111 = ((.4+44)/.4)
112 = (rq(4)+(44/.4))
114 = (4+(44/.4))
115 = ((rq(4)+44)/.4)
116 = (((4+(4/4)))!-4)
117 = ((4+((4)!+(4)!))/.4...)
118 = (((4+(4/4)))!-rq(4))
119 = (((4)!-(.4-(4)!))/.4)
120 = ((4+44)/.4)
121 = (((4)!+((4)!+.4))/.4)
122 = (rq(4)+((4+(4/4)))!)
123 = ((4)!+(44/.4...))
124 = (4+((4+(4/4)))!)
125 = ((((4)!-4)/.4)/.4)
126 = (((4)!/(.4*.4))-(4)!)
128 = (4*(4*(4+4)))
129 = ((4/.4...)+((rq(4)/.4))!)
130 = ((4+((4)!+(4)!))/.4)
131 = (((4)!/(.4*.4...))-4)
132 = (rq((4/.4...))*44)
133 = (((4)!/(.4*.4...))-rq(4))
134 = ((4)!+(44/.4))
135 = (((4)!/(.4...-.4))/4)
136 = (rq(4)*((4)!+44))
137 = (rq(4)+((4)!/(.4*.4...)))
138 = ((((4)!*(4)!)-(4)!)/4)
139 = (4+((4)!/(.4*.4...)))
140 = (44+(4*(4)!))
141 = (((4*(4)!)-rq(4))/rq(.4...))
142 = ((((4)!*(4)!)/4)-rq(4))
143 = ((((4)!*(4)!)-4)/4)
144 = (4*(4*(4/.4...)))
145 = ((4+((4)!*(4)!))/4)
146 = (((4)!/(.4*.4))-4)
147 = ((rq(4)+(4*(4)!))/rq(.4...))
148 = (4+(((4)!*(4)!)/4))
149 = ((((4)!/.4)-.4)/.4)
150 = (((4)!+((4)!*(4)!))/4)
151 = ((.4+((4)!/.4))/.4)
152 = ((4*44)-(4)!)
153 = (((4)!+44)/.4...)
154 = (4+((4)!/(.4*.4)))
155 = ((rq(4)+((4)!/.4))/.4)
156 = (((4)!/.4)+(4*(4)!))
159 = ((4)!+((4)!/(.4*.4...)))
160 = (4*(44-4))
162 = ((4)!/((4-.4...)/(4)!))
164 = (44+((rq(4)/.4))!)
165 = ((44/.4)/rq(.4...))
168 = (4*(44-rq(4)))
170 = (((4)!+44)/.4)
172 = ((4*44)-4)
174 = ((4*44)-rq(4))
175 = (((4+(4)!)/.4)/.4)
176 = (rq((4*4))*44)
177 = ((((rq(4)/.4))!-rq(4))/rq(.4...))
178 = (rq(4)+(4*44))
179 = (((((4)!/4))!-4)/4)
180 = (4+(4*44))
181 = ((4+(((4)!/4))!)/4)
182 = (rq(4)+((((4)!/4))!/4))
183 = ((rq(4)+((rq(4)/.4))!)/rq(.4...))
184 = (4*(rq(4)+44))
186 = (((4)!+(((4)!/4))!)/4)
188 = (((4)!*(4+4))-4)
189 = (((4)!+((4)!/.4))/.4...)
190 = (((4)!*(4+4))-rq(4))
192 = (4*(4+44))
194 = (rq(4)+((4)!*(4+4)))
195 = (((4)!+((4)!/.4...))/.4)
196 = (4+((4)!*(4+4)))
198 = (rq(4)/(.4.../44))
200 = ((4)!+(4*44))
El programa es este:
recrep :=
proc(tb, val, str)
if type(tb[val], string) then
if length(tb[val])>length(str) then
tb[val] := str;
fi;
else
tb[val] := str;
fi;
end;
maxdepth := 3;
maxval := 12;
sreps :=
proc(val, str, dp, tb)
local ent;
if dp = maxdepth then
return;
fi;
if type(sqrt(val), rational) then
ent := [sqrt(val), sprintf("rq(%s)", str)];
recrep(tb, ent[1], ent[2]);
sreps(ent[1], ent[2], dp+1, tb);
fi;
if type(val, integer) and 0 <= val and val < maxval then
ent := [val!, sprintf("(%s)!", str)];
recrep(tb, ent[1], ent[2]);
sreps(ent[1], ent[2], dp+1, tb);
fi;
end;
reps :=
proc(n)
local T, a, b, lval, rval, lstr, rstr, ent;
option remember;
T := table();
if n=1 then
T[4] := "4";
T[4/10] := ".4";
T[4/9] := ".4...";
sreps(4, "4", 1, T);
sreps(4/10, ".4", 1, T);
sreps(4/9, ".4...", 1, T);
return op(T);
fi;
if n=2 then
T[44] := "44";
sreps(44, "44", 1, T);
fi;
a := 1;
while a+a <= n do
b := n-a;
for lval in [indices(reps(a))] do
for rval in [indices(reps(b))] do
lstr := reps(a)[lval[1]];
rstr := reps(b)[rval[1]];
ent := [lval[1]+rval[1],
sprintf("(%s+%s)",
lstr, rstr)];
recrep(T, ent[1], ent[2]);
sreps(ent[1], ent[2], 1, T);
ent := [lval[1]*rval[1],
sprintf("(%s*%s)",
lstr, rstr)];
recrep(T, ent[1], ent[2]);
sreps(ent[1], ent[2], 1, T);
ent := [lval[1]-rval[1],
sprintf("(%s-%s)",
lstr, rstr)];
recrep(T, ent[1], ent[2]);
sreps(ent[1], ent[2], 1, T);
ent := [rval[1]-lval[1],
sprintf("(%s-%s)",
rstr, lstr)];
recrep(T, ent[1], ent[2]);
sreps(ent[1], ent[2], 1, T);
if evalf(rval[1] <> 0) then
ent := [lval[1]/rval[1],
sprintf("(%s/%s)",
lstr, rstr)];
recrep(T, ent[1], ent[2]);
sreps(ent[1], ent[2], 1, T);
fi;
if evalf(lval[1] <> 0) then
ent := [rval[1]/lval[1],
sprintf("(%s/%s)",
rstr, lstr)];
recrep(T, ent[1], ent[2]);
sreps(ent[1], ent[2], 1, T);
fi;
od;
od;
a := a+1;
od;
return op(T);
end;
intreps :=
proc(n, mx)
option remember;
local all, r, val;
all := [];
for r in [indices(reps(n))] do
val := r[1];
if type(val, integer) and 1<=val and val<=mx then
all := [op(all), [val, reps(n)[val]]];
fi;
od;
sort(all, (p, q) -> p[1] < q[1]);
end;
map(p -> printf("%d = %s\n", p[1], p[2]), intreps(4, 200));
print(nops(intreps(4, 200)));
print("not represented",
sort({seq(k, k=1..200)} minus
convert(map(p -> p[1], intreps(4, 200)), set)));
Un saludo.
--
+------------------------------------------------------------+
| Marko Riedel, EDV Neue Arbeit gGmbH, mri...@neuearbeit.de |
| http://www.geocities.com/markoriedelde/index.html |
+------------------------------------------------------------+
> Hola grupo,
>
> les mando la solucion para 1 <= n <= 200. Los valores sin solucion
...
> El programa es este:
...
Y yo que me estaba rompiendo los cuernos con el 73... Así cualquiera, abusón
;-).
Saludos.
M4N010.