プログラミングのお題スレ Part8at TECH
プログラミングのお題スレ Part8 - 暇つぶし2ch951:930
16/11/12 21:03:19.70 Li4gnKYC.net
>>932
ども!
でも最短じゃあないよねw

>>933
ごめん
sizeof(long)が8の環境で確認してた
struct {struct {char a,b,c,d;} a,b,c,d;} _a, _b, space, _d, _e, _f;
これでどこでも動くはず

952:デフォルトの名無しさん
16/11/12 22:58:47.72 VjO69xXO.net
>sizeof(long)が8の環境で確認してた

あれま?
paiza.IOではちゃんと動いたけど
ideoneやCodeIQではダメだったか

953:デフォルトの名無しさん
16/11/13 00:35:59.69 GDVX8Ikh.net
>>931
>数年前に同じお題を

>>915のCodeIQの問題とかじゃね?

954:デフォルトの名無しさん
16/11/13 08:49:46.08 y8U2/o7H.net
>>906
URLリンク(ideone.com)

955:デフォルトの名無しさん
16/11/13 09:05:29.71 FuKHFetX.net
お題:nビットのグレイコ^ドを生成する。

n 3
000
001
011
010
110
111
101
100
S

956:デフォルトの名無しさん
16/11/13 09:14:09.45 FuKHFetX.net
お題:nビットのグレイコードを生成する。

n=3
000
001
011
010
110
111
101
100

957:デフォルトの名無しさん
16/11/13 11:09:32.80 w9Y83CjX.net
>>939
@Mathematica

URLリンク(ideone.com)

958:デフォルトの名無しさん
16/11/13 12:26:26.96 ArrhAnA/.net
>>939 Java
URLリンク(ideone.com)

brainfuckでやろうかなと思ったが、少し考えてめんどくさくなってやめた

959:デフォルトの名無しさん
16/11/13 19:09:07.56 EpE2S11k.net
>>939
C#
URLリンク(ideone.com)

>>941
こんな短く書けるのかw
ガックリ来たわ
どういうロジックかさっぱり分からんw

960:デフォルトの名無しさん
16/11/13 20:45:37.87 qMZbrJPH.net
>>942
ニコニコ百科からの転載でアレだけどこれ抑えてれば理解できるんじゃね
>二進数を1ビット右にシフトし(先頭は0)、元の二進数と各桁で排他的論理和をとると得られる。また、1ずつ増やした場合、グレイコードで変化する桁は、二進数で0が1に変化する桁(繰り上がる先の桁)に等しい。

入力数値の分だけ1をシフトさせてやりゃ入力数値が桁数に変換できるから
あとはその桁数に達するまでforループ回して元数値と右シフト数値の排他的論理和とって2進表示し続けてる感じだと思う
無駄がなくてスマートなプログラムな感じがするけどsubstring(1)だけよく分からない

961:デフォルトの名無しさん
16/11/13 20:53:45.16 ArrhAnA/.net
>>943
指定桁数の2進数を作るのに最上位ビット捨ててる
n=3だと1xxxの文字列作って一番左削ってる感じ

printf等で指定桁数の2進数作れりゃそっち使うんだけどw

962:デフォルトの名無しさん
16/11/13 21:00:49.81 qMZbrJPH.net
>>244
桁数調整の為に一旦論理和とってから最初の1だけ捨ててるのか
勉強になりました

963:デフォルトの名無しさん
16/11/13 21:09:45.44 EpE2S11k.net
>>943
なるほどそういう定式化された求め方があるのか
グレイコードなんて大昔学校で習って以来まったく使ったことがないから知らなかったよ。
ありがとう

964:デフォルトの名無しさん
16/11/14 04:33:29.92 /TJLzgQW.net
>>939
Nim
URLリンク(ideone.com)

965:デフォルトの名無しさん
16/11/15 07:10:12.87 H9REv+Ri.net
>>906 J
hello =: noun
world =: noun
;:inv nl $~ noun

966:デフォルトの名無しさん
16/11/15 07:34:43.51 HcDSv4MP.net
>>906

ここをクリック >>906

967:デフォルトの名無しさん
16/11/15 07:52:00.92 k57TIQI7.net
次スレあるの?

968:デフォルトの名無しさん
16/11/15 15:27:30.98 Veyi95OJ.net
>>932
何が凄いのか分からん
hello worldがコード中に埋め込まれて
いるのが見えるんだが、だったら
printfでhello world書いているのと同じじゃあないの?

969:デフォルトの名無しさん
16/11/15 16:32:08.46 evn38iuN.net
>>951
printf("hello world");←これの""で囲まれてる部分が文字列リテラル
今回は文字列リテラルと数字を使わずにハロワを出力してみろってお題だからprintfでそのまま書いてたらアウト

970:デフォルトの名無しさん
16/11/15 18:08:30.22 DO3IaX9S.net
>>906のお題は文字列リテラル禁止じゃなく文字リテラル禁止だよ

971:デフォルトの名無しさん
16/11/15 18:30:01.74 evn38iuN.net
そうかそいつはすまなかった読み違えたよ
>>952の2行目の「文字列リテラル」は「文字リテラル」に置き換えて読んでくれ

972:デフォルトの名無しさん
16/11/15 18:59:50.88 DO3IaX9S.net
C言語なら
"hello world"のダブルクオートで括るのは文字列リテラルだけど
文字リテラルはシングルクオートで括るから 文字列リテラル使うprintf("hello world")は合法だよ

973:デフォルトの名無しさん
16/11/15 19:02:18.94 DO3IaX9S.net
brainfuckやwhitespaceは処理系によってはもしかすると文字リテラルや文字列リテラルあるのかもしれないけど
C言語で>>906の問題を解くなら>>931と基本同じように文字コード計算して出力するだけだから大差ないよね

974:デフォルトの名無しさん
16/11/16 06:37:25.19 NqgYpFgU.net


975:デフォルトの名無しさん
16/11/16 20:12:56.69 5Ihw572q.net
>>906
C#
URLリンク(ideone.com)
やっぱり面白くないな

976:デフォルトの名無しさん
16/11/16 21:43:19.98 h+UNZgYe.net
" "や'_'を使ってるところがウケ狙いなのかもしれないけど
確かにそんなに面白くない

977:デフォルトの名無しさん
16/11/16 22:49:50.11 opmi2l/i.net
文字コードが絡む問題は悪名高いEBCDICを真っ先に思い浮かべてしまって
その考慮がされてないとちょっと白ける部分がある

978:デフォルトの名無しさん
16/11/20 01:25:08.34 60DKtBPZ.net
>>906
ruby2

print :hello, [:s, :S].map(&:to_s).map(&:ord).inject(:-).chr, :world

URLリンク(melpon.org)

979:デフォルトの名無しさん
16/11/20 13:28:08.49 mWWihz9s.net
>>906 Haskell
URLリンク(ideone.com)

980:デフォルトの名無しさん
16/11/21 08:38:02.28 4Ckt/1Kw.net
>>906 F#

type ``hello world`` = W
printfn "%s" typeof<``hello world``>.Name

981:デフォルトの名無しさん
16/11/21 08:39:37.06 4Ckt/1Kw.net
訂正
>>906 F#

type ``hello world`` = W
stdout.WriteLine typeof<``hello world``>.Name

982:デフォルトの名無しさん
16/11/21 18:47:44.72 3NXFWxK7.net
>>939 ruby
n = 3
(1 << n).times do |v|
puts "%0#{n}b" % (v ^ (v >> 1))
end

URLリンク(melpon.org)

983:デフォルトの名無しさん
16/11/21 19:50:16.01 nCxXmPKB.net
>>935
(´・∀・`)ヘー 動く環境もあったのね

>>936
CodeIQ見たことも聞いたこともない

>>906 c
・数字つこうた
・四則演算ビット演算無し
・文字リテラル文字列リテラル無し
・移植性と他の環境で動く保障無し
#include <stdio.h>
int main() {
int is[] = {1819043176, 1870078063, 6581362};
long long lls[] = {8031924123371070824, 6581362};
puts((char *)is);
puts((char *)lls);
return 0;
}

hello world
hello world

984:デフォルトの名無しさん
16/11/21 20:56:30.60 /F1fcl9l.net
文字コードに依存するわエンディアンに依存するわ、後出しでどんだけ劣化するんだ

985:デフォルトの名無しさん
16/11/21 23:37:55.18 7dMNwwBf.net
数字もダメ
というのがルール

986:デフォルトの名無しさん
16/11/22 02:14:49.59 bN+iUVDf.net
勝手に問題作り変えちゃダメだよね
国語できなさそう

987:デフォルトの名無しさん
16/11/22 04:14:16.14 hJpZQ6a9.net
>>906
URLリンク(ideone.com)
C++?? 既出の回答に感動してパクってみた。
数字自作してる時点であんまり問題の意味ないよね。
体をなしてないというか。

988:デフォルトの名無しさん
16/11/22 05:24:33.85 7Ti0FWyJ.net
>>906
URLリンク(ideone.com)
Python3 HQ9+的アプローチで数値計算してない

989:デフォルトの名無しさん
16/11/22 08:07:22.61 ofQaf/jO.net
リバースエンジニアリングしてもコード中にリテラルが無いので解読されにくいという事だよね

990:デフォルトの名無しさん
16/11/22 08:58:18.46 hJpZQ6a9.net
秘密主義は技術の向上を阻害するのであんまり興味ないな。

991:デフォルトの名無しさん
16/11/22 11:24:14.19 O62ysXRT.net
でも「神秘的!ステキ!」とか言われてクラッカーやハッカーにモテるかもよ

992:デフォルトの名無しさん
16/11/22 20:14:09.73 svcAyLEK.net
>>906 Common Lisp
URLリンク(ideone.com)

993:デフォルトの名無しさん
16/11/22 21:11:42.55 0aK0hXHG.net
>>906 c
URLリンク(ideone.com)
・数字無し
・四則演算ビット演算無し
・文字リテラル文字列リテラル無し
・移植性と他の環境で動く保障無し

>>906 ruby
・バッククォートつこうた
puts `echo hello world`

994:デフォルトの名無しさん
16/11/22 22:00:15.16 GG9ZZPlA.net
>>976
cの方面白い
細かいけどreturn 0;に数字使われて


995:るのに笑ってしまった



996:デフォルトの名無しさん
16/11/22 22:12:48.53 bzMDKvPC.net
bash
$echo hello world

997:デフォルトの名無しさん
16/11/22 22:32:08.95 GG9ZZPlA.net
それがありなら
c++
URLリンク(ideone.com)

998:デフォルトの名無しさん
16/11/22 22:33:06.33 GG9ZZPlA.net
もう出てたか

999:デフォルトの名無しさん
16/11/23 03:02:34.05 1DVlaY/L.net
>>976
その手があったか。思いつかなかった

1000:デフォルトの名無しさん
16/11/23 16:23:56.87 zVQCWlzE.net
>>977
> return 0;に数字使われてる

どわーっ!!

>>906 c
URLリンク(codepad.org)
・移植性と他の環境で動く保障無し
(少なくともideoneじゃコンパイルエラー
変形して通しても次の問題が出てきて駄目)

1001:デフォルトの名無しさん
16/11/23 17:00:53.66 v3lmFY9L.net
bash
$cat message.txt

1002:164
16/11/28 21:11:05.16 rbBqsttl.net
>>906 Perl
sub AUTOLOAD {($AUTOLOAD =~ /::(.+)$/)[0]}
print Hello()." ".World()."\n";

1003:164
16/11/28 21:24:43.26 rbBqsttl.net
>>984
しまった、listのindexに0を使っちゃってる。
return 0;がダメ?かもしれないならば数字使っちゃダメ??

ならばこうか…

>>906 Perl
sub AUTOLOAD { $AUTOLOAD =~ s/^.*:://; $AUTOLOAD }
print hello()." ".world()."\n";

1004:164
16/11/28 21:42:11.18 rbBqsttl.net
>>906 Perl つか、これでイイジャン。
package hello_world;
print join ' ', split '_', __PACKAGE__;

連投スマソ

1005:デフォルトの名無しさん
16/11/28 21:56:43.31 dQXmDcQq.net
文字リテラル知らんのか?

1006:164
16/11/28 22:24:35.04 rbBqsttl.net
"hello world"の文字列リテラルだけじゃなく
" "もダメてことか…orz
' 'は一応「文字」だけどまぁ歓迎されない感じだな
もうひと工夫いるけどマンドくさくなってきた

1007:デフォルトの名無しさん
16/11/29 19:26:40.96 LsagP9/y.net
コードとコンパイラによっては最適化で文字が埋め込まれることに

1008:デフォルトの名無しさん
16/11/29 21:35:16.55 1MA0K2jV.net
先入れ中出しのアルゴリズムを実装せよ

1009:デフォルトの名無しさん
16/11/29 21:39:13.43 +UdcctZr.net
やだ、できちゃう

1010:デフォルトの名無しさん
16/11/29 21:49:39.94 PX7t+lnB.net
先っちょだけだから

1011:デフォルトの名無しさん
16/11/30 01:45:20.18 b7dyxQXg.net
>>990
C++にはSTLにQueueあるからねぇ。
今更、作る意義がわからない。

1012:デフォルトの名無しさん
16/11/30 04:13:31.77 b7dyxQXg.net
って、ネタかよ。真面目に答えるんじゃなかった。

1013:デフォルトの名無しさん
16/11/30 12:22:48.19 y2jQ/DIV.net
STLは知らないけど.NETのキューって要素1つずつしか出し入れできないんだよね
これだとバッファーとしては使いづらいから自作したわ

1014:デフォルトの名無しさん
16/11/30 12:44:08.74 UIwN06Hs.net
LINQ使えばいいんじゃね

1015:デフォルトの名無しさん
16/11/30 23:47:33.27 8E5tVjA8.net
Queueって先入れ中出しなん?

1016:デフォルトの名無しさん
16/12/01 00:54:11.48 NHXaAvDm.net
それもネタなんだろ

1017:デフォルトの名無しさん
16/12/01 06:10:42.69 I/74Zq7s.net
次スレありますでしょうか。

1018:デフォルトの名無しさん
16/12/01 15:05:04.44 HhJrKDKy.net


1019:小倉優子 ◆YUKOH0W58Q
16/12/01 15:05:24.69 HhJrKDKy.net
  ∧,,,∧ 
 (  ・∀・) 1000ならジュースでも飲むか
  (    ) 
  し─J 

1020:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch