19/05/09 21:28:06.85 V3giiBFx.net
>>880 C
URLリンク(ideone.com)
901:さまよえる蟻人間
19/05/09 22:20:55.24 sZO2t0w0.net
お題: 改行とスペースを含むASCII文字列が与えられる。
改行とスペース以外の各印字可能文字の位置を以下のように順番に出力せよ。
(入力)
a b c
d
(出力)
[a, 0, 0]
[b, 2, 0]
[c, 5, 0]
[d, 0, 2]
902:デフォルトの名無しさん
19/05/10 08:21:41.55 Z1uC1A15.net
>>880
python
def chain(n):
lst = []
if n < 1: raise ValueError("Please n > 0 number")
while n != 1:
lst.append(n)
if n % 2 == 0: n //= 2
else: n = n * 3 + 1
lst.append(1)
return lst
for i in [10,1,30,0]: print(chain(i))
903:デフォルトの名無しさん
19/05/10 08:24:53.49 Z1uC1A15.net
>>880
Haskell
main = mapM_ (print.chain) [10,1,30,0]
chain 1 = [1]
chain n | n < 1 = error "Please n > 0 number"
chain n | even n = n:chain (n `div` 2)
chain n = n:chain (n * 3 + 1)
904:デフォルトの名無しさん
19/05/10 11:11:44.01 VtNtFyvg.net
>>880
C
URLリンク(ideone.com)
1未満の値の判定はchain関数に実装すべきなのかどうなのか……
905:デフォルトの名無しさん
19/05/10 11:56:36.34 sggjdX/2.net
>>882
[c, 5, 0]?
[c, 4, 0]じゃなくて?
906:さすらいの蟻人間
19/05/10 12:18:04.49 8LSsTFj9.net
>>882 >>886
4の間違いでした。訂正。
907:デフォルトの名無しさん
19/05/10 12:30:05.58 k7gY5pMP.net
>>882
出力は、行列番号が0から始まるとして
文字,列番号、行番号 だと思うから c の列番号は間違ってるんじゃないの?
(入力)
a b c
d
(出力)
[a, 0, 0]
[b, 2, 0]
[c, 4, 0] << 5じゃなくて4だろ。
[d, 0, 2]
908:デフォルトの名無しさん
19/05/10 12:47:01.79 6xQjM2XG.net
>>881,885
この問題、入門書から抜粋したけど次に1ー100の間に長さ15以上は何個あるかとか出てるから、
Cだとリストから作らないといけないのは分かるが、リスト返す様にした方が仕様変更に強いと思う。
909:デフォルトの名無しさん
19/05/10 12:53:54.51 KAkBQh2y.net
宿題誘導か
最近のアホは小賢しいな
910:デフォルトの名無しさん
19/05/10 13:27:19.10 k7gY5pMP.net
>>882 python
st = '''a b c
d
'''
line = 0 ; col = 0
for c in st :
__if c == '\n' :
____line += 1
____col = 0
____continue
__if c != ' ' :
____print ('['+c, col,str(line)+']', sep=',')
__col += 1
911:デフォルトの名無しさん
19/05/10 13:40:11.78 k7gY5pMP.net
>>891 出力フォーマットが
['a', 0, 0]
['b', 2, 0]
['c', 4, 0]
['d', 0, 2]
でもよければ print文は簡単になる
print ([c, col,line])
912:さすらいの蟻人間
19/05/10 14:51:58.21 CF7UUf9v.net
お題: >>882 の入出力を逆転。
913:デフォルトの名無しさん
19/05/10 15:12:02.76 bODSyEKx.net
>>893 手抜きすんな面白くない
914:デフォルトの名無しさん
19/05/10 15:43:29.85 aTy0NCJ4.net
>>880
与えられた数の3倍以上の個数を持つ系列を
を3個示せ。
915:デフォルトの名無しさん
19/05/10 17:50:33.37 58PV3kUA.net
>>880,889 Squeak Smalltalk
| chain |
chain := [:n |
Array streamContents: [:ss |
ss nextPut: n.
[n > 1] whileTrue: [ss nextPut: (n := n even ifTrue: [n / 2] ifFalse: [n * 3 + 1])]
]
].
chain value: 10. "=> #(10 5 16 8 4 2 1) "
(1 to: 100) count: [:n | (chain value: n) size >= 15] "=> 71 "
916:デフォルトの名無しさん
19/05/10 20:05:13.80 0Zlxa6bH.net
>>880
Perl のワンライナー。
perl -ne '$n=$_;chomp($n);@d=($n);while($n!=1){$n=$n&1?($n*3+1):($n/2);push(@d,$n)}print "[".join(", ", @d)."]\n"'
実行する場合はbash等のシェルから行う(シングルクォートの中がそのままperlに引き渡されさえすれば他のシェルでも良い)。
標準入力から1行1データで入力して結果を出力するようにした。
917:デフォルトの名無しさん
19/05/10 20:29:31.76 /+/am3CQ.net
>>895
27のとき112個
31のとき107個
10億くらいまで回したけど、これら以外なくね?
数列の初期値と長さは、初期値が小さいうちは同じくらいだが、初期値を大きくしても数列の長さはさほど伸びない。
URLリンク(imgur.com)
グラフはxが大きくなるほど飛ばす間隔も大きくしてあるからあまり正確ではない。
918:デフォルトの名無しさん
19/05/10 21:48:47.85 LM2YqzO0.net
お題
URLリンク(www.youtube.com)
このようなルートの数を数え上げるプログラムを作る
N=5位まででよい
919:デフォルトの名無しさん
19/05/10 22:09:58.71 KAkBQh2y.net
ZDDやるなら出来合いのもの使って終わりじゃねえの?
URLリンク(github.com)
URLリンク(hs-nazuna.github.io)
920:デフォルトの名無しさん
19/05/11 11:54:01.37 Ze1v8w/9.net
>>880 Perl5
sub chain {
my $i = shift;
$i == 1 ? $i : ($i, ($i & 1 ? chain(3*$i + 1) : chain($i / 2)))
}
for (qw{10 1 30}) {
@a = chain $_;
print "[@a]\n";
}
実行
~ $ perl 13_875_collatz.pl
[10 5 16 8 4 2 1]
[1]
[30 15 46 23 70 35 106 53 160 80 40 20 10 5 16 8 4 2 1]
921:デフォルトの名無しさん
19/05/11 12:16:05.54 Ze1v8w/9.net
>>882 Perl5
@in = map{[split'']} map{split '\n'} <<EOF;
a b c
d
EOF
for $j (0..$#in) {
for $i (0..$#{$in[$j]}) {
$c = $in[$j][$i];
print "[$c,$i,$j]\n" if $c =~ /\w/;
}
}
実行
~ $ perl 13_877.pl
[a,0,0]
[b,2,0]
[c,4,0]
[d,0,2]
922:デフォルトの名無しさん
19/05/11 13:06:48.39 bKjSBhWB.net
>>880
Ruby で
module Collatz
def self.next_number( num )
if num.even? # 偶数
num / 2
else # 奇数
num * 3 + 1
end
end
def self.chain( num )
@@results = [ ]
tmp = num
while true
@@results.push tmp
break if tmp == 1
tmp = next_number( tmp )
end
@@results
end
end
[ 1, 27 ].each do | num |
p Collatz.chain( num )
end
923:デフォルトの名無しさん
19/05/11 18:55:11.91 fAbbaveG.net
>>880 c
URLリンク(ideone.com)
>>880 ruby
URLリンク(ideone.com)
>>880 ocaml
URLリンク(ideone.com)
924:デフォルトの名無しさん
19/05/11 20:54:08.94 wddfxsLz.net
ideone.comはMATLABに対応してないのね。
書いてみた後で気がついた。
925:デフォルトの名無しさん
19/05/11 23:44:29.57 fAbbaveG.net
>>880 octave
URLリンク(ideone.com)
926:デフォルトの名無しさん
19/05/12 02:01:10.46 FbICTnq7.net
>>880
Java
URLリンク(paiza.io)
takeUntilが欲しいなー
927:デフォルトの名無しさん
19/05/12 06:46:28.87 R9TUiFuu.net
>>880
コラッツ樹で作れば出力を減らせる。
928:デフォルトの名無しさん
19/05/14 02:59:08.35 3xJ0OqNt.net
>>882
Kotlin
URLリンク(paiza.io)
for や while ループ使わずに forEachIndexed で入れ子にしてみました。
929:デフォルトの名無しさん
19/05/14 09:26:15.81 zeev4Evh.net
>>882
Ruby で
text = <<"EOT"
a b c
d
EOT
re = /[^ ]+/ # 空白以外
text.each_line.with_index do | line, idx | # 1行ずつ処理する
line.strip! # trim
# $~.begin は、マッチした先頭文字の位置
line.scan( re ) { puts "[" + [ $~.to_s, $~.begin(0), idx ].join( ", " ) + "]" }
end
930:デフォルトの名無しさん
19/05/14 10:07:03.30 rKVVoOG1.net
>>891 をスッキリ修正してみた
改行コード指定をやめ、for loop のカウンタを利用
>>882 の解
st = '''a b c
d
'''
for line,l in enumerate(st.splitlines()) :
for col,c in enumerate(l):
if c != ' ' : print('['+c, col,str(line)+']',sep=',')
931:デフォルトの名無しさん
19/05/14 14:12:15.49 8QdSJZ63.net
>>910
空白以外は\Sでマッチするぞ
932:デフォルトの名無しさん
19/05/14 23:52:44.04 AtHJrRxM.net
>>882 Squeak Smalltalk
| fn |
fn := [:str |
((str lines collectWithIndex: [:line :lIdx |
(line reject: #isSeparator) asArray
collect: [:chr | {chr. (line indexOf: chr) - 1. lIdx - 1}]]
) concatenation select: #notEmpty) asStringWithCr
].
fn value: 'a b c
d'
"=>
'#($a 0 0)
#($b 2 0)
#($c 4 0)
#($d 0 2)' "
933:デフォルトの名無しさん
19/05/15 01:06:44.65 tCUIeJeC.net
>>913 smalltalk って全く知らないけど、最後が出力のつもり?
だったらお題の出力フォーマットと似ても似つかないじゃん。
934:デフォルトの名無しさん
19/05/15 03:57:52.07 i8y0s24p.net
いや似てる
935:デフォルトの名無しさん
19/05/15 04:50:48.17 TsVBVaTo.net
>>882 Squeak/Pharo Smalltalk
出力はともかく同行に同文字があるとダメだった^^;ので>>913 差し替え
| fn |
fn := [:str |
((str lines collectWithIndex: [:line :lIdx |
(line asArray collectWithIndex: [:chr :cIdx | {chr. cIdx - 1. lIdx - 1}]
) reject: [:each | each first isSeparator]]
) concatenation
select: #notEmpty thenCollect: [:each | '[{1}, {2}, {3}]' format: each]) asStringWithCr
].
fn value: 'a b c
d'
"=>
[a, 0, 0]
[b, 2, 0]
[c, 4, 0]
[d, 0, 2] "
936:905
19/05/15 09:57:59.71 AfKgri37.net
>>912
re = /[^ ]+/
空白以外だから、上のようにしたけど、空白"類"以外なら、\S+ でよい
問題の意図がどちらなのか、よく分からない
937:デフォルトの名無しさん
19/05/15 23:43:58.92 jmndeABE.net
>>882 c
URLリンク(ideone.com)
>>882 ruby
URLリンク(ideone.com)
>>882 ocaml
URLリンク(ideone.com)
>>882 octave
URLリンク(ideone.com)
938:デフォルトの名無しさん
19/05/16 01:50:16.53 4fy8zsNP.net
>>918
C以外は助長だな
939:デフォルトの名無しさん
19/05/16 03:57:55.40 6BLr95cC.net
>>919
具体的にはどの処理のどの部分を冗長に感じられたのでしょうか?
たとえばRubyの回答がどう冗長か(あるいはどう書けば良いか)教えてください!
940:デフォルトの名無しさん
19/05/16 08:25:20.49 MujhV/Cm.net
>>918 故意にpython 外しはずるい。
>>882 python
URLリンク(ideone.com)
printフォーマットは、コメントにしたpython3.6のf文字列の方がシンプルだが、ideone は3.5しかないのでformat文にした。
941:デフォルトの名無しさん
19/05/16 10:18:52.91 YVMjr/q8.net
>>882
Go
URLリンク(ideone.com)
コンパクトにならんね
942:デフォルトの名無しさん
19/05/16 14:34:08.16 YVMjr/q8.net
>>893
Go
URLリンク(ideone.com)
943:デフォルトの名無しさん
19/05/16 19:26:40.27 ktv4pd0R.net
>>882
C++
URLリンク(ideone.com)
944:デフォルトの名無しさん
19/05/16 20:28:13.91 3sIrlJF4.net
お題
整数の数列が与えられるので、各値の大小関係を変えないように値をなるべく小さくせよ
ただし1番小さい要素は1にすること
入力
-6 3 9 5 3 -7
出力
2 3 5 4 3 1
945:デフォルトの名無しさん
19/05/16 21:00:21.83 /dAesd8e.net
>>925
c++
URLリンク(ideone.com)
946:
19/05/16 21:47:12.78 m1RdOLwU.net
>>925
>値をなるべく小さくせよ
絶対値を小さく、という意味ですか?
947:デフォルトの名無しさん
19/05/16 22:59:47.34 0eZXbfha.net
>>925 Pharo/Squeak Smalltalk
| fn |
fn := [:arr |
| sorted |
sorted := arr asSet sorted.
arr collect: [:x | sorted indexOf: x]
].
fn value: #(-6 3 9 5 3 -7). "=> #(2 3 5 4 3 1) "
948:913
19/05/16 23:00:52.84 02wuysYU.net
>>882 ocaml
URLリンク(ideone.com)
・自分に正直になってrefとforループで書いた
>>919
じょ、助長…
>>921
外しと言うより、たんに不勉強
python書けないんよね(´・ω・`)
949:デフォルトの名無しさん
19/05/16 23:34:17.56 YXKZQo24.net
>>928 Perl5
@a = qw{-6 3 9 5 3 -7};
$h{$_}=1 for @a;
%o = map{$_=>++$i} sort{$a<=>$b} keys %h;
@b = map{$o{$_}} @a;
print "@a => @b\n";
実行
~ $ perl 13_920.pl
-6 3 9 5 3 -7 => 2 3 5 4 3 1
950:デフォルトの名無しさん
19/05/16 23:42:11.94 YXKZQo24.net
>>930
アンカーしくった、>>925 宛だった…orz
951:デフォルトの名無しさん
19/05/16 23:44:54.09 02wuysYU.net
>>925 octave
URLリンク(ideone.com)
952:デフォルトの名無しさん
19/05/17 00:26:31.35 SI3/qEwo.net
>>893 Pharo/Squeak Smalltalk
| fn |
fn := [:arr |
String streamContents: [:ss |
| cIdx lIdx |
cIdx := lIdx := 0.
arr do: [:spec |
spec third > lIdx ifTrue: [
ss nextPutAll: (String new: spec third - lIdx withAll: Character cr).
lIdx := spec third.
cIdx := 0
].
ss nextPutAll: (String new: spec second - cIdx withAll: Character space).
ss nextPutAll: spec first.
cIdx := spec second + 1.
]
]
].
fn value: #(
(a 0 0)
(b 2 0)
(c 4 0)
(d 0 2)).
"=>
a b c
d "
953:デフォルトの名無しさん
19/05/17 00:35:47.85 HrEfbPs9.net
>>932
重複除去でソート後のインデックスを返す関数?
チート過ぎてわろたw
954:デフォルトの名無しさん
19/05/17 00:55:59.72 TuAgku6e.net
最近jニキ来ないな
955:デフォルトの名無しさん
19/05/17 01:23:24.98 UHIjSpei.net
>>925
Kotlin
URLリンク(paiza.io)
956:デフォルトの名無しさん
19/05/17 07:54:47.22 9a+COZnd.net
>>893
s = '''\
[a, 0, 0]
[b, 2, 0]
[c, 4, 0]
[d, 0, 2]
'''
from parse import * #pip install
col2 = 0 ; line2 = 0
for l in s.splitlines():
col = col2 ; line = line2
r=parse('[{},{},{}]',l)
c= r[0]
col2 = int(r[1]) ; line2 = int(r[2])
{print() for _ in range(line2-line) }
{print(' ',end='') for _ in range(col2-col)}
print(c, end='')
col2 += 1
print()
'''#出力
a b c
d
'''
957:デフォルトの名無しさん
19/05/17 08:32:11.25 9a+COZnd.net
>>937 parse に型指定追加
>>893 Python
s = '''\
[a, 0, 0]
[b, 2, 0]
[c, 4, 0]
[d, 0, 2]
'''
from parse import * #pip install
col2 = 0 ; line2 = 0
for l in s.splitlines():
col = col2 ; line = line2
(c,col2,line2) = parse('[{},{:d},{:d}]',l)
{print() for _ in range(line2-line) }
{print(' ',end='') for _ in range(col2-col)}
print(c, end='')
col2 += 1
print()
'''#出力
a b c
d
'''
958:デフォルトの名無しさん
19/05/17 12:14:50.20 8VLhbVxR.net
>>925
は、ランク付けの問題だろ
入力データ
-6 3 9 5 3 -7
出力・ランク
2 3 5 4 3 1
入力データの最も小さい数字を、ランク1 にして、
数字が大きくなるほど、ランクも大きくしていく
同値の場合は、同じランクにして、次のランクも間隔を空けない。
ランク3 が2つあっても、次は、ランク4
つまり、ランクが欠けることはない!
959:デフォルトの名無しさん
19/05/17 12:23:14.18 99nnd/tf.net
>>939
うるせぇ死ね
960:デフォルトの名無しさん
19/05/17 12:39:09.53 L8EHraRu.net
難しく書いてたけど結局これだけなのか
問題文をわざと複雑に見せかける現代文読解と同じ仕組みじゃないか
961:デフォルトの名無しさん
19/05/17 12:49:18.63 ut9H1r3U.net
プログラム作る前に気づいたので>>936のリンク先のブログラムのタイトルは密かに「順位」にしといたw
962:デフォルトの名無しさん
19/05/17 12:50:56.11 l82uGMBO.net
>>941
わざと難しく見せかけているというよ�
963:閨Aたんに説明が下手なだけだと思う
964:デフォルトの名無しさん
19/05/17 13:23:46.56 gFFtTihX.net
別に難しくない件
965:デフォルトの名無しさん
19/05/17 13:29:01.98 L8EHraRu.net
そうですね
難易度は主観ですね
なら短さ長さを比べるとこうなります
・各値の大小関係を変えないように値をなるべく小さくせよ
・ランク付けせよ
もしかしたらこれが要するにただのランク付けだと分かるまで何人が挑戦するかを試してみる社会調査だったのかもしれません
966:デフォルトの名無しさん
19/05/17 13:36:08.80 /5AjAxyT.net
>ランク付けだと分かるまで何人が挑戦するかを試してみる
まさにそうじゃないの?
967:デフォルトの名無しさん
19/05/17 13:44:50.72 mxL0YWmq.net
>>925 J
f =: >: @ (i.~ /:~ @ ~.)
f _6 3 9 5 3 _7
2 3 5 4 3 1
968:デフォルトの名無しさん
19/05/17 14:08:19.69 gFFtTihX.net
>>945
アスペ
969:デフォルトの名無しさん
19/05/17 14:08:53.72 gFFtTihX.net
問題文を添削しちゃう皆さん
970:デフォルトの名無しさん
19/05/17 14:20:43.10 gFFtTihX.net
>>927
971:デフォルトの名無しさん
19/05/17 15:06:17.59 Jb6joIEA.net
さすがにいちゃもん付け過ぎだろ
元の問題文読めば普通はわかるだろ
972:デフォルトの名無しさん
19/05/17 15:51:11.97 99nnd/tf.net
問題: おっぱいをなるべく小さくせよ。
973:デフォルトの名無しさん
19/05/17 16:00:34.70 ut9H1r3U.net
>>952
(・)(・)
↓
(・)(・)
974:デフォルトの名無しさん
19/05/17 16:18:22.99 X2USxdO3.net
お題:自然数を隙間なく自分自身以外の数に対応させよ。
975:デフォルトの名無しさん
19/05/17 16:46:21.83 9GdSR9hc.net
>>954 先生、対応させると言う日本語がわかりません。
日本人には難しいです。
976:デフォルトの名無しさん
19/05/17 17:04:52.99 ut9H1r3U.net
>>954
君が何を言っているのかわからない。
977:デフォルトの名無しさん
19/05/17 17:24:51.97 L8EHraRu.net
>>954
パッ見で分からん
978:デフォルトの名無しさん
19/05/17 18:07:07.73 nEasvejW.net
偶数なら1引く
奇数なら1足すとかでいいんじゃないの
979:デフォルトの名無しさん
19/05/17 18:39:31.46 9GdSR9hc.net
>>958 良いんじゃないのじゃなくて、他の人が理解できる言葉に翻訳してよ。
これじゃ小学校の国語で平均点以下だろ。
日本語が不自由ならプログラム例を示せば良い。変な言語はダメだけど、C系の素直な言語なら万国共通
980:デフォルトの名無しさん
19/05/17 19:30:38.86 Jb6joIEA.net
要はf: N -> N の∀n∈N f(n) ≠ n かつ全単射な写像を求めろってことでしょ
981:デフォルトの名無しさん
19/05/17 19:35:23.29 Jb6joIEA.net
あ、単射じゃなくてもいいか
982:デフォルトの名無しさん
19/05/17 19:40:06.71 9GdSR9hc.net
>>960 あのさ、それで人に通じると思ってるの?
そんな仕様書を書いて誰がコーディングするんだよ。
日本語に翻訳して明後日出直してこい。
言語能力にかけてるやつは、自分の頭の中が周りの人からスケスケに見えてると言う妄想を持ってる。
狭い世界で通用しても社会では通用しない。
983:デフォルトの名無しさん
19/05/17 19:47:34.60 9GdSR9hc.net
ここまで何人もの人がわからんと言ってるのは、その仕様を出した人間の素質が失格という事だろ。
それを何で庇うんだ? 庇う理由を説明してみろよ。 ここがバカばかりと思うならバカに解るように説明しろよな。
バカにわからせなければ、PLは務まらないよ。
と言うか、仕事は一般人としてるのに何をトチ狂ってるんだ? かなり精神を疑うな。
984:デフォルトの名無しさん
19/05/17 19:50:16.70 Jb6joIEA.net
教養のないやつに限ってブチ切れる
985:デフォルトの名無しさん
19/05/17 20:11:05.80 KIX3RA0i.net
>>952
桃白白改めミスターポポ改めピラフ改めピッコロさん、くだらない出題はやめてください
986:デフォルトの名無しさん
19/05/17 20:11:56.63 9a+COZnd.net
>>964 で、どんな問題なんだ? プログラミングできる仕様として出してくれよ。
987:
19/05/17 20:21:17.94 e+Q6zZPk.net
>>961
単射でないとなると、n に対して n % 10 を対応付けるとかもありになりますね…
>>962
全射、単射、全単射とかは普通に使う単語ですよ、知らないのなら、これらの術語を含む数学の本…代数ですかね?解析ですかね?よくわからないや、を一冊読んでみるのがいいですね
988:デフォルトの名無しさん
19/05/17 20:46:06.10 Jb6joIEA.net
>>966
出題者に言えよ
>>967
%じゃ全射にも単射にもならんぞ
上で誰かが言ってた遇奇を入れ替えたりだとか
f(n) = n - 1, f(0) = 0以外の任意の値
とかなんでもありだね。つまらんけど
989:デフォルトの名無しさん
19/05/17 20:48:13.95 99nnd/tf.net
顔射は普通に使う単語ですか?
990:
19/05/17 20:51:49.11 e+Q6zZPk.net
>>968
>%じゃ全射にも単射にもならんぞ
そうですね、じゃ、割り算の商の整数部分「/」とかはどうでしょう
991:デフォルトの名無しさん
19/05/17 21:06:32.38 ut9H1r3U.net
>>969
はい。
992:デフォルトの名無しさん
19/05/17 21:09:38.99 Jb6joIEA.net
>>970
そりゃなんでもありよ
その場合は0の時だけ別の値を定義すれば良し
993:デフォルトの名無しさん
19/05/17 21:30:53.57 0M7uQZeH.net
920だが、ランク付けだと解が236531と解釈される可能性が有ったので避けた
もっと簡単な書き方があるはそう思う、座圧+1とかでも伝わるだろうし……
994:デフォルトの名無しさん
19/05/17 22:36:31.21 gcMK/Ofn.net
数値のリストを入力し、値の小さい順に1から順位を付けて、
順位のリストを出力する。同じ値は同じ順位とする
995:デフォルトの名無しさん
19/05/17 22:47:54.41 TGYryIO4.net
ほんとそれ
ピラフ改めピッコロはさっさと自害しろ
996:デフォルトの名無しさん
19/05/17 23:20:58.53 L8EHraRu.net
>>954
やっぱりどういう入出力の具体例になるのか分からない
どういうことなんだよ
997:デフォルトの名無しさん
19/05/17 23:47:24.37 xYITnAAv.net
>>976
あくまで俺の推測だが
一例として、自分自身の数が3のとき自然数から3を除去して
(1) 1, 2, 3, 4, 5, 6, ...
↓
(2) 1, 2, NULL, 4, 5, 6, ...
NULLになった部分をなくすために4以降を左へシフトする
(3) 1, 2, 4, 5, 6, 7, ...
こんな感じで(1)の入力を(3)のような出力にする関数じゃないか?
ただお題の条件としてはもっとゆるくて、入力はオーバーフローしない範囲の自然数、出力は「自分自身の数」を含まない自然数になれば何でもよくて、
定数関数でもハッシュ関数でもいいはず。
ただし、ある入力に対して必ず決まった値にならなければならず、同じ入力で呼び出すたびに出力が違うのはダメ。
998:デフォルトの名無しさん
19/05/18 00:15:42.42 w6U4ewGf.net
>>977 何をアホな事を言ってるんだ? そんなの小学生に数を数えなさいと言ってるのと等しいぞ。
それのどこがプログラミングのお題なんだ?
バカじゃないのか?
999:デフォルトの名無しさん
19/05/18 01:03:14.81 bbC9YGRR.net
>>947
乙、見事。
1000:デフォルトの名無しさん
19/05/18 01:57:48.06 jjK+y75q.net
>>925
C#
URLリンク(paiza.io)
1001:デフォルトの名無しさん
19/05/18 02:15:29.87 jjK+y75q.net
>>925
Java
URLリンク(paiza.io)
1002:デフォルトの名無しさん
19/05/18 07:46:37.95 w6U4ewGf.net
>>925 Python
ol = [-6, 3, 9, 5, 3, -7]
print([ sorted(set(ol)).index(x)+1 for x in ol ] )
# [2, 3, 5, 4, 3, 1]
1003:デフォルトの名無しさん
19/05/18 10:52:55.70 0WkfcTHM.net
>>976
1. すべての自然数nに対してf(n)≠n
2. 自然数m,nがm≠nを満たすときf(m)≠f(n)
を満たすような関数f(n)を作れってこと
例えば
1. 入力が1のとき出力は1以外
2. 入力が1のときと2のときで出力が同じになってはダメ
1004:デフォルトの名無しさん
19/05/18 11:06:29.35 spo9+l+a.net
>>983
2はいらんやろ
適当なコト抜かすなごかすぞぼけ
1005:デフォルトの名無しさん
19/05/18 11:10:21.66 vBrA8iCH.net
単射である必要はない。全射でさえあればよい
1006:デフォルトの名無しさん
19/05/18 12:08:52.78 R97vL30T.net
難しすぎて全くわからん…
ハローワールド始めて間もない男にも分かる問題を出してくれぬか
優しく教えて欲しい
1007:デフォルトの名無しさん
19/05/18 12:10:33.89 HBaY+7WM.net
>>954
これがあれば1Mbyteのファイルが2byteになっちゃうのか?
1008:デフォルトの名無しさん
19/05/18 12:48:31.15 PrlqGkYa.net
>>983 これのどこがプログラムの問題なのかさっぱりわからん。 小学生の練習問題か?
例えば自然数が 1から4までとした場合、f(n) の出力配列は
f(1) 2,3,4
f(2) 1,3,4
f(3) 1,2,4
f(4) 1,2,3
と言う事だろ? どうしてこんな問題を出したかさっぱり分からん、何か勘違いしてる?
1009:デフォルトの名無しさん
19/05/18 14:29:45.05 5ij/PJHb.net
>>925 c
URLリンク(ideone.com)
1010:デフォルトの名無しさん
19/05/18 14:46:59.19 0WkfcTHM.net
>>984
「隙間なく」を満たすには全射である必要があるけど、今回は定義域と終域が等しいから単射なら自動的に全射になる
全射の条件より単射の条件のほうが説明が楽だから許してくれ
>>988
出題者じゃないから意図は分からんが、自然数を自身以外の自然数に変換するのが題意だからその例は間違っている
f(n)が返すのは自然数であってベクトル(配列)ではない
1011:
19/05/18 14:50:54.64 To+6m73X.net
>>985
>単射である必要はない。全射でさえあればよい
???
>>983
2. 自然数m,nがm≠nを満たすときf(m)≠f(n)
これって単射の定義そのものなのでは?
だから単射である必要があるのでは?
f が単射でない場合 f:a->z, f:b->z だった場合に a != b にもかかわらず f(a)=f(b) で 2 を満たさない
1012:デフォルトの名無しさん
19/05/18 14:57:54.95 jXb4UL4k.net
def f(n)
n + 1
end
一応>>983は満たしてる
1013:デフォルトの名無しさん
19/05/18 15:16:22.17 0WkfcTHM.net
>>990
追記
単射なら全射になるのは有限集合の場合だったわ
お詫びにお題
入力n(2≤n≤2^31-1)を素因数分解してそれを表示せよ
入力例)
28
2002
216653
出力例)
2^2*7
2*7*11*13
216653
1014:デフォルトの名無しさん
19/05/18 15:45:24.30 kdcwh9zo.net
>>893 Perl5
@a=([a, 0, 0],
[b, 2, 0],
[c, 4, 0],
[d, 0, 2]);
sub {$t[$_[2]][$_[1]] = $_[0]}->(@$_) for @a;
@b = map{[map{$_ // ' '} @$_]} map{[@$_]} @t;
undef $";
$s = join'', map{"@$_\n"} @b;
print $s;
実行
~ $ perl 13_888.pl
a b c
d
1015:デフォルトの名無しさん
19/05/18 15:57:05.04 0itJzGag.net
ハローワールドなら任せて欲しい
1016:デフォルトの名無しさん
19/05/18 16:05:30.57 5ij/PJHb.net
>>993 octave
URLリンク(ideone.com)
1017:デフォルトの名無しさん
19/05/18 16:32:58.07 BaKYgAyw.net
>>995
任せた。
1018:デフォルトの名無しさん
19/05/18 17:19:27.10 4C+see96.net
>>995
はよ次スレをハローワールドしろや
1019:デフォルトの名無しさん
19/05/18 17:34:28.08 BWmpW4IF.net
>>995 C89
URLリンク(ideone.com)
1020:デフォルトの名無しさん
19/05/18 17:35:58.58 BWmpW4IF.net
>>998 次スレ
スレリンク(tech板)
1021:デフォルトの名無しさん
19/05/18 17:56:26.22 4C+see96.net
>>1000
乙。
1022:デフォルトの名無しさん
19/05/18 21:05:17.15 sChpoVCN.net
>>993 Pharo/Squeak Smalltalk
| fn |
fn := [:n |
| m bag |
m := n.
bag := Bag new.
Integer primesUpTo: n sqrt + 1 do: [:prime |
[m isDivisibleBy: prime] whileTrue: [m := m / (bag add: prime)]
].
m > 1 ifTrue: [bag add: m].
String streamContents: [:ss |
bag valuesAndCounts associations sort do: [:assoc |
ss nextPutAll: assoc key asString.
assoc value > 1 ifTrue: [ss nextPutAll: '^', assoc value asString]
] separatedBy: [ss nextPut: $*]
]
].
fn value: 28. "=> '2^2*7' "
fn value: 2002. "=> '2*7*11*13' "
fn value: 216653. "=> '216653' "
1023:デフォルトの名無しさん
19/05/18 21:18:36.25 PrlqGkYa.net
>>992 何か落とし穴があるとしたら、巨大数かなと思い、自然数を増やしてみると、python( iOSのpythonista , ideon )では配列数は 10**7 までだった。
大きな連続数の配列なんて作るバカはいないだろうし、ますます問題の意図がわからん。
一応書いてみたが、lambda 1行のみ ,(def でも何でも良いが)
f978 = lambda x,n:[i for i in range(1,n+1) if i != x]
xが自分の数字、n は自然数の数
URLリンク(ideone.com)
呼び出しは、f978(3,10**6) の様に
出力の配列数が大きくなると全ての数のPrint はアホらしいので、
10以上は配列数だけを出してる( これも n-1 だからアホらしいのだが )
out(1,4)
out(2,4)
out(4,4)
out(10**2,10**7)
stdout
個数 n= 4 自数 x= 1 自数以外の数= 3
[2, 3, 4]
個数 n= 4 自数 x= 2 自数以外の数= 3
[1, 3, 4]
個数 n= 4 自数 x= 4 自数以外の数= 3
[1, 2, 3]
個数 n= 10000000 自数 x= 100 自数以外の数= 9999999
1024:デフォルトの名無しさん
19/05/18 21:29:48.34 PrlqGkYa.net
問題をひねって、不連続のランダムの整数としてもほとんど変わらないだろ。
1025:デフォルトの名無しさん
19/05/18 21:31:36.43 gB6Wr8nG.net
(´・_・`)
1026:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 104日 10時間 9分 43秒
1027:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています